The rig
A single AWS t3.medium in eu-west-1. Node 20.x, undici as the HTTP client for raw runs, Playwright when JavaScript rendering is needed (e.g. anti-bot-heavy retailers). Runs nightly at 02:00 UTC, logs to S3, aggregated daily into a public sheet.
Connect
Provider's documented entry endpoint, via their SDK or raw HTTP.
Fire
8 workloads, concurrency 200, 10k requests/provider/night.
Score
3-gate success check on every response, latency captured client-side.
Publish
Logs to S3 → aggregated into the public benchmarks dashboard.
Each provider exposes a documented entry endpoint — e.g. brd.superproxy.io:22225 for Bright Data. We use the provider's SDK where they publish one (Python, Node), raw HTTP otherwise. We pay full retail for every account — no comp accounts, no "press" tier.
Targets
Eight workloads per provider per night, each one a real job buyers actually use proxy networks for. Geos and volumes are fixed so runs are comparable night to night.
The full keyword and ASN list is published on our benchmarks dashboard →, refreshed nightly.
Success criteria
For a request to count as a "success" we require all three gates to pass. Any one failing marks the request a miss — this is what keeps stripped 200s and silent CAPTCHA pages out of the numbers.
HTTP 2xx within 12s
A 2xx status code returned inside a 12-second timeout. Timeouts and 4xx/5xx count as failures.
Body above a minimum length
Response body length above a target-specific floor — catches stripped or empty responses dressed up as a 200.
No anti-bot challenge
No CAPTCHA or anti-bot challenge string in the body, matched against a per-target regex list.
What we measure
Five metrics per target, per provider, every night. Latency percentiles are measured client-side and include connection setup plus first byte.
Success rate
Successes ÷ total requests, per target, per provider.
P50 / P95 / P99 latency
Client-side, connection + first byte. Errors discarded.
Throughput
Average successful requests per minute at concurrency 200.
Ban rate
Share of requests returning a CAPTCHA / anti-bot body.
Pool freshness
Share of unique IPs seen across a rolling 7-day window.
What we don't claim
Our numbers come from one vantage point (eu-west-1) and a fixed target list. Treat them as relative comparisons between providers run on the same harness — not as a guarantee of what you'll see in production.
Real-world performance depends on your origin region, your target site's anti-bot regime that day, your concurrency, and your session strategy. A provider that scores 99.4% on our SERP test in April 2026 may score 95% in your stack with different headers and a different rotation pattern.
We publish the absolute numbers because they're useful for relative comparison between providers tested with the same harness. Treat them that way.
Reproducing our numbers
Email [email protected] and we'll send the most recent run logs for any provider, plus the test harness on request. We can't share other providers' API credentials, obviously — you'd bring your own. Find a bug in our methodology and we'll fix it and credit you in the changelog.
Methodology changelog
Every change to the rig, target list or scoring is dated here. We never silently re-baseline.