API REFERENCE / v1
A simple API.
Useful network context.
Check one public IPv4 or IPv6 address per request. Known VPN, hosting, Tor and public-proxy matches resolve locally. Otherwise, including when local data is stale or unavailable, the IP is sent to our isproxyip integration for a proxy yes/no check. A known-crawler match alone does not bypass that check.
Make your first request
Create a free account and copy your API key from the dashboard. Prefer the Authorization header so your key stays out of URLs.
curl --get 'https://proxyradar.io/v1/check' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-urlencode 'ip=185.220.101.44' \
--data-urlencode 'format=json'Read the response
This example illustrates the response structure. Actual flags depend on the current dataset.
{
"status": "success",
"ip": "185.220.101.44",
"proxy": 1,
"flags": {
"vpn": false,
"hosting": true,
"tor": true,
"public_proxy": false,
"known_bot": false
},
"dataset_version": "...",
"dataset_updated_at": "...",
"detection_source": "local",
"local_data_status": "available",
"assessment": "listed_network"
}| Field | Meaning |
|---|---|
proxy | Legacy broad flag: 1 if local VPN, hosting, Tor or public-proxy lists match, or the fallback provider returns Y. A 0 requires a valid N response from the provider. |
flags.vpn | Listed in known VPN network ranges. |
flags.hosting | Listed in hosting/datacenter ranges. This alone does not prove VPN use. |
flags.tor | Listed as a Tor exit address. |
flags.public_proxy | Listed as a known public proxy address. |
flags.known_bot | Matches published Google or Bing crawler ranges. Other bots may not be identified. |
detection_source | local for a local proxy-network match, or isproxyip for a fallback result. |
local_data_status | available or unavailable. When local data is unavailable or older than 72 hours, flags and dataset metadata are null. With available data, false flags mean no local match; they do not override a positive provider result. |
assessment | listed_network, proxy_detected or not_detected. Not a behavioral or fraud verdict. |
Keep your existing integration
The original query-string API key remains supported:
https://proxyradar.io/v1/check?key=YOUR_API_KEY&ip=185.220.101.44Without format=json, successful lookups return Y for a local proxy-network match or a positive provider result, and N only after a negative provider result. Invalid IPs or unavailable detection return X; authentication and quota failures use a JSON error. Check the HTTP status as well as the body.
Errors and usage limits
| HTTP status | Action |
|---|---|
| 401 | Check your API key. |
| 422 | Supply a valid public IP address. Private/reserved addresses cannot be classified. |
| 429 | The daily quota or burst limit was reached. Respect the Retry-After header. |
| 503 | Local detection could not resolve the lookup and the fallback provider was unavailable or returned an invalid result. Retry with backoff; do not treat this as a clean result. |
Quotas reset at 00:00 UTC. Successful responses include X-Daily-Limit and X-Daily-Remaining. The API burst limit is 1,200 requests per minute per key. Each successful lookup consumes one query, including fallback results. Failed lookups consume none. The provider request uses a 3-second connection timeout and an 8-second total timeout, with redirects disabled. Allow more than 8 seconds in your client timeout.
Use the signals in context
An address can match several categories. A legitimate crawler may also use hosting infrastructure. A residential proxy may be absent from public lists. Combine these flags with your own account and traffic signals; avoid irreversible decisions based only on one network label.