Proxy Detection API

Proxy Detection API

Stop bots hiding behind proxies.

Detect HTTP, SOCKS, datacenter, and residential proxies in real time — with Tor and hosting context in the same response. Block automated abuse before it reaches your application. No sign-up required.

Try it live
Proxy Detection
● Checking…
Tor Network
● Pending…
Network Type
● Pending…
API Response
{
"suspicious_factors": {
"is_proxy": false,
"is_tor_node": false,
"is_datacenter": false
},
"isp": "Google LLC"
}
Trusted by thousands of businesses
Fast JSON API responses
Real-time validation
Simple integration, SDKs & examples
Features

Everything You Need to Detect Proxy Traffic

Coverage across every proxy class — datacenter pools, residential networks, HTTP and SOCKS — with a clean JSON API built for bot defense and fraud teams.

All Proxy Classes

HTTP/HTTPS proxies (transparent, anonymous, elite), SOCKS v4/v5, datacenter pools, and residential proxy networks.

99.5% Detection Accuracy

High-precision classification with under 0.1% false positives — safe to enforce blocking policies on.

Residential Proxy Coverage

The hardest class to catch. Behavioral signals and threat feeds identify proxies hiding behind real consumer IP addresses.

Real-Time Threat Feeds

Proxy pools rotate constantly. Detection data is refreshed continuously from live threat intelligence sources.

Tor & Hosting Context

Separate is_tor_node and is_datacenter flags in the same response distinguish proxy traffic from other anonymization.

Simple JSON API

A single REST endpoint with boolean flags — add proxy blocking to any edge or backend in minutes.

Developer Experience

Proxy Detection API Documentation & Code Examples

A single REST endpoint returns the proxy status of any IP address — together with VPN, Tor, datacenter, and geolocation context. Predictable JSON, no SDK required.

Proxy, VPN, Tor & datacenter flags in one call
99.5% accuracy, under 0.1% false positives
SDKs for JavaScript, Python, PHP, Ruby, Go
Fast JSON responses, typically under 100ms
Read API Reference
Endpoint
GET /api/v1/ip/{ip}?api_key={key}
Example Request
curl "https://ip-api.io/api/v1/ip/89.187.175.13?api_key=YOUR_API_KEY"
Example Response
200
{
  "suspicious_factors": {
    "is_proxy": true,
    "is_vpn": false,
    "is_tor_node": false,
    "is_datacenter": true,
    "is_threat": false
  },
  "isp": "DataCamp Limited",
  "country_code": "US"
}
Endpoint
GET /api/v1/ip/{ip}?api_key={key}
Example Request
const res = await fetch(
  "https://ip-api.io/api/v1/ip/89.187.175.13?api_key=YOUR_API_KEY"
);
const data = await res.json();
if (data.suspicious_factors.is_proxy) {
  console.log("Proxy traffic — block or challenge");
}
Example Response
200
{
  "suspicious_factors": {
    "is_proxy": true,
    "is_vpn": false,
    "is_tor_node": false,
    "is_datacenter": true,
    "is_threat": false
  },
  "isp": "DataCamp Limited",
  "country_code": "US"
}
Endpoint
GET /api/v1/ip/{ip}?api_key={key}
Example Request
import requests

res = requests.get(
    "https://ip-api.io/api/v1/ip/89.187.175.13",
    params={"api_key": "YOUR_API_KEY"}
)
data = res.json()
if data["suspicious_factors"]["is_proxy"]:
    print("Proxy traffic — block or challenge")
Example Response
200
{
  "suspicious_factors": {
    "is_proxy": true,
    "is_vpn": false,
    "is_tor_node": false,
    "is_datacenter": true,
    "is_threat": false
  },
  "isp": "DataCamp Limited",
  "country_code": "US"
}
Endpoint
GET /api/v1/ip/{ip}?api_key={key}
Example Request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
  "https://ip-api.io/api/v1/ip/89.187.175.13?api_key=YOUR_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch));
if ($data->suspicious_factors->is_proxy) {
  echo "Proxy traffic — block or challenge";
}
Example Response
200
{
  "suspicious_factors": {
    "is_proxy": true,
    "is_vpn": false,
    "is_tor_node": false,
    "is_datacenter": true,
    "is_threat": false
  },
  "isp": "DataCamp Limited",
  "country_code": "US"
}
Endpoint
GET /api/v1/ip/{ip}?api_key={key}
Example Request
require 'net/http'
require 'json'

uri = URI('https://ip-api.io/api/v1/ip/89.187.175.13')
uri.query = URI.encode_www_form(api_key: 'YOUR_API_KEY')

res = Net::HTTP.start(uri.hostname, use_ssl: true) { |h| h.get(uri) }
data = JSON.parse(res.body)
puts "Proxy!" if data.dig('suspicious_factors', 'is_proxy')
Example Response
200
{
  "suspicious_factors": {
    "is_proxy": true,
    "is_vpn": false,
    "is_tor_node": false,
    "is_datacenter": true,
    "is_threat": false
  },
  "isp": "DataCamp Limited",
  "country_code": "US"
}
Use Cases

Built for real-world applications

From bot defense to payment screening — proxy detection that fits your workflow.

Bot & Scraping Defense

Scrapers and credential-stuffing bots rotate through proxy pools to evade rate limits and IP bans. Detect and challenge proxy traffic at the edge before it reaches your application.

Rate Limiting Credential Stuffing Scraping

Payment Fraud Screening

Carders test stolen cards from behind anonymous proxies to hide their location and identity. Flag proxy connections at checkout as a high-weight signal in your fraud scoring.

Carding Chargebacks Checkout

Ad & Click Fraud Prevention

Click farms route fake impressions and clicks through proxy networks to look like organic traffic from target regions. Filter proxy IPs from campaigns to protect ad spend and analytics.

Click Fraud Ad Spend Analytics
FAQ

Proxy Detection API FAQs

Common questions about detecting proxy servers and proxy networks.

What is a proxy detection API?

A proxy detection API is a web service that tells you whether an IP address is operating as a proxy server — an intermediary that hides the real origin of traffic. Bots, scrapers, and fraudsters route their requests through proxies to disguise their identity and rotate addresses. The API checks the connecting IP in real time and returns an is_proxy boolean your application can use to block, challenge, or flag the request.

What types of proxies can be detected?

Detection covers HTTP and HTTPS proxies (transparent, anonymous, and elite), SOCKS v4/v5 proxies, datacenter proxy pools sold in bulk for automation, and residential proxy services that route traffic through real consumer devices. Residential proxies are the hardest class to catch because they use legitimate household IP addresses — detection relies on behavioral signals and threat intelligence rather than simple IP-range lists.

How is proxy detection different from VPN detection?

Both hide the user's real IP, but they serve different ecosystems. VPNs are consumer privacy products where a person routes all their traffic through one provider. Proxies are usually programmatic — bots, scrapers, sneaker software, and fraud tooling rotating through thousands of addresses. ip-api.io returns separate is_proxy and is_vpn flags in the same response, so you can apply different policies to each: many sites tolerate VPN users but block proxy traffic outright. See the VPN Detection API for the VPN side.

Why should I detect proxy traffic?

Proxy traffic is heavily correlated with automation and fraud: credential-stuffing attacks rotate through proxy pools to evade rate limits, carders test stolen credit cards from behind anonymous proxies, scrapers harvest pricing and content at scale, and click-fraud bots burn ad budgets. Blocking or challenging proxy IPs at the edge stops a large share of this abuse before it reaches your application logic.

Is the proxy checker on this page free?

Yes, the interactive proxy checker on this page is completely free with no sign-up required. API access for developers with higher request volumes requires a paid subscription starting at €10/month.

Pricing

Simple, transparent pricing

Start small, scale as you grow. No hidden fees.

Small
€10 /month
100,000 geo IP requests / month
Proxy, VPN & Tor detection included
10,000 advanced email validation requests
Location, threat & time zone data
Email support
99.9% uptime SLA
Get started
Large
€49 /month
1,000,000 geo IP requests / month
Proxy, VPN & Tor detection included
100,000 advanced email validation requests
Full threat intelligence suite
SLA & uptime guarantee
All datasets
Custom integrations
Dedicated support
Get started

Block proxy traffic programmatically

Check any IP for proxy, VPN, Tor, and datacenter signals in a single API call — no sign-up required for the free tier.

> _
curl ip-api.io/api/v1/
ip/89.187.175.13
Proxy