All endpoints on dashboard port (default 8181). Timestamps: ISO 8601 UTC.
Authorization: Bearer <token>{"username":"admin","password":"secret"}{"token":"eyJ...","username":"admin","role":"owner"}{"status":"ok","pool_size":142,"scraping":false,"active_connections":3,"total_requests":1500,"proxied_requests":1200,"failed_requests":12,"avg_latency_ms":312.4,"last_scrape":"2025-01-01T12:00:00+00:00","scrape_count":5,"low_pool_threshold":100,"bad_sources_count":2}{"pool_size":142,"proxies":[{"host":"1.2.3.4","port":8080,"alive":true,"latency_ms":245.1,"success_count":12,"fail_count":0,"total_bytes":204800}]}{"events":[{"ts":"2025-01-01T12:00:00+00:00","level":"info","message":"Scrape complete: 142 live proxies."}]}| Field | Type | Description |
|---|---|---|
| scrape_interval | int | Seconds between auto scrapes (default: 3600) |
| health_interval | int | Seconds between health checks (default: 600) |
| max_fail_count | int | Failures before proxy eviction (default: 3) |
| min_pool_size | int | Min pool before emergency scrape (default: 10) |
| low_pool_threshold | int | Pool size triggering emergency re-scrape (default: 100) |
| retry_count | int | Max proxy retries per request (default: 5) |
| repopulate_wait | int | Wait seconds on empty pool (default: 60) |
| max_proxies | int | Proxy cap per scrape validation (default: 2000) |
| max_latency_ms | int | Max latency ms, 0=disabled (default: 0) |
| webhook_url | string | Discord webhook URL, empty=disabled |
| validation_urls | array | URLs used to validate scraped proxies |
| scrape_sources | array|null | Custom sources (null=use built-in 44k list) |
| proxy_strategy | string | roundrobin or random |
| routed_domains | array | Domains routed through proxies |
| alert_on_empty | bool | Webhook alert when pool empties |
| alert_on_recovery | bool | Webhook alert on pool recovery |
{"needs_migration":true,"pending":[{"key":"low_pool_threshold","path":"pool","default":100}]}{"ok":true,"applied":[{"key":"low_pool_threshold","path":"pool","default":100}]}No request body needed.
{"ok":true,"message":"Scrape started."}
// already running: {"ok":false,"message":"Scrape already running."}{"ok":true}{"username":"alice","password":"secret123","role":"admin"}{"password":"new-secure-pass"}// Body: {"label":"My Bot"}
// Response: {"token":"pr_...","label":"My Bot","created_at":"2025-01-01T12:00:00+00:00"}Proxy Router — self-hosted