Step 1 of 5
It starts with hundreds of public lists.
About every hour a GitHub Action reads 700+ public proxy lists and checks 150,000 of the candidates in them. Most do not pass.
Every proxy on this list passed a basic check, a second request to another site and a content check in the last run. The list is checked again about every hour.
Illustration – the failing rows are examples, the passing rows are from the list. Click a passing one to copy it.
Measured from GitHub's servers. From your own network some proxies will be faster, some won't answer at all.
entries passed every check in the last run. Each run checks 150,000 candidates out of roughly 1.2–1.4 million listed protocol/address combinations.
tunnel HTTPS. They carry encrypted traffic through a tunnel, tested with a verified TLS handshake to one test host.
are elite. The target site can't tell that a proxy is in between: no forwarded IP, no Via header.
median response time. Half of the list answers faster than that. Sort by latency to get the quickest ones first.
Best first: the ones that answer quickly, download fast and are likely to still be up. Filter, sort, then copy or download exactly the ones you need. Click any address to copy it.
| Loading the list | ||||||||
An MCP server for Claude Code, Cursor, Codex and co. Your agent gets working proxies and can load pages through them, as seen from another country.
youLoad bbc.co.uk/news the way a visitor from the UK sees it.
toolfetch_url(url="https://www.bbc.co.uk/news", country="GB")
200 · via socks5://109.205.182.143:1088 (GB) · 0.7 s
Home - BBC News
BBC Homepage
Skip to content …
claudeLoaded through a UK proxy: that's the BBC News front page as it shows up in Britain.
get_proxiesworking proxies right now, with the same filters as the list abovecheck_proxieschecked again from your own network, so they work from where your code runsfetch_urla page through a proxy from the checked list, as readable text – switches proxies by itselfclaude mcp add proxy-scraper -- uvx --python ">=3.10" --from "proxy-scraper-cli[mcp]" proxy-scraper-mcp
Cursor, VS Code, Codex and others: setup for every client. Also in the official MCP registry as io.github.maximilianfeix/proxy-scraper.
Step 1 of 5
About every hour a GitHub Action reads 700+ public proxy lists and checks 150,000 of the candidates in them. Most do not pass.
Step 2 of 5
Each candidate has to complete a proper HTTP, SOCKS4 or SOCKS5 handshake and fetch a page. An open port alone proves nothing.
Step 3 of 5
The proxy has to reach two unrelated sites and show the same exit IP, one that isn't ours, on both. If the second request doesn't confirm it, the entry is out. That can be an unstable proxy, an exit that changes between requests, a proxy that only answers the first check, or the second site refusing it.
Step 4 of 5
One static test page, fetched over plain HTTP, has to arrive byte for byte. In one early measurement 54 of 270 proxies returned a changed page. Why a page differs is not determined: an added script or ad, a portal page, or a re-encoded or cut-off copy. Entries that return a changed test page are not listed.
Step 5 of 5
HTTPS with verified TLS to one test host, anonymity, country, provider and whether the exit IP is on a spam blocklist are checked for everything that's left.
That's the list above. In about an hour it starts over, and anything that no longer passes is off the list.
This is what you'd want to know before you use a free proxy – and what this list measured in the last run. Other lists were not measured.
Free proxies come and go quickly. This is how the list changed over the last runs and where the proxies are right now. The whole week in numbers is in the weekly report, and which lists the working proxies came from is ranked every hour.
The stronger the color, the more working proxies exit there. Pick a country to see them.
Loading the map
One point per run, about every hour.
Where the exits are.
How fast they answered.
Run the same checks on your own machine, start from this list, or just fetch the plain text files.
Hundreds of sources, all the checks, filters and a live dashboard in your terminal.
pipx install proxy-scraper-cli proxy-scraper --want 50 --https-only
Starts from this list and checks it again from where you are. Takes about 30 seconds, then serves a rotating proxy on port 8899.
proxy-scraper --recheck live --serve
Drag this button to your bookmarks bar. Clicking it copies a proxy that worked in 90 %+ of this week's checks – on whatever page you're on, nothing to install.
Get a proxyOr right here: .
One proxy per line, fastest first, updated with every run.
The same files this page uses, next to it on GitHub Pages. Updated with every run, served with CORS, no key needed.
curl -s https://maximilianfeix.github.io/proxy-scraper/proxies.json | jq '.[0]'
{
"url": "socks5://203.0.113.10:1080",
"proxy": "203.0.113.10:1080",
"ptype": "socks5",
"latency": 92,
"country": "DE",
"https": true,
"anonymity": "elite",
"exit_ip": "203.0.113.10",
"asn": 14061,
"org": "DigitalOcean, LLC",
"hosting": true,
"blocklisted": false,
"streak": 5,
"first_seen": "2026-09-26T21:17:04+00:00",
"uptime_24h": 100,
"uptime_7d": 94,
"sites": { "google": true, "reddit": false, "amazon": false }
}Short answers. The README has more.
They're run by strangers, so treat them as untrusted. Anything that isn't encrypted can be read by whoever runs the proxy – never send passwords or personal data through one. Every proxy on this list delivered one test page unchanged when it was checked, and the HTTPS ones passed a TLS test to one test host at that time. That says nothing about other sites or later connections. Your own client's certificate check is what protects an https:// page, so leave it on. Use them for scraping public pages or seeing a site from another country, not for your bank.
Most of what the public lists hold does not pass the checks here: it does not answer, fails the second request or returns a changed test page. Why an entry fails is not recorded. Entries also do not stay long. Of the ones that left this list again, most had been on it for a single run, and only a few stayed a whole day – the weekly report tracks it. Not being on the list is not a measured failure.
About every hour. GitHub Actions collects candidates from hundreds of public lists, checks 150,000 of them and publishes whatever passed. This page loads the new list by itself when a run lands.
Yes. The code is open source under the MIT license, and the lists are free to use, including in commercial projects. The proxies themselves belong to other people, so stick to the terms of the sites you visit through them.
From Python: pip install proxy-scraper-cli, then live_proxies() returns the checked list with filters for country, protocol, uptime and the sites a proxy gets through to. AI agents like Claude Code or Cursor can use the MCP server, which gives them working proxies and can load pages through them.
It worked from GitHub's servers in the last run, but free proxies come and go, and some block certain networks. proxy-scraper --recheck live checks the list again from your own connection in about 30 seconds and keeps what works from there.
A star on GitHub is how other people find this list. It stays free and open source, and it's checked again every hour.
pipx install proxy-scraper-cli