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.
If this tool saved you time, give it a ⭐ — it helps others find it.
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
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
Free Proxy Lists
Auto-updated daily via GitHub Actions:
| List | Type |
|---|---|
| proxies/http.txt | HTTP |
| proxies/socks4.txt | SOCKS4 |
| proxies/socks5.txt | SOCKS5 |
Need reliable proxies for production? ProxyStats.io — independent benchmarks of 50+ residential and datacenter proxy providers. Compare speed, uptime, and pricing without vendor bias.
Reliable Proxies
Free proxy lists are unstable — IPs die within hours. For production scraping, data collection, or any serious use, you need a real provider.
ProxyStats.io tests and ranks 50+ residential, datacenter, and mobile proxy providers on real-world metrics: speed, uptime, geo-coverage, and price. No sponsored rankings, no vendor bias.
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
PRs welcome. Please add tests for new features.
git clone https://github.com/proxystats/proxy-checker
cd proxy-checker
pip install -e ".[socks]"
pytest tests/
License
MIT — see LICENSE
Built by ProxyStats.io — proxy provider benchmarks and comparisons.
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.0.tar.gz.
File metadata
- Download URL: fast_proxy_checker-1.0.0.tar.gz
- Upload date:
- Size: 70.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4e6c2644f96f642e2213c325362149a6dac295abf4f1c3374eba92fd548475c
|
|
| MD5 |
b14abf126273e1f6031dd183b3204589
|
|
| BLAKE2b-256 |
830a62315bb66bbae343f18f366f149c19a71aef35ce4f07d2d0902c3934b005
|
Provenance
The following attestation bundles were made for fast_proxy_checker-1.0.0.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.0.tar.gz -
Subject digest:
e4e6c2644f96f642e2213c325362149a6dac295abf4f1c3374eba92fd548475c - Sigstore transparency entry: 1306374084
- Sigstore integration time:
-
Permalink:
ProxyStats/proxy-checker@08240a200761248d39c1790c9c59f14559cd20d4 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/ProxyStats
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@08240a200761248d39c1790c9c59f14559cd20d4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fast_proxy_checker-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fast_proxy_checker-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.2 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 |
e273910fc291853c55ac0f9e7044bf228ed1571fa521003d9b5d488866a87000
|
|
| MD5 |
34d0cc42361808e44d34373d3e01fa61
|
|
| BLAKE2b-256 |
df9fd8ae6dc98975d8fdbba604d4a09d6a6d8b37a8b34f289178414846b6d5b9
|
Provenance
The following attestation bundles were made for fast_proxy_checker-1.0.0-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.0-py3-none-any.whl -
Subject digest:
e273910fc291853c55ac0f9e7044bf228ed1571fa521003d9b5d488866a87000 - Sigstore transparency entry: 1306374371
- Sigstore integration time:
-
Permalink:
ProxyStats/proxy-checker@08240a200761248d39c1790c9c59f14559cd20d4 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/ProxyStats
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@08240a200761248d39c1790c9c59f14559cd20d4 -
Trigger Event:
push
-
Statement type: