Buying guide29 September 20267 min read

How to test a proxy provider before you place a big order

A one-hour test plan and a short Python harness that tell you whether a proxy provider works on your target, before a bigger order locks you in.

The cheapest mistake in this market is a small top-up that did not work out. The expensive one is a large order placed because a pricing page looked good. Treat your first payment to any provider, including us, as a test budget: spend it on answering specific questions, and only then decide whether to spend more.

Here is the plan we would follow ourselves.

Before you pay anything

Read three things on the provider's site. If one of them is missing, that is a finding in itself.

  • The refund policy. Can you get unused balance back, and how? Ours is on the honesty page and in the refund policy.
  • The acceptable use policy. Make sure your job is on the allowed side before you buy, so nobody closes your account halfway through. Ours is here.
  • How usage is counted. For a per-GB product, what bytes are billed, and what happens to failed requests. Ours is under metering.

Then ask the support channel one real question about your use case and note how long the reply takes and whether it answers what you asked. You will be relying on that channel later, when something is broken.

What to buy for the test

The smallest order that answers your question. For a per-GB product such as residential, that is the smallest quantity the order form accepts, and a gigabyte of ordinary HTML pages goes a long way in a test. For a per-IP product such as ISP or datacenter, one IP on the shortest term is enough to learn whether the network gets through. Current figures are on the pricing page.

The five checks

Run them against the site you care about. A proxy that loads example.com tells you nothing about a retailer with a bot wall.

  1. Does it get through? Real pages from your real target, counted by whether you got the content you wanted.
  2. Is the IP what the label says? A datacenter IP sold as residential is the most common lie in cheap proxies. Checking what kind of IP you were sold shows how to look it up yourself.
  3. Is it where you asked? For lines with country targeting, look up the exit IP's country. On our residential line there is no country choice, so skip this one there.
  4. Is it fast enough? Look at the slow tail as well as the median. A proxy that answers most requests quickly and a tenth of them very slowly will stall a worker pool.
  5. Does the meter agree with you? Count your own bytes and compare them with the dashboard. How to check your provider's meter walks through it.

A harness for checks one and four

Fifty URLs from your target is a reasonable sample. MARKER is a short string that only appears on a real page, such as a product title class or a heading you expect, so a 200 carrying a captcha does not count as a pass.

import csv
import statistics
import time

import requests

PROXY = "http://USERNAME:PASSWORD@HOST:PORT"
PROXIES = {"http": PROXY, "https": PROXY}
MARKER = "product-title"
URLS = [line.strip() for line in open("sample-urls.txt") if line.strip()]

rows = []
for url in URLS:
    started = time.perf_counter()
    try:
        r = requests.get(url, proxies=PROXIES, timeout=30)
        status, body, error = r.status_code, r.text, ""
    except requests.RequestException as exc:
        status, body, error = 0, "", type(exc).__name__
    rows.append({
        "url": url,
        "status": status,
        "real_page": MARKER in body,
        "seconds": round(time.perf_counter() - started, 3),
        "error": error,
    })

with open("provider-test.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=list(rows[0]))
    writer.writeheader()
    writer.writerows(rows)

real = [row for row in rows if row["real_page"]]
times = sorted(row["seconds"] for row in real)
print(f"real pages: {len(real)} of {len(rows)}")
if times:
    print(f"median {statistics.median(times):.2f}s, slowest tenth from {times[int(len(times) * 0.9)]:.2f}s")

Put your own HOST, PORT, USERNAME and PASSWORD in; our dashboard shows them on each service's page. Keep the CSV. It is your evidence if you need to ask for anything later.

Decide the pass mark first

Write down, before the run, what result would make you spend more: how many real pages out of fifty, and how slow the slow tail is allowed to be. It is easy to talk yourself into a provider after the money is spent. A number you wrote down beforehand is harder to argue with.

If the result is a clear pass, place the bigger order. If it is a clear fail, stop there and use the refund policy for what is left. If it is in between, bring the CSV to the provider's support and see what they say about it. That conversation tells you as much as the test did.

Testing us

Everything above applies to ProxyPanda too. Start with a small order, run the harness, check the IPs and the meter, and hold us to what the honesty page says. If something does not add up, post the numbers in Discord and we will answer in public.

Got a follow-up question?

Ask it in Discord. The answer helps whoever reads the thread next.

Join the Discorddiscord.gg/proxypanda
Start with $5Ask in Discord