proxychecker API

REST API for programmatic proxy validation. Bring your own list, get back fully classified results: alive/dead, latency, country, ASN, datacenter vs residential, anonymity level, and more.

Authentication

All paid endpoints require a Bearer token. Get one from /pricing.

Authorization: Bearer pck_yourkeyhere

Free-tier callers can hit /api/check without a key but are capped at 25 proxies per call and rate-limited.

Rate limits + quotas

TierPer callPer dayConcurrency
Free25~50 calls (rate limited)20
Pro5,0005,000 calls50
Business10,00050,000 calls75

Endpoints

POST/api/check

Validate a list of proxies. Returns alive/dead status, latency, anonymity classification, and RDAP enrichment for live proxies.

Body

{
  "proxies": [
    "1.2.3.4:8080",
    "user:pass@5.6.7.8:1080",
    "socks5://9.10.11.12:1080"
  ],
  "timeout": 10000,
  "format": "json"
}
FieldTypeNotes
proxiesstring[]Up to your tier cap. Auto-detects HTTP/SOCKS4/SOCKS5 from prefix or port.
timeoutint (ms)3000-30000. Default 10000.
formatstringjson (default) or csv (Pro/Business only).

Response (JSON)

{
  "summary": {
    "total": 3,
    "alive": 2,
    "dead": 1,
    "datacenter": 2,
    "residential": 0,
    "mobile": 0,
    "suspected_fake_residential": 0,
    "avg_latency_ms": 187
  },
  "tier": "pro",
  "results": [
    {
      "input": "1.2.3.4:8080",
      "status": "alive",
      "protocol": "http",
      "type": "datacenter",
      "latency": 142,
      "country": "US",
      "city": "Ashburn",
      "isp": "AS14618 Amazon.com, Inc.",
      "asn": 14618,
      "anonymity": "transparent",
      "suspected_fake_residential": false,
      "rdap": { "abuse_email": "abuse@amazon.com", ... }
    },
    ...
  ]
}

Response (CSV)

input,status,protocol,type,latency,country,city,isp,asn,suspected_fake_residential,reason
1.2.3.4:8080,alive,http,datacenter,142,US,Ashburn,AS14618 Amazon...,14618,false,
5.6.7.8:1080,dead,socks5,,,,,,,,timeout

Quick start

cURL

curl -X POST https://proxychecker.dev/api/check \\
  -H "Authorization: Bearer pck_yourkey" \\
  -H "Content-Type: application/json" \\
  -d '{"proxies":["1.2.3.4:8080","5.6.7.8:1080"],"format":"csv"}' \\
  -o results.csv

Python

import httpx

with open("my_proxies.txt") as f:
    proxies = [line.strip() for line in f if line.strip()]

# Chunk into batches of 5000 (Pro tier cap)
def chunks(xs, n):
    for i in range(0, len(xs), n): yield xs[i:i+n]

results = []
with httpx.Client(timeout=60) as client:
    for batch in chunks(proxies, 5000):
        r = client.post(
            "https://proxychecker.dev/api/check",
            headers={"Authorization": "Bearer pck_yourkey"},
            json={"proxies": batch, "timeout": 8000},
        )
        r.raise_for_status()
        results.extend(r.json()["results"])

alive = [p for p in results if p["status"] == "alive"]
print(f"{len(alive)}/{len(results)} alive")

Node.js

import { readFileSync, writeFileSync } from "fs";

const proxies = readFileSync("my_proxies.txt", "utf8")
  .split("\\n").map(s => s.trim()).filter(Boolean);

const r = await fetch("https://proxychecker.dev/api/check", {
  method: "POST",
  headers: {
    "Authorization": "Bearer pck_yourkey",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ proxies, format: "csv" }),
});

writeFileSync("results.csv", await r.text());

Errors

CodeWhen
400Missing/empty proxies array, or all entries unparseable.
401Invalid or revoked API key.
413Tier cap exceeded (response includes your tier and the cap).
429Daily quota exceeded (Pro/Business) OR rate limit hit (Free).

Coming soon

Saved proxy lists with auto-monitoring, webhook alerts on dead proxies, geo-IP enrichment beyond country, and a /api/check-async endpoint that returns a job ID for batches over 10,000.

Want one of these prioritized? Email malone.jaylon@gmail.com with what you'd actually use.