The stealth browser benchmark

We tested the most popular commercial anti-detect and automation browsers on the same Foil-protected signup flow and compared the results.

Updated August 25, 2026

The leaderboard

RankEngineTypeOverall scoreNetworkDevice IssuesTransport consistencyCost / 100 runs
19Browser UseLLM agent859311 ±3100$0.60
Browser UseVisit ↗

Cloud platform for LLM browser agents.

Run spread
9–15 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential proxies · 20 exits, 11 networks (19/20 residential-proxy flagged) 93/100
Connection
LLM browser agent
Profile
Cloud defaultMeasured August 23, 2026 with 20 fresh production-scored runs.
Pricing
Pay As You Go: ($0.06/hr × 1.667 hr) + ($10/GB × 0.05 GB). Excludes workload-dependent ChatBrowserUse token charges. ≈ $0.60 / 100 runs
21Bright DataScraping849310.7 ±4100$0.40
Bright DataVisit ↗

Web-data platform; cloud Scraping Browser bundled with proxies.

Run spread
8–15 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential + datacenter · 20 exits, 16 networks (5/20 residential-proxy flagged; 3 hosted) 93/100
Connection
Cloud browser · CDP
Profile
Default Scraping BrowserMeasured August 23, 2026 from the newest 20 of 26 fresh production-scored runs.
Pricing
Scraping Browser PAYG: $8/GB × 0.05 GB. Residential proxy bundled. ≈ $0.40 / 100 runs
3Browser CashCloud automation848611.2 ±195$0.15
Browser CashVisit ↗

Cloud browser service.

Run spread
11–13 signals · 15 runs
Transport consistency
Multiple JA4 profiles were observed in the cohort 95/100
Network
Residential network · fresh cohort observed 15 exits across 15 runs; one-network residential classification retained from prior enrichment 86/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 15 fresh production-scored runs; 12 other attempts failed inside the remote browser during production CDN bootstrap.
Pricing
Browser API: $0.09/hr × 1.667 hr per session. Residential bundled. ≈ $0.15 / 100 runs
4NEWZyteScraping843010.1 ±194$0.55

All-in-one web scraping API with browser rendering and browser actions.

Run spread
10–11 signals · 20 runs
Transport consistency
UA versions vary across Chrome 150–151 while the JA4 profile remains unchanged 94/100
Network
Datacenter + residential · 20 exits, 7 networks (18/20 hosted; 8/20 residential-proxy flagged) 30/100
Connection
REST scraping API
Profile
Browser HTML + browser actions · default IP selectionMeasured August 23, 2026 from the newest 20 of 26 fresh production-scored runs.
Pricing
Measured Zyte API Stats: $0.0054–$0.0057 per browserHtml + actions request across the 20-run cohort; $0.55 per 100 at the observed $0.005525 mean. Zyte prices by site tier plus action CPU and network usage. ≈ $0.55 / 100 runs
52Driver.devCloud automation848611.4 ±195$0.25
Driver.devVisit ↗

Hosted & distributed browser automation.

Run spread
11–13 signals · 20 runs
Transport consistency
Multiple JA4 profiles were observed in the cohort 95/100
Network
Residential network · 20 exits, 1 network (Charter Communications) 86/100
Connection
Cloud browser · CDP
Profile
Hosted profileMeasured August 23, 2026 with 20 fresh production-scored hosted-profile runs.
Pricing
Advanced $49/mo subscription floor + $5/GB × 0.05 GB. No per-hour meter. ≈ $0.25 / 100 runs
63ScrapelessScraping839311.2 ±4100$0.24
ScrapelessVisit ↗

Scraping platform with a managed cloud browser.

Run spread
8–15 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential proxies · 20 exits, 18 networks, 13 countries (19/20 residential-proxy flagged) 93/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 from the newest 20 of 23 fresh production-scored runs. A higher anti-detect tier wasn’t enabled.
Pricing
Browser usage: ($0.09/hr × 1.667 hr) + ($1.80/GB × 0.05 GB). Residential proxy routing is included in the metered traffic rate. ≈ $0.24 / 100 runs
715ApifyScraping819312.4 ±188$2.98

Actor platform; ran Apify's hosted Camoufox Scraper.

Run spread
12–14 signals · 20 runs
Transport consistency
Injects a non-standard HTTP/2 setting 88/100
Network
Residential proxies · 20 exits, 12 networks, US (19/20 residential-proxy flagged; 0 hosted; 0 VPN) 93/100
Connection
Hosted Actor · Playwright API
Profile
Camoufox Scraper · headful + US residentialMeasured August 25, 2026 with 20 completed production-scored runs from 22 attempts. Two provider-successful Actors never submitted the form before the harness timeout and required top-ups.
Pricing
Finalized usage for 20 successful benchmark sessions: $0.596618 ÷ 20 × 100 = $2.98. Includes Camoufox compute and Apify-managed US residential proxy usage. Excludes $0.083067 from two provider-successful runs that timed out in the harness; including that retry overhead would be $3.40/100. ≈ $2.98 / 100 runs
82BotCloudCloud automation753013.2 ±5100$1.11
BotCloudVisit ↗

Cloud browser driven over CDP.

Run spread
9–18 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Datacenter · 20 exits, 4 networks, 5 countries (17/20 hosted) 30/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 20 fresh production-scored runs.
Pricing
Starter $20/mo for 30 browser-hours: ($20 ÷ 30 hr) × 1.667 hr. Datacenter only. ≈ $1.11 / 100 runs
94ScrapFlyScraping759315.2 ±5100$0.18
ScrapFlyVisit ↗

Web scraping API with a cloud browser.

Run spread
10–19 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential proxies · 20 exits across 11 networks (20/20 residential-proxy flagged) 93/100
Connection
Cloud browser · CDP
Profile
Cloud Browser · direct CDP + residential poolMeasured August 23, 2026 with 20 fresh production-scored runs using the documented direct Cloud Browser CDP endpoint and residential pool. The separate ASP handoff remained intermittently unavailable and is excluded.
Pricing
Discovery $30/mo: 100 residential Cloud Browser sessions × (2 time credits for 60 seconds + 10 bandwidth credits for 0.5 MB rounded to 1 MB) × $30/200,000 credits. ≈ $0.18 / 100 runs
102ZenRowsScraping749315.3 ±489$0.43
ZenRowsVisit ↗

Web-scraping API and Scraping Browser.

Run spread
13–20 signals · 20 runs
Transport consistency
UA versions vary across Chrome 140–146 while the JA4 profile remains unchanged 89/100
Network
Residential proxies · 20 exits, 17 networks, 12 countries (11/20 residential-proxy flagged; 2 VPN-associated) 93/100
Connection
Cloud browser · CDP
Profile
Default Scraping BrowserMeasured August 23, 2026 from the newest 20 of 22 fresh production-scored runs.
Pricing
Developer $69.99/mo: ($0.09/hr × 1.667 hr) + ($5.50/GB × 0.05 GB). ≈ $0.43 / 100 runs
112AnchorCloud automation749316.4 ±1100$1.48
AnchorVisit ↗

Cloud browser for AI agents.

Run spread
16–17 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential · 20 exits, 16 networks (19/20 identified residential proxies; 0 hosted) 93/100
Connection
Cloud browser · server-side Playwright
Profile
Extra Stealth · Anchor ProxyMeasured August 23, 2026 from the newest 20 of 23 fresh production-scored runs, with Extra Stealth and Anchor's built-in proxy enabled.
Pricing
Growth-tier infrastructure rates, standardized to 100 successful modeled runs: (100 browser creations × $0.01) + (1.667 browser hr × $0.05) + (0.05 GB Anchor Proxy × $8/GB) = $1.48. Excludes the $2,000/mo Growth plan required for Extra Stealth and excludes retries. ≈ $1.48 / 100 runs
123NotteCloud automation729316.7 ±2100$0.58

Browser-using AI agent platform.

Run spread
15–19 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential proxies · 20 exits, 13 networks (20/20 residential-proxy flagged) 93/100
Connection
Cloud browser · CDP
Profile
Stealth profileMeasured August 23, 2026 with 20 fresh production-scored runs; one passed harness session that never appeared on the durable score read path was replaced by a verified top-up.
Pricing
$20/mo + ($0.05/hr × 1.667 hr) + ($10/GB × 0.05 GB). Mobile+residential. ≈ $0.58 / 100 runs
137Scrape.doScraping719316.4 ±489$0.29
Scrape.doVisit ↗

Rotating-proxy web scraping API.

Run spread
13–20 signals · 20 runs
Transport consistency
UA versions vary across Chrome 149–151 while the JA4 profile remains unchanged 89/100
Network
Residential proxies · 20 exits, 18 networks, 10 countries (20/20 residential-proxy flagged) 93/100
Connection
REST scraping API
Profile
DefaultMeasured August 23, 2026 from the newest 20 of 21 fresh production-scored runs.
Pricing
Hobby $29/mo: ($29 ÷ 250,000 credits) × 25 credits/request (JavaScript + residential) × 100 requests. ≈ $0.29 / 100 runs
14NEWTinyFishCloud automation699318.4 ±2100$0.20
TinyFishVisit ↗

Web infrastructure for agents with managed cloud browser sessions.

Run spread
17–20 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential proxies · 20 exits, 16 networks (20/20 residential-proxy flagged) 93/100
Connection
Cloud browser · CDP
Profile
Default Browser API profileMeasured August 23, 2026 with 20 fresh production-scored runs.
Pricing
Browser API PAYG: $0.002/min × 100 modeled 60-second sessions. ≈ $0.20 / 100 runs
15NEWSkyvernLLM agent669319.8 ±195$18.45
SkyvernVisit ↗

Open-source browser automation platform with managed LLM agents and cloud browsers.

Run spread
18–20 signals · 20 runs
Transport consistency
Multiple JA4 profiles were observed in the cohort 95/100
Network
Residential proxies · 20 exits, 15 networks, US (20/20 residential-proxy flagged; 0 hosted) 93/100
Connection
LLM browser agent
Profile
Cloud task API defaultMeasured August 23, 2026 from 20 production-scored runs. The identical 20-run cohort plus one canary consumed 3,900 credits across 130 regular browser actions.
Pricing
Pro $149/mo includes 150,000 credits and residential proxy access: (3,900 credits ÷ 21 successful identical runs) × 100 × ($149 ÷ 150,000) = $18.45. This measured cohort used the one-time Free grant; retries are excluded. ≈ $18.45 / 100 runs
16NEWNSTbrowserAnti-detect668619.7 ±1100$0.40
NSTbrowserVisit ↗

Anti-detect browser with disposable fingerprint profiles and a local automation API.

Run spread
19–20 signals · 6 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential · fresh cohort observed 1 Comcast exit across 6 runs; no-proxy, VPN, hosting, relay, Tor, or suspicious-network classification retained from prior enrichment of the same exit 86/100
Connection
Local Docker API · CDP
Profile
Once Profile · Windows + Chrome · headlessMeasured August 23, 2026 with 6 fresh production-scored runs before the account returned exceeded plan limits. The benchmark used direct local residential egress; no NSTbrowser proxy was enabled.
Pricing
Free pay-as-you-go Once Profile rate: $0.004 per launch × 100 runs. Excludes self-hosted Docker compute and optional proxy traffic. ≈ $0.40 / 100 runs
17NEWParallelAI extraction API623020.4 ±295
ParallelVisit ↗

AI web extraction API that renders target pages in a real browser and returns LLM-ready content.

Run spread
19–23 signals · 20 runs
Transport consistency
Multiple JA4 profiles were observed in the cohort 95/100
Network
Datacenter · GCP, 113 exits 30/100
Connection
AI extraction API
Profile
Full-browser render · x-api-keyMeasured August 29, 2026 from production-scored runs. Parallel egresses from cloud datacenter IPs and self-identifies with a crawler user-agent.
Pricing
Not normalized
18KernelCloud automation628621.2 ±3100$0.80
KernelVisit ↗

Cloud browser infrastructure for agents.

Run spread
20–26 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential/ISP proxies · 16 exits, 3 networks, US (8/20 residential-proxy flagged; 0/20 hosted) 86/100
Connection
Cloud browser · CDP
Profile
StealthMeasured August 23, 2026 with 20 production-scored runs. Kernel Stealth enables the managed anti-detection profile, ISP proxy, and CAPTCHA solver.
Pricing
Hobbyist $30/mo + usage: default headful browser is $0.0001333336/sec ($0.48/hr) × 1.667 hr. Proxies are included. ≈ $0.80 / 100 runs
19NEWThorDataScraping619321.2 ±370$0.13
ThorDataVisit ↗

Proxy and web-scraping platform with a managed Web Unlocker renderer.

Run spread
18–24 signals · 20 runs
Transport consistency
UA versions vary across Chrome 125–144 while the JA4 profile remains unchanged 70/100
Network
Residential proxies · 20 exits, 13 networks (20/20 residential-proxy flagged; 1 VPN-associated) 93/100
Connection
REST scraping API
Profile
Web Unlocker · JavaScript renderingMeasured August 23, 2026 from the newest 20 of 25 fresh production-scored runs.
Pricing
PAYG 10,000-response package: $13 total → $1.30/1K × 100 modeled successful runs. ≈ $0.13 / 100 runs
201BrowserbaseCloud automation613021.1 ±1100$0.20
BrowserbaseVisit ↗

Headless browser infra for agents & automation.

Run spread
21–22 signals · 14 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Datacenter · Amazon AWS (7 exits) 30/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 14 fresh production-scored default-profile runs before the account exhausted its free browser-minute quota. Verified and Advanced Stealth require Enterprise access, while managed proxies require a paid plan on this project.
Pricing
Developer $20/mo: $0.12/hr overage × 1.667 hr. Datacenter only. Advanced Stealth = sales-only. ≈ $0.20 / 100 runs
214RebrowserCloud automation605521.5 ±295$0.33
RebrowserVisit ↗

Undetectable cloud browsers on real Windows and mobile devices.

Run spread
20–23 signals · 20 runs
Transport consistency
Multiple JA4 profiles were observed in the cohort 95/100
Network
VPN/tunnel exits · 1 network (20/20 same Fast Servers exit) 55/100
Connection
Cloud browser · patched Playwright CDP
Profile
Undetectable Cloud Browser profile 140594All 27 August 23 refresh and top-up attempts were blocked by HTTP 500 CDP session errors; retaining the June 4 audited cohort.
Pricing
Shared Windows PC: $0.20/hr × 1.667 hr. Optional proxy data is priced separately. ≈ $0.33 / 100 runs
22NEWContext.devScraping579324.4 ±1100$0.15
Context.devVisit ↗

Managed web-scraping API with automatic rendering, proxy escalation, and anti-bot handling.

Run spread
24–25 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential + anonymizer proxies · 20 exits, 11 networks (10/20 residential-proxy flagged; 10 anonymizer exits) 93/100
Connection
REST scraping API
Profile
Scrape HTML · defaultMeasured August 21, 2026 from 20 of 21 completed runs; the board caps cohorts at 20.
Pricing
Developer $25/mo includes 10,000 credits; marginal overage is $15/10,000 credits × 100 successful one-credit HTML scrapes. ≈ $0.15 / 100 runs
231HyperbrowserCloud automation513025 ±088$0.17
HyperbrowserVisit ↗

Cloud browsers for agents & scraping.

Run spread
25–25 signals · 20 runs
Transport consistency
Injects a non-standard HTTP/2 setting 88/100
Network
Datacenter · Datacamp (3 exits) 30/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 20 fresh production-scored runs. Stealth mode (paid) wasn’t enabled.
Pricing
Startup $30/mo + usage: $0.10/hr × 1.667 hr. Tested datacenter path excludes optional $10/GB residential proxy data. ≈ $0.17 / 100 runs
243SteelCloud automation503025.7 ±2100$0.17

Browser API built for AI agents.

Run spread
25–28 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Datacenter · Latitude.sh 30/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 20 fresh production-scored default-profile runs; network metadata remains curated from the prior enrichment cohort. Steel's managed residential proxy and automatic CAPTCHA solving both require plan entitlements unavailable on the benchmark account, so the combined maximum-stealth mode could not be measured.
Pricing
Starter $29/mo: $0.10/hr × 1.667 hr. Datacenter only (drops to $0.08/100 runs at Pro $499). ≈ $0.17 / 100 runs
25NEWFirecrawlCloud automation478628.4 ±2100$0.64
FirecrawlVisit ↗

Web data platform with managed browser sessions for agents and automation.

Run spread
27–31 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential + datacenter · 19 exits, 2 networks (18 consumer-ISP exits; 2 hosted exits) 86/100
Connection
Cloud browser · CDP
Profile
Default Browser API profileMeasured August 23, 2026 with 20 fresh production-scored runs.
Pricing
Hobby $16/mo (annual) for 5,000 credits; Browser uses 2 credits/min × 100 modeled 60-second sessions. ≈ $0.64 / 100 runs
26NEWGoLoginAnti-detect448630.1 ±1100$0.15
GoLoginVisit ↗

Anti-detect browser with managed cloud sessions and persistent profiles.

Run spread
30–31 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential proxy · fresh cohort observed 2 exits across 20 runs; residential classification retained from prior enrichment 86/100
Connection
Cloud browser · CDP
Profile
Pre-created cloud profileMeasured August 23, 2026 from the newest 20 of 26 fresh production-scored runs using the stable pre-created profile. One additional attempt failed during cloud startup.
Pricing
Cloud Browser Professional overage: $0.09/hr × 1.667 hr; an active subscription is required. ≈ $0.15 / 100 runs
272OxylabsScraping433025.6 ±1062$0.14
OxylabsVisit ↗

Web Scraper API with Realtime rendering.

Run spread
18–38 signals · 20 runs
Transport consistency
Claimed Chrome 117 is inconsistent with features in the observed TLS profile 62/100
Network
Datacenter · 16/20 hosted VPN/tunnel exits, 15 ASNs 30/100
Connection
REST scraping API
Profile
Universal source · JS renderAll 20 August 23 refresh attempts returned HTTP 401 from the provider API despite configured credentials; retaining the June 3 audited cohort.
Pricing
Web Scraper API Micro $49/mo: $1.35/1,000 successful JavaScript-rendered results × 100 benchmark requests. ≈ $0.14 / 100 runs
28ScrapingBeeScraping393031.4 ±1100$0.13
ScrapingBeeVisit ↗

Web-scraping API that renders pages.

Run spread
31–32 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Datacenter · 20 exits, 14 networks, 12 countries (19/20 hosted) 30/100
Connection
REST scraping API
Profile
Default (JS render)Measured August 23, 2026 with 20 fresh production-scored runs.
Pricing
Hobby $19.99/mo: ($19.99 ÷ 75,000 credits) × 5 credits/request (default JavaScript rendering) × 100 requests. ≈ $0.13 / 100 runs
292CloudflareCloud automation385530.9 ±182$0.15
CloudflareVisit ↗

Remote browser sessions on Cloudflare's network.

Run spread
30–31 signals · 20 runs
Transport consistency
User-Agent self-identifies as HeadlessChrome 82/100
Network
VPN/tunnel exits · Cloudflare WARP (16 exits; 20/20 hosted, VPN, and relay) 55/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 20 fresh production-scored runs. The default image self-identified as HeadlessChrome 128.
Pricing
Normalized marginal rate: Workers Paid is $5/mo with 10 browser-hours included, then $0.09/hr × 1.667 hr = $0.15. The modeled first 600 60-second runs have no browser-hour usage charge; monthly hours are rounded, and average concurrency above 10 is $2/browser. ≈ $0.15 / 100 runs
301BrowserlessCloud automation353031.9 ±182$0.40
BrowserlessVisit ↗

Headless browser automation service.

Run spread
31–32 signals · 20 runs
Transport consistency
User-Agent self-identifies as HeadlessChrome 82/100
Network
Datacenter · DigitalOcean (18 exits; 20/20 hosted) 30/100
Connection
Cloud browser · CDP
Profile
DefaultMeasured August 23, 2026 with 20 fresh production-scored runs.
Pricing
Prototyping $25/mo (annual): 2 browser-time units per modeled 60-second run × 100 runs × $0.002/unit overage. No built-in proxy was enabled. ≈ $0.40 / 100 runs
31NEWGeonodeScraping138642.7 ±3100$0.20
GeonodeVisit ↗

Web scraping API with JavaScript rendering over Geonode's residential, ISP, and datacenter proxy pool.

Run spread
40–45 signals · 20 runs
Transport consistency
No scored transport inconsistencies observed 100/100
Network
Residential · 9 exits 86/100
Connection
REST scraping API
Profile
Residential proxy · JavaScript renderingMeasured August 29, 2026 from production-scored runs. Geonode's render often returns before the external Foil SDK finishes reporting, so the lane retries sequentially; roughly half of runs still score.
Pricing
Scraper API PAYG entry (10K) tier at $0.35 per 1,000 requests — flat per-request, no JavaScript-render surcharge ($0.13/1K applies only at 1M+/mo). The lane fires ~3 render attempts per run and roughly half score, so ~6 requests per scored run. ≈ $0.20 / 100 runs
Figure 1: Every ranked engine, sorted by overall stealth score. Device integrity contributes 90%; network and transport contribute 5% each and remain independently sortable. Click any row for the per-engine breakdown.

Engines are ranked by their overall stealth score1 A 0–100 composite weighted 90% toward device integrity, 5% toward network reputation, and 5% toward transport consistency. Every distinct device issue contributes one full point; its production severity and confidence can add up to 25%, and run-to-run variance is penalized. Five issues is the near-clean device reference. Scores display as whole numbers, while the board sorts on the unrounded composite.: higher means fewer detection signals. The table is sortable, and each row expands to the full per-engine breakdown.

The full board, in leaderboard rank order. The leaders on the left are bunched within a few points of each other, and every engine was still detected on every run.

Overall stealth score by engine

85848484848381757574747271696666626261616057515047444339383513
Figure 2: Overall stealth score for all 31 engines in leaderboard rank order, from first to last. Higher is stealthier; every engine was still detected on every run.

Disagree with a ranking, or want to see a service on the board? Get in touch, we’ll run it through the harness.

Cost vs. stealth

Stealth is only half the decision; the other half is what it costs to run2 Cost is the marginal usage price at each vendor’s matching paid tier for 100 successful benchmark signup runs. Time- and bandwidth-metered vendors are modeled as ~60-second sessions with ~0.5 MB of egress; request-, credit-, and workload-priced vendors use their published per-success rate or metering from successful cohort runs. Retries, top-ups, and failed or incomplete attempts are excluded from the plotted price and disclosed in the per-vendor notes when known. Monthly subscription floors and workload-dependent LLM charges are also disclosed but excluded from the comparison. Residential and mobile engines include that bandwidth; datacenter engines don’t, and would cost more once you add a proxy.. Plotting the two against each other, up and to the right is the better corner: cheap and stealthy.

$20$10$5$2$1$0.50$0.20$0.101020406080100Cost per 100 runs ($, log scale, cheaper to the right)Stealth scoreBrowser Use: $0.60 per 100 runs · stealth 85Browser UseBright Data: $0.40 per 100 runs · stealth 84Bright DataBrowser Cash: $0.15 per 100 runs · stealth 84Browser CashZyte: $0.55 per 100 runs · stealth 84ZyteDriver.dev: $0.25 per 100 runs · stealth 84Driver.devScrapeless: $0.24 per 100 runs · stealth 83ScrapelessApify: $2.98 per 100 runs · stealth 81ApifyBotCloud: $1.11 per 100 runs · stealth 75BotCloudScrapFly: $0.18 per 100 runs · stealth 75ScrapFlyZenRows: $0.43 per 100 runs · stealth 74ZenRowsAnchor: $1.48 per 100 runs · stealth 74AnchorNotte: $0.58 per 100 runs · stealth 72NotteScrape.do: $0.29 per 100 runs · stealth 71Scrape.doTinyFish: $0.20 per 100 runs · stealth 69TinyFishSkyvern: $18.45 per 100 runs · stealth 66SkyvernNSTbrowser: $0.40 per 100 runs · stealth 66NSTbrowserKernel: $0.80 per 100 runs · stealth 62KernelThorData: $0.13 per 100 runs · stealth 61ThorDataBrowserbase: $0.20 per 100 runs · stealth 61BrowserbaseRebrowser: $0.33 per 100 runs · stealth 60RebrowserContext.dev: $0.15 per 100 runs · stealth 57Context.devHyperbrowser: $0.17 per 100 runs · stealth 51HyperbrowserSteel: $0.17 per 100 runs · stealth 50SteelFirecrawl: $0.64 per 100 runs · stealth 47FirecrawlGoLogin: $0.15 per 100 runs · stealth 44GoLoginOxylabs: $0.14 per 100 runs · stealth 43OxylabsScrapingBee: $0.13 per 100 runs · stealth 39ScrapingBeeCloudflare: $0.15 per 100 runs · stealth 38CloudflareBrowserless: $0.40 per 100 runs · stealth 35BrowserlessGeonode: $0.20 per 100 runs · stealth 13Geonode$20$10$5$1$0.50$0.101020406080100Cost per 100 runs (log scale, cheaper →)Stealth scoreBrowser Use: $0.60 per 100 runs · stealth 85Browser UseBright Data: $0.40 per 100 runs · stealth 84Bright DataBrowser Cash: $0.15 per 100 runs · stealth 84Browser CashZyte: $0.55 per 100 runs · stealth 84ZyteDriver.dev: $0.25 per 100 runs · stealth 84Driver.devScrapeless: $0.24 per 100 runs · stealth 83ScrapelessApify: $2.98 per 100 runs · stealth 81ApifyBotCloud: $1.11 per 100 runs · stealth 75BotCloudScrapFly: $0.18 per 100 runs · stealth 75ScrapFlyZenRows: $0.43 per 100 runs · stealth 74ZenRowsAnchor: $1.48 per 100 runs · stealth 74AnchorNotte: $0.58 per 100 runs · stealth 72NotteScrape.do: $0.29 per 100 runs · stealth 71Scrape.doTinyFish: $0.20 per 100 runs · stealth 69TinyFishSkyvern: $18.45 per 100 runs · stealth 66SkyvernNSTbrowser: $0.40 per 100 runs · stealth 66NSTbrowserKernel: $0.80 per 100 runs · stealth 62KernelThorData: $0.13 per 100 runs · stealth 61ThorDataBrowserbase: $0.20 per 100 runs · stealth 61BrowserbaseRebrowser: $0.33 per 100 runs · stealth 60RebrowserContext.dev: $0.15 per 100 runs · stealth 57Context.devHyperbrowser: $0.17 per 100 runs · stealth 51HyperbrowserSteel: $0.17 per 100 runs · stealth 50SteelFirecrawl: $0.64 per 100 runs · stealth 47FirecrawlGoLogin: $0.15 per 100 runs · stealth 44GoLoginOxylabs: $0.14 per 100 runs · stealth 43OxylabsScrapingBee: $0.13 per 100 runs · stealth 39ScrapingBeeCloudflare: $0.15 per 100 runs · stealth 38CloudflareBrowserless: $0.40 per 100 runs · stealth 35BrowserlessGeonode: $0.20 per 100 runs · stealth 13Geonode
Figure 3: Cost per 100 runs against stealth score (cost axis is log-scaled, cheaper to the right). The dashed line is the Pareto frontier; no engine is both cheaper and stealthier than a point on it. Hover or focus any point for its provider and exact values.

Among providers with a positive modeled cost, the frontier is ThorData → Browser Cash → Browser Use. Other plotted engines are dominated: you can pay less for equal stealth, or get more stealth for equal spend, by moving to a frontier point.

Where engines trip up

Detection was distributed across fingerprint inconsistencies, the runtime environment, automation markers, timing, and input behavior. Here is how the signals that did fire break down by category.

  • Fingerprint54%
  • Automation markers21%
  • Environment19%
  • Timing6%
  • Input behavior0%
Figure 4: Share of all detection signals fired across the test, by category.

Each category covers a different part of the session. Here is what each category examines, with examples of the signals it contains.

CategoryWhat it examinesExample signals
FingerprintThe hardware and rendering identity a browser presents: graphics, audio, fonts, screen, and the device it claims to be.Values that don’t cohere with one another, or that match a known spoofing toolkit instead of a real device.
EnvironmentThe browser’s runtime: which capabilities are present, and how the underlying engine actually behaves.Surfaces a genuine install would expose that are missing, or behaviour that doesn’t match the browser being claimed.
Automation markersTraces left by the protocols and drivers used to control a browser remotely.Side effects of being driven by software that a human-operated browser never produces.
TimingHow long operations take, and the rhythm of events through a session.Patterns that are too uniform, too fast, or sequenced in an order people don’t manage.
Input behaviorMouse, keyboard, scroll, and touch dynamics during the flow.Motion that’s too clean, missing the small corrections and variance of a real hand.
Figure 5: What each detection category examines.

How we tested

We tested 31 commercial anti-detect and automation browsers on the same task: create a new account on a site protected by Foil. Account creation is a high-risk point for automated abuse, so we use it as the benchmark task. The results above are averaged per engine across runs collected from May 25, 2026 to August 29, 20263 Scored end-to-end by the production API at api.usefoil.com, the same path that scores live customer traffic, not a research fork..

Every session is graded end to end by the same production API that scores live customer traffic, not a research fork. The headline stealth score weights device integrity at 90%, network reputation at 5%, and TLS/HTTP-2 consistency at 5%. Every distinct device issue contributes one full point, and its production severity and confidence can add a bounded 25% penalty. The device component uses five issues as its near-clean 100-point reference and penalizes run-to-run variance, so a provider averaging ten issues no longer appears nearly perfect. Network and transport also remain visible as independent sortable measurements. Higher means fewer detection signals.

Underneath that score, Foil watches dozens of independent signals across five families: fingerprint coherence, the runtime environment, automation-protocol markers, timing, and input behavior. Across the whole test, 131 distinct signals fired. No engine avoided all of them, and not one session ever scored as a genuine human.

Cohorts contain 6–20 runs. On August 23 we reran every provider with a runnable harness lane: 26 providers produced fresh production scores and 23 completed full 20-run cohorts. Browser Cash completed 15 before repeated remote CDN bootstrap failures, Browserbase completed 14 before exhausting its plan minutes, and NSTbrowser completed 6 before reaching its plan limit. Context.dev has no current harness lane; Rebrowser and Oxylabs retain their audited cohorts after every fresh attempt failed at the provider boundary. That is why the full snapshot spans May 25, 2026 to August 29, 2026. Results may change as vendors and Foil release updates.

What is Foil?

Foil specializes in catching AI-driven fraud. Agents have popularized tampered browser distributions (AKA stealth browsers) because they help evade bot defenses, but the same browsers are increasingly in the hands of fraudsters. That is exactly why we run this benchmark.

Foil catches them. First it detects when someone is spoofing a device or browser. Then it builds a stable, unique fingerprint for every one of your real users. And finally itanalyzes their behavior, every swipe, tap, and form fill, to seal the deal. It is the same engine that scored every run on this page.

You really have to try it yourself to believe it. Or get in touch if you have questions.