Which public web targets actually need a proxy: 32 measured results
Thirty-two public web targets, each fetched through six proxy configurations that differ by one variable at a time, ten rounds per arm, interleaved so the hour of day cannot be confounded with the arm. 1,920 requests, measured 2026-08-18, 15:38–18:09 UTC, from a DigitalOcean droplet in New York. Success is a content assertion: an HTTP 200 carrying a challenge page, an empty body or the wrong page is a failure.
| Verdict | Targets |
|---|---|
| none — a clean cloud IP scores 90% or better with no proxy | 19 |
| residential — a proxy tier is the difference between 0% and 100% | 1 |
| no tier sufficient — nothing tested reached 90% | 12 |
No arm beat the unproxied control. Across all 1,920 requests the six arms
span 4.7 percentage points, and direct is at the top of that spread.
Read the twelve "no tier sufficient" rows before quoting them
REPORT.md states that all of the zero-scoring targets are real blocks. Working
back from raw.csv for these pages, that does not hold for all of them, and
the difference is large enough to publish rather than absorb.
| Target | What the run recorded | Verdict on re-reading |
|---|---|---|
canva_template |
403 unproxied, 200 + Cloudflare challenge on the upper tiers, best arm 40% | defended (figures unreliable) |
us_co_sos_biz |
403 on 33 of 60, Cloudflare challenge on the rest | block confirmed |
us_ia_sos_biz |
100 KB HTTP 200 flagged cloudflare_challenge, all 60 |
probable false positive |
us_in_bsd_search |
HTTP 202, zero-length body, all 60 | block confirmed |
us_la_corasearch |
25 KB HTTP 200 flagged recaptcha, 58 of 60 |
probable false positive |
us_mo_sos_biz |
30 s timeout unproxied, 403 on 35 of 60 | block confirmed |
us_nc_realestate |
HTTP 202 empty on 50, residential got 404 + reCAPTCHA | block confirmed |
us_nc_sos_biz |
HTTP 403 on all 60 | block confirmed |
us_ne_corpsearch |
30 s timeout unproxied, 26 KB recaptcha page proxied |
unresolved |
us_nv_esos |
212-byte HTTP 200 Imperva stub, all 60 | block confirmed |
us_tx_harris_prop |
HTTP 404 flagged cloudflare_challenge, all 60 |
URL does not exist |
us_ut_bes |
403 on the plain arms, 52 KB captcha page on the rest |
unresolved |
The two false positives and the dead URL share one cause. classify() in
harness.py tests the challenge signatures against the response body before
it evaluates the content assertion, for every status other than 403, 429,
401/407 and 5xx. Its cloudflare_challenge pattern matches
cdn-cgi/challenge-platform, a script Cloudflare injects into ordinary
responses; its recaptcha pattern matches g-recaptcha, which is present on
any page that embeds a reCAPTCHA widget, including a form that renders
perfectly and only challenges on submission; and its generic_captcha pattern
matches the literal string captcha anywhere in the body.
So seven of the twelve are blocks the data supports, two are probably the target's own page misfiled, two cannot be settled from the published data, and one is a URL that returns HTTP 404 from Microsoft IIS. Anyone quoting "12 of 32 unreachable at any tier" should quote seven, and say why.
Every benchmarked target
The minimum viable tier is the cheapest arm whose success rate reaches 90%,
walking direct → datacenter → datacenter with Anti-Detect → residential.
"Best arm" is the highest-scoring arm regardless of cost; where every arm scored
0% the best-arm column is an artefact of tie-breaking and means nothing.
| Target | Category | Minimum viable tier | Best arm | Official API | robots.txt |
|---|---|---|---|---|---|
us_ar_sos_search |
State business registry | residential | 100% (residential) | no | allowed |
us_co_sos_biz |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_ia_sos_biz |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_in_bsd_search |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_la_corasearch |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_mn_search |
State business registry | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_mo_sos_biz |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_nc_sos_biz |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_ne_corpsearch |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_nv_esos |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_ri_corpsearch |
State business registry | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_ut_bes |
State business registry | no tier sufficient | 0% (ad rotating) | no | allowed |
us_al_medical |
Licensing board | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_az_realestate |
Licensing board | none (no proxy needed) | 100% (direct) | no | allowed |
us_bacb_registry |
Licensing board | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_ca_dca_lookup |
Licensing board | none (no proxy needed) | 100% (direct) | no | allowed |
us_nc_realestate |
Licensing board | no tier sufficient | 0% (ad rotating) | no | allowed |
us_tx_tdlr_lookup |
Licensing board | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_va_dhp_lookup |
Licensing board | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_fl_broward_prop |
County property records | none (no proxy needed) | 100% (direct) | no | allowed |
us_nv_clark_prop |
County property records | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_tx_dallas_prop |
County property records | none (no proxy needed) | 100% (ad rotating) | no | allowed |
us_tx_harris_prop |
County property records | no tier sufficient | 0% (ad rotating) | no | allowed |
us_wa_king_prop |
County property records | none (no proxy needed) | 100% (ad rotating) | no | allowed |
es_pappers_api |
International registry | none (no proxy needed) | 100% (ad rotating) | no | allowed |
in_epfindia |
International registry | none (no proxy needed) | 100% (ad sticky) | no | allowed |
aliexpress_item |
High-defence commercial | none (no proxy needed) | 100% (ad sticky) | no | allowed |
canva_template |
High-defence commercial | no tier sufficient | 40% (ad sticky) | no | allowed |
steam_app |
High-defence commercial | none (no proxy needed) | 100% (ad rotating) | no | allowed |
uk_companies_house |
Control | none (no proxy needed) | 100% (ad rotating) | yes | allowed |
uk_fsa_hygiene |
Control | none (no proxy needed) | 100% (ad rotating) | yes | allowed |
us_sec_edgar |
Control | none (no proxy needed) | 100% (ad rotating) | yes | allowed |
Also published
- The 15 excluded targets and why each was dropped — 11 of them because their robots.txt could not be read
- Protection systems — which portals sit behind Cloudflare, Imperva, DataDome, reCAPTCHA, CloudFront, a JavaScript shell or a tarpit
- The full benchmark report — methodology, arm totals, and what a low-volume single-day run structurally cannot measure
- Harness, target list and all 1,920 raw rows — MIT licensed
Test your own target
The result above describes one URL on one day. Paste your own URL into the live tester and see the real response before creating an account.