Fast async proxy checker — HTTP/HTTPS/SOCKS4/SOCKS5, 500+ proxies/minute
Project description
proxy-checker
Fast async proxy validator — HTTP/HTTPS/SOCKS4/SOCKS5, 500+ proxies/minute.
Checks latency, anonymity level, and country. Works as a library or CLI tool.
Installation
pip install fast-proxy-checker # HTTP/HTTPS support
pip install "fast-proxy-checker[socks]" # + SOCKS4/SOCKS5 support
Quick Start
CLI
# Check proxies from a file
proxy-checker check proxies.txt
# Check SOCKS5 proxies with custom concurrency
proxy-checker check proxies.txt --type socks5 --threads 200
# Export results to CSV
proxy-checker check proxies.txt --output results.csv --format csv
# Fetch fresh proxies from public sources and check them
proxy-checker fetch --count 100 --type http
proxy-checker fetch --count 50 --type socks5 --output alive.txt
Python API
import asyncio
from proxy_checker import check_proxies, ProxyType
async def main():
proxies = ["1.2.3.4:8080", "5.6.7.8:3128"]
async for result in check_proxies(proxies, ProxyType.HTTP, concurrency=100):
if result.is_alive:
print(f"{result.address} {result.latency_ms}ms [{result.country_code}]")
asyncio.run(main())
Features
- Async — built on
asyncio+aiohttp, checks hundreds of proxies in parallel - All protocols — HTTP, HTTPS, SOCKS4, SOCKS5
- Anonymity detection — transparent / anonymous / elite
- Country detection — via ip-api.com
- Multiple output formats — TXT, CSV, JSON
- Free proxy lists — auto-updated daily (see
proxies/) - CLI + library — use from terminal or import in your code
💡 Need reliable proxies? Free lists work for testing, but production scraping needs stable providers. Check ProxyStats.io — independent benchmarks of residential & datacenter proxy providers with real-world latency, success rate, and cost data.
Free Proxy Lists (updated daily)
Auto-validated by this tool via GitHub Actions — only working proxies included:
| List | Type | Raw URL |
|---|---|---|
| proxies/http.txt | HTTP | raw.githubusercontent.com/ProxyStats/proxy-checker/main/proxies/http.txt |
| proxies/socks4.txt | SOCKS4 | raw.githubusercontent.com/ProxyStats/proxy-checker/main/proxies/socks4.txt |
| proxies/socks5.txt | SOCKS5 | raw.githubusercontent.com/ProxyStats/proxy-checker/main/proxies/socks5.txt |
Free proxies are unstable by nature — IPs die within hours. For production workloads see ProxyStats.io.
Output Example
proxy-checker checking 500 proxies (concurrency=500, timeout=10s)
OK 45.77.31.10:8080 234.1ms elite [US]
OK 103.152.112.157:80 891.2ms anonymous [ID]
OK 181.78.18.1:999 445.7ms elite [CO]
...
Results: 87 alive / 413 dead / 500 total
Need reliable proxies? → https://proxystats.io
CLI Reference
Usage: proxy-checker [OPTIONS] COMMAND [ARGS]...
Commands:
check Check proxies from a file
fetch Fetch free proxies from public sources and check them
Options for `check`:
FILE Path to proxy list (one proxy per line)
--type [http|https|socks4|socks5] Default: http
--threads INTEGER Concurrency [default: 500]
--timeout FLOAT Timeout per proxy in seconds [default: 10.0]
--output PATH Save results to file
--format [txt|csv|json] Output format [default: txt]
--all Show dead proxies too
Proxy List Format
One proxy per line. Scheme prefix is optional:
1.2.3.4:8080
socks5://10.0.0.1:1080
http://user:pass@1.2.3.4:3128
Python API Reference
from proxy_checker import check_proxy, check_proxies, ProxyType, ProxyResult
# Check a single proxy
result: ProxyResult = await check_proxy("1.2.3.4", 8080, ProxyType.HTTP)
# Check many proxies (async generator, yields as results arrive)
async for result in check_proxies(
proxies, # list of strings
proxy_type=ProxyType.HTTP,
concurrency=500,
timeout=10.0,
):
print(result.is_alive, result.latency_ms, result.country)
ProxyResult fields: host, port, proxy_type, is_alive, latency_ms, anonymity, country, country_code, error
Contributing
See CONTRIBUTING.md. PRs welcome.
git clone https://github.com/ProxyStats/proxy-checker
cd proxy-checker
pip install -e ".[socks]"
pytest tests/
License
MIT — see LICENSE
⭐ Star this repo if it helped you — it helps others discover it.
Made by ProxyStats — independent proxy benchmarks.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fast_proxy_checker-1.0.2.tar.gz.
File metadata
- Download URL: fast_proxy_checker-1.0.2.tar.gz
- Upload date:
- Size: 71.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcaeb25efe668f557bbe68eb69e28bb50ab16cda2d9277e79cec05fc731dbc8b
|
|
| MD5 |
71984515fd5ee02de2505fc2f87d3baa
|
|
| BLAKE2b-256 |
fb9cd5b216b7acaad097327065b41eba277137add07547147cd18842fa28c11c
|
Provenance
The following attestation bundles were made for fast_proxy_checker-1.0.2.tar.gz:
Publisher:
publish.yml on ProxyStats/proxy-checker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fast_proxy_checker-1.0.2.tar.gz -
Subject digest:
dcaeb25efe668f557bbe68eb69e28bb50ab16cda2d9277e79cec05fc731dbc8b - Sigstore transparency entry: 1306469721
- Sigstore integration time:
-
Permalink:
ProxyStats/proxy-checker@a4ac356b8bc20366b3fa1a006181300e3aba984f -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/ProxyStats
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a4ac356b8bc20366b3fa1a006181300e3aba984f -
Trigger Event:
push
-
Statement type:
File details
Details for the file fast_proxy_checker-1.0.2-py3-none-any.whl.
File metadata
- Download URL: fast_proxy_checker-1.0.2-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a65a50a5352713502219a759d1adcf02102661c5099d0ad0e1bc93fcc79f31b5
|
|
| MD5 |
02cc3574a794bbf1845d9aef990660dd
|
|
| BLAKE2b-256 |
5b1706e588fe08905d24682626d2e1d5f47d3e5b1aa0f13892888c7c3756b30f
|
Provenance
The following attestation bundles were made for fast_proxy_checker-1.0.2-py3-none-any.whl:
Publisher:
publish.yml on ProxyStats/proxy-checker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fast_proxy_checker-1.0.2-py3-none-any.whl -
Subject digest:
a65a50a5352713502219a759d1adcf02102661c5099d0ad0e1bc93fcc79f31b5 - Sigstore transparency entry: 1306470184
- Sigstore integration time:
-
Permalink:
ProxyStats/proxy-checker@a4ac356b8bc20366b3fa1a006181300e3aba984f -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/ProxyStats
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a4ac356b8bc20366b3fa1a006181300e3aba984f -
Trigger Event:
push
-
Statement type: