Free · no signup · used by proxy checkers
Proxy judge
A public endpoint that prints back the IP address and headers it receives. Send a request through a proxy and you see what a website sees: your own IP, the proxy’s, or nothing that gives either away.
curl -x http://PROXY_IP:PORT https://pool.proxyspace.pro/judge.php541,297 judge requests in the last 24 hours.
Endpoints
| Address | Returns |
|---|---|
https://pool.proxyspace.pro/judge.php | A greeting with the visiting IP, then every REMOTE_*, REQUEST_* and HTTP_* variable the server received. |
http://pool.proxyspace.pro/ | Only the visiting IP address, as plain text. Any path works. |
What a response looks like
Welcome 203.0.113.7 :D
REQUEST_METHOD = GET
REMOTE_PORT = 51470
REMOTE_ADDR = 203.0.113.7
HTTPS = on
REQUEST_SCHEME = https
HTTP_USER_AGENT = curl/8.5.0
HTTP_ACCEPT = */*
REQUEST_URI = /judge.php
HTTP_HOST = pool.proxyspace.pro
REQUEST_TIME = 1792347465REMOTE_ADDR is the address the judge saw the connection come from. Every line starting with HTTP_ is a header that arrived with the request, so a header the proxy added shows up here too.
Reading the result
Compare the response with your real IP address (the what is my IP tool shows it):
- Transparent. Your real IP appears somewhere, usually in
HTTP_X_FORWARDED_FOR,HTTP_FORWARDEDorHTTP_CLIENT_IP. The site knows who you are. - Anonymous. Your IP is gone, but the proxy announces itself with headers such as
HTTP_VIAorHTTP_PROXY_CONNECTION. The site knows a proxy is involved. - Elite.
REMOTE_ADDRis the proxy’s address and there is no trace of a proxy or of you. The request looks like it came from the proxy itself. - No response. The proxy is dead, refused the connection or timed out. Most addresses on public lists end up here, which is why you check them.
Examples
# HTTP proxy
curl -x http://203.0.113.7:8080 https://pool.proxyspace.pro/judge.php
# SOCKS5 proxy, DNS resolved by the proxy
curl --socks5-hostname 203.0.113.7:1080 https://pool.proxyspace.pro/judge.php
# Python
import requests
r = requests.get("https://pool.proxyspace.pro/judge.php",
proxies={"https": "http://203.0.113.7:8080"}, timeout=10)
print(r.text)Where to get proxies to test
The HTTP, HTTPS, SOCKS4 and SOCKS5 lists are refreshed every 20 minutes. They are collected from public sources and not tested by us, so running them past the judge is exactly the step that separates working proxies from dead ones.