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.

Loading the latest run
Browse the list
A run, sped up (illustration) checked 0 kept 0

    Illustration – the failing rows are examples, the passing rows are from the list. Click a passing one to copy it.

    The last run in numbers

    Measured from GitHub's servers. From your own network some proxies will be faster, some won't answer at all.

    0

    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.

    0%

    tunnel HTTPS. They carry encrypted traffic through a tunnel, tested with a verified TLS handshake to one test host.

    0%

    are elite. The target site can't tell that a proxy is in between: no forwarded IP, no Via header.

    0s

    median response time. Half of the list answers faster than that. Sort by latency to get the quickest ones first.

    Pick your proxies

    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.

    Working proxies from the last run. Activate an address to copy it.
    Gets through
    Loading the list

    Hand it to your AI agent

    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 above
    • check_proxieschecked again from your own network, so they work from where your code runs
    • fetch_urla page through a proxy from the checked list, as readable text – switches proxies by itself
    claude 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.

    How a proxy gets on this list

    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.

    Step 2 of 5

    A real handshake, not just an open port.

    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

    Two sites, one foreign IP.

    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

    A test page has to arrive unchanged.

    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

    Then the details.

    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.

    – made it.

    That's the list above. In about an hour it starts over, and anything that no longer passes is off the list.

    What is checked here

    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.

    What you'd want to knowHere, in the last run
    Is it a proxy at all?A real HTTP/SOCKS handshake and a first request that returns a public exit IP that isn't ours. – entries passed every check in the last run
    Does a second request confirm it?A request to a second, unrelated site has to show the same exit IP
    Does a test page arrive unchanged?One static test page, fetched over plain HTTP, has to arrive byte for byte. Entries that return a changed test page are not listed
    Does HTTPS work through it?A verified TLS handshake through the tunnel to one test host: – of them
    How long has it been on the list?The share of this week's runs each entry was on the list. – were on it in 90 %+ of the runs
    Does Google let it through?One test request each to Google, Reddit, Amazon, Instagram, TikTok and Discord through the HTTPS-capable ones: – got through to Google
    Is it fast enough for real pages?100 KB downloaded through every HTTPS-capable one: half of the downloads that finished manage – or more
    How fresh is it?Checked again about every hour, the last run –

    Run after run

    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.

    Where they are

    The stronger the color, the more working proxies exit there. Pick a country to see them.

    Loading the map

    Working proxies per run

    One point per run, about every hour.

    WorkingOf those, HTTPS-capable

    Countries

    Where the exits are.

    Latency

    How fast they answered.

    Use it your way

    Run the same checks on your own machine, start from this list, or just fetch the plain text files.

    Scan it yourself

    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

    Recheck from your network

    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

    One click, on any site

    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 proxy

    Or right here: .

    Plain lists

    One proxy per line, fastest first, updated with every run.

    Build on the data

    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 }
    }

    Questions people ask

    Short answers. The README has more.

    Are free proxies safe to use?

    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.

    Why do most free proxies not work?

    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.

    How often is the list updated?

    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.

    Can I use it in my own projects?

    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.

    How do I use it from Python or an AI agent?

    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.

    A proxy from the list doesn't work for me – why?

    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.

    Saved you an afternoon?

    A star on GitHub is how other people find this list. It stays free and open source, and it's checked again every hour.

    Star on GitHub
    pipx install proxy-scraper-cli