Method

How we say a proxy works, and how to check

Success rate is the number everyone quotes and almost nobody defines. This page is our definition, our protocol, and a harness you can run against us and against everyone else.

Status of our own results. We have not yet published a benchmark. When we do, it will carry this protocol, the targets, the sample sizes, the raw data and the scripts, so it can be repeated. Until then we will not quote a figure, and you should be sceptical of any provider that quotes one without these.

Definitions

Six metrics, defined

Success rate

Requests that returned a page passing a per-target content check, divided by requests attempted. Status codes alone do not count: challenge pages return 200.

Response time

Time from sending the request to receiving response headers, reported as median and 95th percentile, never as a mean.

Bytes per success

Total bytes moved, failures included, divided by successful pages. This is the number that decides cost on per-GB products.

Retry amplification

Attempts made per successful page. A product that succeeds by retrying four times has a different cost to one that succeeds first time.

Pool freshness

Share of sampled exit addresses already seen in the previous sampling window. A high repeat rate means a smaller effective pool than the headline.

Block mode

Of failures, the share that were rate limits (429), refusals (403), challenges returned as 200, and timeouts. The mix tells you what to change.

Protocol

Rules for a fair comparison

  1. Run providers interleaved on the same targets in the same window, not one after another.
  2. Fix the sample size per target in advance, and publish it. Small samples give wide intervals; we state the interval.
  3. Pick targets by your workload, not by what is easy. Include your hardest three.
  4. Report per target. An average hides the hard one.
  5. Repeat on different days and at different hours.
  6. Publish the definition of success for every target beside its result.

Run it yourself

A minimal harness

Replace the target and the content check, point it at any provider, and run a few hundred requests. It reports success rate and response-time percentiles.

bench.py
import statistics
import requests

PROXY = "http://USERNAME:PASSWORD@GATEWAY_HOST:PORT"
URL = "https://example.com/"
MUST_CONTAIN = "Example Domain"
N = 300

ok, times = 0, []
for _ in range(N):
    try:
        r = requests.get(URL, proxies={"http": PROXY, "https": PROXY}, timeout=30)
        times.append(r.elapsed.total_seconds())
        ok += r.status_code == 200 and MUST_CONTAIN in r.text
    except requests.RequestException:
        pass

times.sort()
print(f"success {ok}/{N}")
if times:
    p95 = times[int(len(times) * 0.95) - 1]
    print(f"response p50 {statistics.median(times):.2f}s  p95 {p95:.2f}s")

Use only targets you are permitted to test. Then turn the result into a cost with the cost per success tool.

Want us to run it with you?

For an evaluation, an engineer will agree the targets and success checks with you in advance and share the raw results.