ProxyFlow is a high-performance, asynchronous proxy management suite designed for professional web scraping and automation. It eliminates the friction of managing proxy health by providing a self-healing pool with low-latency smart routing.
| Feature | Description |
|---|---|
| ⚡ Async Engine | Built on asyncio, aiohttp, and aiosqlite for non-blocking concurrent checks |
| 🔗 Smart Routing | /get-proxy always serves the fastest verified proxy in your pool |
| 🤖 Automation Ready | First-class support for Playwright and Selenium |
| 📦 Local-First | State persisted in a high-performance local SQLite database |
| 📤 Export Support | Download your active proxy pool at any time via /export |
| 🔄 Self-Healing | Continuous health checks automatically remove dead proxies |
git clone https://github.com/hiericho/proxyflow.git
cd proxyflowpip install -r requirements.txtpython -m src.mainThe API will be available at http://localhost:8000. Visit /docs for the interactive Swagger UI.
| Endpoint | Method | Description |
|---|---|---|
/ |
GET |
System status and available endpoints |
/get-proxy |
GET |
Returns the fastest available proxy |
/export |
GET |
Bulk export of active proxies as plain text |
/proxies |
POST |
Add a list of proxy URLs to the pool |
/proxies |
DELETE |
Remove specific URLs from the pool |
/dashboard |
GET |
Real-time health metrics and recent logs |
/check-now |
POST |
Manually trigger a health check cycle |
import requests
from playwright.sync_api import sync_playwright
# ProxyFlow selects the best proxy automatically
proxy_url = requests.get("http://localhost:8000/get-proxy").json()["proxy"]
with sync_playwright() as p:
browser = p.chromium.launch(proxy={"server": proxy_url})
page = browser.new_page()
page.goto("https://example.com")
# ... your scraping logic
browser.close()import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
proxy_url = requests.get("http://localhost:8000/get-proxy").json()["proxy"]
options = Options()
options.add_argument(f"--proxy-server={proxy_url}")
driver = webdriver.Chrome(options=options)
driver.get("https://example.com")curl -X POST "http://localhost:8000/proxies" \
-H "Content-Type: application/json" \
-d '{"proxies": ["http://user:pass@host1:port", "http://user:pass@host2:port"]}'proxyflow/
├── src/
│ ├── main.py # FastAPI app & startup
│ ├── checker.py # Async health check engine
│ ├── router.py # API route handlers
│ └── database.py # SQLite persistence layer
├── requirements.txt
└── README.md
- Python 3.10+
- Dependencies:
fastapi,uvicorn,aiohttp,aiosqlite
Contributions, issues, and feature requests are welcome. Feel free to open a PR or file an issue.
Built with ❤️ for the Automation Community.