proxycanary

Free proxy checker · HTTP · SOCKS4 · SOCKS5 · no account

Proxies die quietly.
The canary sings first.

Paste one proxy or ten thousand. proxycanary probes HTTP, SOCKS4 and SOCKS5 in parallel and tells you what's alive, how fast, how anonymous, where it exits, and whether that exit is a phone, a datacenter or a home line.

idle
0 parsed

Results land here one row at a time, as each proxy answers, or doesn't.

one per line, or comma separated

http · socks4 · socks5 · up to 10,000 per run · no account

3
protocols
HTTP · SOCKS4 · SOCKS5
200
parallel probes
per list, per run
10 s
max timeout
tunable down to 1 s
$0
forever
no tiers, no signup

how it works

A real request through every proxy. Not a ping.

Most checkers open a TCP socket and call it alive. We push an actual HTTP request through the tunnel to a judge endpoint and read what came out the other side.

youproxyjudge
connect msround-trip total ms
judge returns: exit ip · forwarded headers · protocol that worked
  1. 01

    Paste anything that looks like a proxy

    ip:port, user:pass@ip:port, scheme://…, one per line or comma-separated. Duplicates and junk lines are dropped before the run starts, and you see exactly what was parsed.

  2. 02

    Each proxy gets a real request, not a ping

    We open a tunnel through the proxy to a judge endpoint, time the connect and the full round-trip, then read what the judge saw: your exit IP, forwarded headers, and whether the proxy leaked anything.

  3. 03

    Filter, sort, export the survivors

    Keep only alive, only elite, only under 300 ms, only from a country. Copy the clean list, or download txt, csv or json.

what you get back

Everything a proxy could be lying about, checked.

Per proxy, per run. The same fields in the table, the export and the API.

transparentX-Forwarded-For: 84.12.9.3
anonymousVia: 1.1 squid/5.7
elite(nothing leaked)

Anonymity level, judged honestly

Transparent, anonymous or elite, decided from the headers the judge actually received (Via, X-Forwarded-For, Forwarded), not from the proxy's own claim.

connect
38 ms
round-trip
112 ms

one real request through the tunnel, not a tcp ping

Latency you can compare

Connect time and full round-trip, measured on a real request through the tunnel, not a TCP handshake. Slow proxies are marked so you can cut them at a glance.

seller says NLexits DE · AS24940

resolved from the judge's view of the exit ip

Exit country and ASN

Where the proxy actually exits, resolved from the judge's view of the exit IP. Useful for spotting proxies that claim one country and land in another.

alive.txt · ip:port per linerun.csv · 8 columnsrun.json · typed fields

Export the way your tools expect

Plain ip:port lists for scrapers, csv for spreadsheets, json for pipelines. Filters apply to the export.

mobileAS45609 · Bharti Airtel
datacenterAS14061 · DigitalOcean
residentialAS9121 · Turk Telekom

Mobile, datacenter or residential

The exit IP is classified by its network: a carrier range, a hosting provider, or an ISP line. Mobile proxies are the ones that get through where datacenter ranges are already blocked.

REMOTE_ADDR   203.0.113.77
Via           none
TLS           1.3 · ECDHE
DNS via proxy yes

Single check, deep detail

One proxy at a time gets the full report: every header the judge received, exit network and carrier, connect and round-trip timings, and a share link you can send to whoever sold you the proxy.

api

Same checker, one POST away.

Send a list, get the same fields the web checker shows, streamed back as server-sent events so you can act on each row the moment it answers. No key, same limits as the site.

  • POST /api/check · sse stream
  • POST /api/check/single · full report
  • GET /api/report/:id · shared result
Read the docs
request
curl -N -X POST https://proxycanary.com/api/check \
  -H "Content-Type: application/json" \
  -d '{
    "proxies": ["203.0.113.10:8080", "socks5://198.51.100.7:1080"],
    "timeoutMs": 5000
  }'
response · text/event-stream
event: start
data: {"type":"start","runId":"cmub8m…","total":2,"skipped":0}

event: result
data: {"type":"result","result":{"id":"0","status":"alive",
  "protocol":"http","latencyMs":112,"connectMs":38,
  "anonymity":"elite","exitIp":"203.0.113.10",
  "countryCode":"DE","asn":"AS24940","mobile":false,"hosting":true}}

event: result
data: {"type":"result","result":{"id":"1","status":"dead",
  "error":"connect_timeout"}}

event: done
data: {"type":"done","runId":"cmub8m…","alive":1,"dead":1,"durationMs":5210}

questions

Things people ask before pasting a list.

From the network the exit IP belongs to. Carrier ranges (the ones phones get their addresses from) are flagged as mobile; hosting providers as datacenter; everything else as residential or ISP. It's a property of the IP, not of the proxy software.

The judge endpoint saw neither your real IP nor any header revealing a proxy is in use. "Anonymous" means your IP was hidden but a proxy header leaked. "Transparent" means your real IP was forwarded.

Up to 10,000 proxies per run, probed 200 at a time. Longer lists are cut at 10,000, so split them yourself and run twice. Each address can start 30 runs per 10 minutes.

Usually the target site is blocking the proxy's IP range, or the proxy only allows certain ports. We test against a neutral judge endpoint, so 'alive' means the proxy works, not that a specific site will let it in.

HTTP, HTTPS (CONNECT), SOCKS4 and SOCKS5. If you don't specify a scheme, we try each in order and report the first one that works.

It costs very little to run, and we'd rather people use it than pay for a bloated alternative. There is no premium tier and no plans for one.

no account · no tiers · no ads

Paste the list. Hear what's alive.