Intel API
Legacy /lookup
The deprecated /lookup endpoint, documented for existing customers. New integrations use /v1/{ip}.
Deprecated
/lookup is deprecated and documented only for existing customers. New integrations use /v1/{ip}. See Migrate to /v1.
curl "https://api.layer3intel.com/lookup?ip=203.0.113.117&key=YOUR_API_KEY"GET /lookup?ip=<IPv4>&key=<key> takes the key in the query string only. It answers one of:
{ "proxy": false }{ "proxy": true, "type": "isp" }{
"proxy": true,
"type": "residential",
"score": 0.93,
"last_seen": 1793491200,
"percent_days_seen": 80,
"networks": ["OXYLABS", "INFATICA"]
}Fields
| Field | Type | Description |
|---|---|---|
proxy | boolean | Whether the address is an ISP proxy range or a residential proxy exit. |
type | string | isp (an ISP proxy range) or residential (a residential proxy exit, with the fields below). |
score | number, 0–1 | Residential only. How strongly the address is a residential proxy exit. |
last_seen | integer | Residential only. Unix seconds. |
percent_days_seen | integer, 0–100 | Residential only. The share of the last 30 days on which the address was seen. |
networks | string[] | Residential only. Provider codes, the provider_name values of the data feed's provider map, for example OXYLABS. |
Credits
/lookup shares the /v1 credit balance. Every answer costs 1 credit, {"proxy": false} included. Check the balance with /v1/balance.
Errors
Errors are plain text, not JSON.
| Status | When |
|---|---|
| 400 | A missing ip or key, or a non-public or invalid address, IPv6 included. |
| 401 | A malformed or unknown key. |
| 405 | A method other than GET. |
| 429 | The quota is exceeded. |
| 502 | An internal failure. |
Migrate to /v1
/v1/{ip} uses the same key and the same credit balance.
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.layer3intel.com/v1/203.0.113.117/lookup | /v1/{ip} |
|---|---|
?key= | Authorization: Bearer header (?key= also works) |
proxy | flags.proxy (ISP and datacenter proxies and residential proxy exits); flags.anonymizer for every anonymizer |
type: "isp" | type: "isp_proxy" |
type: "residential" | flags.residential_proxy: true |
score (0–1) | residential_proxy.score (0–100) |
last_seen (Unix seconds) | residential_proxy.last_seen (YYYY-MM-DD) |
percent_days_seen (percent of 30 days) | residential_proxy.days_seen_30d (days of the last 30) |
networks (provider codes) | residential_proxy.providers (brand names) |
| Plain-text errors | JSON errors with a stable code |