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'
Keep your key on your server. Do not embed it in browser JavaScript, public repositories or shared URLs.

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"
}
FieldMeaning
proxyLegacy 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.vpnListed in known VPN network ranges.
flags.hostingListed in hosting/datacenter ranges. This alone does not prove VPN use.
flags.torListed as a Tor exit address.
flags.public_proxyListed as a known public proxy address.
flags.known_botMatches published Google or Bing crawler ranges. Other bots may not be identified.
detection_sourcelocal for a local proxy-network match, or isproxyip for a fallback result.
local_data_statusavailable 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.
assessmentlisted_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.44

Without 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 statusAction
401Check your API key.
422Supply a valid public IP address. Private/reserved addresses cannot be classified.
429The daily quota or burst limit was reached. Respect the Retry-After header.
503Local 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.

See source coverage and freshness →