Developer Docs & API

Integrate proxies into your scrapers, LLM pipelines and automation tools in minutes. No API keys, no registration.

stormsia/proxy-list is a fully open-source project that runs an asynchronous Python daemon every 15 minutes to collect, validate and publish free proxy servers. Each proxy is tested by a native validator for actual connectivity and response time — only working proxies make it to the list.

All data is freely accessible without authentication: grab a plain-text file with curl, poll the JSON feed, or query the GitHub REST API. This page documents every integration method available.

Available Data Endpoints

All endpoints below are publicly accessible without authentication. GitHub's raw CDN also supports HTTP range requests for partial downloads.

JSON
/proxies.json
Full proxy list as JSON. Contains protocol, host, port, timeout, exit_ip, ASN, and geolocation for every entry.
Open →
TXT
working_proxies.txt
All working proxies in host:port format. One entry per line.
Open →
TXT
socks5.txt
SOCKS5-only proxies in host:port format.
Open →
TXT
http.txt
HTTP/HTTPS-only proxies.
Open →

JSON Schema Reference

Each entry in proxies.json follows this structure:

json
{
  "protocol": "socks5",       // "socks5" | "socks4" | "http" | "https"
  "host": "1.2.3.4",          // Proxy IP address
  "port": 1080,               // Proxy port number
  "timeout": 0.312,           // Response time in seconds
  "exit_ip": "1.2.3.4",       // External IP seen through the proxy
  "asn": {
    "autonomous_system_number": 12345,
    "autonomous_system_organization": "Example ISP"
  },
  "geolocation": {
    "city": { "names": { "en": "Frankfurt" } },
    "continent": { "code": "EU", "names": { "en": "Europe" } },
    "country": {
      "iso_code": "DE",
      "names": { "en": "Germany" }
    },
    "location": { "latitude": 50.11, "longitude": 8.68 },
    "registered_country": {
      "iso_code": "DE",
      "names": { "en": "Germany" }
    }
  }
}

Python — Auto-Update & Use

Fetch and immediately use the latest proxies inside a requests session:

python
import requests
import random

SOCKS5_URL = "https://raw.githubusercontent.com/stormsia/proxy-list/main/socks5.txt"
HTTP_URL   = "https://raw.githubusercontent.com/stormsia/proxy-list/main/http.txt"

def fetch_proxies(url: str) -> list[str]:
    """Download a plain-text proxy list and return as a list of host:port strings."""
    response = requests.get(url, timeout=15)
    response.raise_for_status()
    return [line.strip() for line in response.text.splitlines() if line.strip()]

if __name__ == "__main__":
    proxies = fetch_proxies(SOCKS5_URL)
    print(f"Loaded {len(proxies)} SOCKS5 proxies")

    proxy = random.choice(proxies)
    print("Using proxy:", proxy)
⚠️

Anonymity Disclaimer

Proxies in this list have varying anonymity levels — transparent, anonymous, and elite. The project does not guarantee anonymity for any specific proxy. Always verify the anonymity level of a proxy with a tool like httpbin.org/ip before using it in production.