Last updated: September 22, 2026. Benchmark figures come from the September 16, 2026 run of the Web Data Frontier Benchmark. Pricing for String, Scrapfly, ScraperAPI, Firecrawl, Oxylabs, Bright Data, Apify and ScrapingBee was checked against the vendor's own pages on September 21 and 22, 2026; the other eight rows were checked on September 1, 2026.
The best web scraping APIs in 2026, ranked by how often they returned the requested page across 100 bot-protected sites, are String at 97.0%, Scrapfly at 86.2%, ScraperAPI at 84.0%, Firecrawl at 80.2%, Apify at 77.4% and Bright Data at 74.6%. Behind them: ScrapingBee 73.0%, Context.dev 72.0%, Oxylabs 69.0%, Nimble 68.6%, Zyte 68.0%, Decodo 50.6%, Scrapingdog 45.6%, Browserbase 41.4%, ZenRows 41.2% and ScrapingAnt 36.4%.
Pick String when a protected page has to come back every time. Pick Scrapfly for the closest all-round rival. Pick ScraperAPI when speed matters as much as coverage. Pick Firecrawl to crawl a whole domain into markdown. Pick Apify when someone has already written the scraper for your site. Pick Browserbase when the job is driving a browser rather than reading a page. Starting from nothing and spending nothing, ScrapingAnt gives the largest recurring free allowance at 10,000 credits a month.
This page compares all 16 web scraping APIs on benchmark success, latency, what $100 a month buys, free-tier size, and what each vendor's own documentation tells you before you sign up.
TL;DR
| Provider | Best for | Benchmark success | Latency score | What $100 a month buys | The catch |
|---|---|---|---|---|---|
| String | Protected pages that must return every time | 97.0% (485/500) | 7.06s | Growth $100/mo, then $0.20 per 1,000 plain fetches or $2.00 premium; blocked requests free | No crawl endpoint, no self-hosting, no SOC 2 report |
| Scrapfly | The closest all-round rival | 86.2% (431/500) | 19.79s | Pro $100/mo, 1,000,000 credits; $0.10 to $2.50 per 1,000 by proxy pool | ASP can escalate the proxy pool at a rate it does not publish |
| ScraperAPI | Coverage and speed together | 84.0% (420/500) | 12.97s | No $100 plan. Hobby $49 buys 100,000 credits; a bypassed page costs 11 | Anti-bot bypass adds 10 credits, so the headline rate is not the real rate |
| Firecrawl | Crawling a whole domain to markdown | 80.2% (401/500) | 9.11s | Standard $99.50/mo billed monthly, 100,000 pages at 1 credit each, easy or protected | Charged on a target 403 or 404 |
| Apify | A prebuilt scraper for a named site | 77.4% (387/500) | 20.64s | No $100 plan. The plan fee is spendable usage, so $100 buys about 100,000 Web Fetch calls at $1.00 per 1,000 | Unused prepaid usage expires monthly |
| Bright Data | Proxy scale and enterprise compliance | 74.6% (373/500) | 15.62s | No $100 plan. Pay as you go is $1.50 per 1,000 requests | Premium domains cost more at an unpublished rate |
| ScrapingBee | Auto-Mode escalation that bills the winner only | 73.0% (365/500) | 21.96s | Startup $99/mo, 1,000,000 credits: $0.099 standard, $2.475 premium with JavaScript | Its own docs route e-commerce to the 25-credit tier; prices exclude VAT |
| Context.dev | One flat credit per page, protection included | 72.0% (360/500) | 16.32s | No $100 plan. Pro $149 buys 200,000 credits at 1 credit a page | Free tier is one-time, not monthly; 43.2% against DataDome |
| Oxylabs | Bandwidth billing and a broad product line | 69.0% (345/500) | 15.86s | No $100 plan. Web Unblocker Micro is $75 for 8 GB at $9.40/GB | Billed on bandwidth, so there is no per-page figure |
| Nimble | Search and extract behind one usage meter | 68.6% (343/500) | 21.54s | Usage priced: about 100,000 Extract requests at $1.00 per 1,000 | Named plans start at $2,500 a month billed annually |
| Zyte | Letting the vendor price each site by difficulty | 68.0% (340/500) | 17.46s | $100 commitment: $0.10 to $0.95 per 1,000 HTTP responses, $0.75 to $12.00 browser | Zyte assigns your tier and you cannot see it without an account |
| Decodo | A published rate for every configuration | 50.6% (253/500) | 25.41s | $99/mo: $0.14 standard, $0.85 premium proxies, $1.20 premium with JavaScript | Prices exclude VAT; it lost 20.1 points between the two runs |
| Scrapingdog | The cheapest published standard fetch | 45.6% (228/500) | 26.55s | Standard $90/mo, 1,000,000 credits: $0.09 standard, $2.25 with JavaScript and premium proxy | 26.7% against PerimeterX, the lowest of the sixteen, and the slowest latency score |
| Browserbase | Driving a browser, not reading a page | 41.4% (207/500) | 17.73s | Startup $99/mo: 500 browser hours, 10,000 Fetch calls, then $4 per 1,000 with proxies | Advanced Stealth is Scale-plan only, not on any self-serve tier |
| ZenRows | An MCP server on every plan, free included | 41.2% (206/500) | 18.80s | Launch L2 $99/mo, 500,000 credits: $0.20 standard, $4.95 protected | The pricing page shows the annual-equivalent price by default |
| ScrapingAnt | The largest recurring free tier | 36.4% (182/500) | 18.95s | No $100 plan. Startup $49 buys 500,000 credits; a protected page costs 125 | 125 credits for browser plus residential is $12.25 per 1,000 |
The latency score is a per-target p75 of successful attempts. A provider that returns nothing on a target inherits the p75 of the providers that did succeed there, and a target nobody clears scores the 90-second timeout. It refuses to reward fast failures.
The benchmark sends the same 100 URLs to 16 providers, five times each: 8,000 live, billable requests.
A request passes only when the response contains a marker from the real page: a product title, an article headline, or another known piece of content. A captcha page returning HTTP 200 fails. A blank response fails. A fast 403 fails. The benchmark measures whether the requested content actually came back.
Most targets are protected retail, travel, news and social sites. That is deliberate. Easy pages tell you whether an HTTP client works. Hard pages tell you whether a web-access product works.
Each provider runs through its own documented anti-bot configuration, one general adapter per provider, using the settings that vendor's own troubleshooting docs prescribe for a blocked page. Several vendors also sell a dedicated endpoint for a specific site, and a dedicated endpoint would plausibly return a page the general path did not. The per-provider sections say so where it applies.
Read the September numbers as a correction as well as a result. This is the first run in which every provider ran at its strongest published setting, and several had been running below theirs. Two moved a long way for that reason: ScraperAPI from 64.2% to 84.0% and ScrapingBee from 29.7% to 73.0%. Those jumps measure our adapters catching up more than they measure a product change, and the September figures are the fair ones. Apify is new to the field this run, so it has no August number to compare.
We built the public harness, and String ranks first in it. Do not take our word for it. The targets, the pass rule, the provider adapters and the raw results are public, and the repo runs with your own API keys.
Every provider in this run was sent the same list. No site came back on all five attempts for all sixteen providers. One came back for none of them: temu.com. In the August run there was exactly one universally clean site, databricks.com; this time Scrapingdog returned it three times out of five, so the clean sweep is gone.
On 93 of the remaining 99, at least one provider returned the page on all five attempts while at least one other returned nothing at all across five attempts. The other six, safeway.com, ashleyfurniture.com, verizon.com, alibaba.com, target.com and databricks.com, had at least one clean pass and no total shutout.
So on 93% of a hard target list, the choice of vendor is the difference between having the page and not having it. Not slower, not costlier: absent.
The spread inside that decision set is wide. String returned 87 of the 93 on all five attempts and returned nothing on one. Firecrawl cleared 69 and was shut out on 16. Scrapfly cleared 68 with only 4 shutouts, the fewest total failures after String. ScraperAPI cleared 66 with 8. At the other end, Browserbase cleared 32 and returned nothing on 54 of the 93, ScrapingAnt cleared 20 and returned nothing on 52, and ZenRows cleared 28 with 49 shutouts.
This is why an average success rate hides the decision. A provider at 70% is not a provider that returns 70% of every page a little worse. It is a provider that returns most of your list perfectly and hands you nothing at all on the rest, and the sites in that second group are usually the ones the project was built for.
Ten of the sixteen refresh a free allowance every month. The rest give a one-time grant or a trial window, which is enough to test a target list and not enough to run anything.
| Provider | Free allowance | Refreshes monthly | Card required |
|---|---|---|---|
| ScrapingAnt | 10,000 credits | Yes | No |
| String | 5,000 requests | No, one time | No |
| Nimble | 5,000 requests | Yes | No |
| ZenRows | 5,000 credits | Yes | No |
| Bright Data | 5,000 requests | Yes | No |
| Apify | $5 of platform usage | Yes | No |
| Firecrawl | 1,000 credits | Yes | No |
| Scrapfly | 1,000 credits | No, no time limit | No |
| ScrapingBee | 1,000 credits | No, one time | No |
| ScraperAPI | 1,000 credits, or 5,000 on a 7-day trial | No | No |
| Browserbase | 1 browser hour, 1,000 Fetch calls | Yes | No |
| Decodo | 1,000 to 2,000 requests by configuration | Yes | Not stated |
| Context.dev | 250 credits, 500 with a work email | No, one time | Not stated |
| Scrapingdog | 200 credits | No | No |
| Zyte | $5 of credit in the first billing month | No | Not stated |
| Oxylabs | One-week trial | No | No |
A credit is not a page. On ScrapingAnt, the free 10,000 credits buy 10,000 plain fetches, 1,000 browser-rendered pages, or 80 pages through a browser on a residential proxy, because those three configurations cost 1, 10 and 125 credits. Read the vendor's credit table before you read its free-tier number.
Three things decide whether a first week goes well: whether the vendor publishes what each configuration costs, whether it says who pays when a page is blocked, and whether you can price your own target list without an account.
| Provider | Publishes a per-configuration credit table | States the failure-billing rule | Can price your own URL without an account |
|---|---|---|---|
| ZenRows | Yes, in the docs | Yes | Yes, weights are fixed on every plan |
| ScrapingAnt | Yes | Yes | Yes |
| Scrapingdog | Yes, on the pricing page | Yes | Yes |
| ScrapingBee | Yes | Yes, per status code | Yes |
| Decodo | Yes, four rates per plan | Yes | Yes |
| Scrapfly | Yes | Yes, with a 30% fairness cap | No, ASP escalation is unpublished |
| String | Yes, four paths per plan | Yes | Yes |
| Firecrawl | One flat credit, so no table needed | Yes | Yes |
| Context.dev | One flat credit, so no table needed | Yes | Yes |
| Apify | Per Actor, not per configuration | Yes, per event | Yes, each Actor's page states its own price |
| ScraperAPI | Yes | Yes | No, the Domain Cost Estimator is in the dashboard |
| Zyte | Yes, five tiers | Yes | No, the per-site lookup needs an account |
| Bright Data | Partly, premium domains are unpublished | Yes | No |
| Oxylabs | No, billed on bandwidth | Yes | No, no per-page unit exists |
| Browserbase | Yes, per API | Not stated for blocked pages | Yes |
| Nimble | Per API, not per configuration | Not stated | Partly |
Two of these vendors contradict themselves on their own pages, and both contradictions cost money. Scrapingdog's pricing page says "no surprise multipliers at the end of the month" a few hundred pixels above a table charging 25 credits for a rendered page on a premium proxy. ScrapingAnt's homepage FAQ says most requests cost between 1 and 25 credits, while the docs table tops out at 125. In both cases the more specific page is the one that bills you.
Pricing. Growth is $100 a month, then $0.20 per 1,000 plain fetches, $2.00 premium, $1.00 with a browser, $4.00 with both, per the pricing page. Blocked requests are free and unused credits roll over. The first 5,000 requests cost nothing.
Benchmark success. 97.0%, 485 of 500, first of sixteen. 93 of the 100 sites returned on all five attempts, and only two returned nothing.
Latency. 7.06s, the fastest in the run, ahead of Firecrawl's 9.11s.
Strengths. The highest measured success on protected pages, the fastest latency score, four published rates with no credit conversion, and a hosted MCP server on the public registry. It led every anti-bot column except DataDome, where Scrapfly tied it, and Kasada, where Apify and Zyte both returned 100%.
Weaknesses. No crawl endpoint and no self-hosted option. String has no SOC 2 report. Its Enterprise rate card is not published, so the high-volume price cannot be verified from a public page.
You can run your own list against it:
curl "https://api.usestring.ai/fetch?url=https://www.zillow.com" \
-H "Authorization: Bearer $STRING_API_KEY"
Pricing. Pro is $100 a month for 1,000,000 credits. A datacenter HTTP fetch is 1 credit, residential is 25, rendering or the Unblocker adds 5. That is $0.10 to $2.50 per 1,000 pages. Failed requests are never charged.
Benchmark success. 86.2%, 431 of 500, second of sixteen, up 4.2 points on August.
Latency. 19.79s, eleventh of sixteen.
Strengths. The most complete public billing documentation in the field, SOC 2 Type II and ISO 27001, and a hosted MCP server with five tools. Only 5 of the 100 sites returned nothing, the second-lowest count after String's 2, and it tied String at the top of the DataDome column at 92.6%.
Weaknesses. Its anti-bot mode can escalate the proxy pool without a published schedule, so the cost of a protected page is a range rather than a number. The credit table prices the Unblocker at 5 credits while a sample response on the same page shows an asp_cost of 30. Credits do not roll over.
Pricing. No plan near $100: Hobby is $49 for 100,000 credits and Startup is $149 for 1,000,000. A standard page is 1 credit, Amazon 5, Google and Bing 25, LinkedIn 30, and anti-bot bypass adds 10. A bypassed page therefore costs 11 credits, or $5.39 per 1,000 at Hobby.
Benchmark success. 84.0%, 420 of 500, third of sixteen. In August it placed tenth of fifteen at 64.2%. The 19.8-point gain is the second largest in the run, and it is an adapter correction rather than a product change: the August run did not send ScraperAPI's strongest published configuration.
Latency. 12.97s, third fastest. Apart from String, it is the only provider in the top three on both success and speed.
Strengths. A max_cost parameter caps what any single request may spend, which no other vendor here offers. Blocked pages are not billed. It is second in the Akamai column at 92.0%, behind only String.
Weaknesses. The Domain Cost Estimator lives in the dashboard, so you cannot price your list before you sign up. Its own pricing page offers "a 7-day trial and 5,000 API credits" in the header and "1,000 free API credits" in the FAQ.
Pricing. Standard is $83 a month billed annually for 100,000 credits, which is $99.50 billed monthly, one credit a page whatever the configuration. The pricing page defaults to the annual view, so check the toggle.
Benchmark success. 80.2%, 401 of 500, fourth of sixteen. 75 of the 100 sites returned on all five attempts, the second-highest count after String.
Latency. 9.11s, second fastest.
Strengths. Crawl, map and extract in one product, and the flattest credit model of any vendor here: even its stealth escalation costs the same one credit.
Weaknesses. It charges for a request the target refuses. At its 80.2% success rate, that turns $0.995 per 1,000 into $1.24 per 1,000 usable pages. It returned nothing on 17 of the 100 sites, more than Scrapfly or ScraperAPI. Credits do not roll over below annual Scale.
Pricing. No plan near $100. Starter is $19 a month and Scale $199, and the plan fee is itself spendable usage, so $100 of monthly spend buys about 100,000 Web Fetch calls at $1.00 per 1,000. Compute is $0.20 per unit on Starter and $0.16 on Scale. The Unblocker proxy is $1.50 per 1,000 requests.
Benchmark success. 77.4%, 387 of 500, fifth of sixteen, on its first appearance in the benchmark.
Latency. 20.64s, twelfth of sixteen.
Strengths. A store of 72,447 Actors, which are prebuilt scrapers you rent rather than write, and they return structured fields instead of page content. Web Fetch charges only on a successful fetch and retries inside a request are free. It returned 100% of the Kasada-protected sites, tied with Zyte and ahead of String.
Weaknesses. Unused prepaid usage expires at the end of the billing cycle rather than rolling over. A 404 page that Web Fetch converts to Markdown counts as a success and bills. It returned nothing on 16 of the 100 sites, and nothing at all on the single Fastly-protected target. We cannot tell you which Apify product the harness called, because the adapter lives in the benchmark repo rather than in the published data, so read 77.4% as Apify's adapter rather than as a named product's rate.
Pricing. No plan near $100. Web Unlocker is $1.50 per 1,000 successful requests pay as you go, with a free tier of 5,000 requests a month and a $499 Scale plan.
Benchmark success. 74.6%, 373 of 500, sixth of sixteen, down 3.4 points on August.
Latency. 15.62s, fourth fastest. That is a large improvement: in August it was the slowest of all fifteen at 26.14s.
Strengths. Pool scale, a large compliance surface, and a hosted MCP server. It returned 100% of PerimeterX-protected pages, tied with String at the top of that column.
Weaknesses. Its DataDome result fell from 82.1% to 47.4%, the steepest single-wall decline in the run, and DataDome covers 19 of the 100 sites. Its docs say premium domains bill higher at a rate visible only in the dashboard, and hard targets are exactly the premium-domain profile. Because the frontier rate is unpublished, Bright Data is excluded from every cheapest claim on this page.
Pricing. Startup is $99 a month for 1,000,000 credits. The credit ladder is 1, 5, 10, 25 and 75, so a premium proxy with JavaScript is $2.475 per 1,000 and the stealth proxy is $7.425. Prices exclude VAT. Auto-Mode tries configurations cheapest first and charges only for the one that worked, or nothing if none did.
Benchmark success. 73.0%, 365 of 500, seventh of sixteen. It placed last of fifteen in August at 29.7%. The 43.3-point gain is the largest in the run and it is an adapter correction: the August configuration was not ScrapingBee's strongest published path.
Latency. 21.96s, fourteenth of sixteen.
Strengths. Auto-Mode with a max_cost ceiling is a genuinely good cost-control design, and a block reaches the caller as a free 500, unbilled. Its Cloudflare result moved from 9.3% to 92.0%, third in that column.
Weaknesses. Its own documentation routes "hard to scrape E-commerce websites" to the premium proxy, which is the 10 or 25 credit tier, so the realistic e-commerce rate is $2.475 per 1,000 rather than the $0.099 headline. It returned nothing on 19 of the 100 sites. ScrapingBee publishes no success rate of its own on its pricing page, FAQ or documentation.
Pricing. No plan at $100. Developer is $25 for 10,000 credits, Pro is $149 for 200,000, and one credit is one scrape whatever the page. That works out at $0.745 per 1,000 pages, flat.
Benchmark success. 72.0%, 360 of 500, eighth of sixteen. It placed third of fifteen in August at 79.2%.
Latency. 16.32s, sixth of sixteen.
Strengths. The simplest pricing of the sixteen, and the cheapest verified per-page rate for a protected page. Blocked requests are not billed. It is second in the Cloudflare column at 96.0%, behind only String.
Weaknesses. The free tier is one-time rather than monthly. Its DataDome result fell from 74.7% to 43.2%, and it returned nothing on 22 of the 100 sites.
Pricing. No plan near $100. Web Unblocker starts at $7.00 per GB, with Micro at 8 GB for $75 at $9.40/GB. Only successful extractions are charged. The separate Web Scraper API is priced per result instead, at $99 for up to 220,000 on Starter.
Benchmark success. 69.0%, 345 of 500, ninth of sixteen, down 7.8 points on August.
Latency. 15.86s, fifth of sixteen.
Strengths. A broad product line, and 86.7% against PerimeterX, still one of the stronger results on that wall.
Weaknesses. In August it led the PerimeterX column at 97.8%, the highest figure any provider posted on any wall that run. In September String and Bright Data both returned 100% there and Oxylabs is seventh. Its Cloudflare result fell from 77.3% to 57.3%. Bandwidth billing means there is no cost per page without a page-weight assumption nobody publishes. The navigation on its own product page advertises "from $0.25 /1K results", a rate the Regular pricing tab never shows.
Pricing. Extract, Crawl and Map cost $1.00 per 1,000 requests, Search $1.10, Extract Template $3.00. The free tier is 5,000 requests a month. Named plans begin at $2,500 a month billed annually.
Benchmark success. 68.6%, 343 of 500, tenth of sixteen, up 2.3 points on August.
Latency. 21.54s, thirteenth of sixteen.
Strengths. One usage meter across search, extract, crawl and media, with no credit conversion to learn. Its Cloudflare result nearly doubled, from 34.7% to 62.7%.
Weaknesses. There is nothing between usage pricing and a $2,500 plan, so a growing project has no middle tier. Nimble publishes no separate rate for protected pages. It returned nothing on 25 of the 100 sites.
Pricing. Five difficulty tiers, assigned automatically. At a $100 commitment an HTTP response costs $0.10 to $0.95 per 1,000 and a browser response $0.75 to $12.00. Bans are free.
Benchmark success. 68.0%, 340 of 500, eleventh of sixteen, down 4.7 points on August.
Latency. 17.46s, seventh of sixteen.
Strengths. Proxies, rendering and residential routing are all included in whichever tier your site lands in, so there are no per-feature surcharges to track. It returned 100% of the Kasada-protected sites, tied with Apify.
Weaknesses. Zyte assigns the tier, reviews it quarterly and gives two weeks' notice of a change, and the per-site lookup needs an account. Its DataDome result fell from 81.1% to 50.5%. Zyte API does not log in to sites, which it says plainly rather than leaving you to discover it.
Pricing. The $99 plan publishes four rates per 1,000 requests: $0.14 standard proxies, $0.60 standard with JavaScript, $0.85 premium proxies, $1.20 premium with JavaScript. Prices exclude VAT and billing is monthly.
Benchmark success. 50.6%, 253 of 500, twelfth of sixteen. It placed eighth of fifteen in August at 70.7%. The 20.1-point drop is the largest decline in the run.
Latency. 25.41s, fifteenth of sixteen.
Strengths. The clearest configuration grid in the field. You can price a workload before signing up, which most of these vendors do not allow. Its Kasada result rose from 73.3% to 93.3%.
Weaknesses. Decodo's own page claims a 99.99% success rate; we measured 50.6% on this suite. Both numbers can be true of different target lists, and the difference is what the list is made of. Its result on the proprietary-defence group fell from 70.8% to 41.5%, and it returned nothing on 39 of the 100 sites.
Pricing. Standard is $90 a month for 1,000,000 credits, which is $0.09 per 1,000 plain requests, the lowest published standard rate of the sixteen. JavaScript rendering costs 5 credits, a premium proxy 10, both 25. That makes a protected page $2.25 per 1,000. Failed, blocked and timed-out requests are refunded.
Benchmark success. 45.6%, 228 of 500, thirteenth of sixteen, down 8.7 points on August.
Latency. 26.55s, the slowest of the sixteen. In August it was third fastest at 12.51s.
Strengths. The cheapest published plain fetch in the field, and the credit weights are printed on the pricing page rather than buried.
Weaknesses. 26.7% against PerimeterX, the lowest of any provider on that wall, and 32 of the 100 sites returned nothing. It was also the only provider to miss databricks.com, the one site every provider cleared in August. The same page that publishes the multipliers also promises "no surprise multipliers".
Pricing. Startup is $99 a month for 100 concurrent browsers, 500 browser hours then $0.10 an hour, and 10,000 Fetch calls then $4 per 1,000 with proxies.
Benchmark success. 41.4%, 207 of 500, fourteenth of sixteen, effectively unchanged from August's 42.2%.
Latency. 17.73s, eighth of sixteen.
Strengths. The best product here for agents that click, log in and fill forms, and Stagehand is the most widely used framework of its kind.
Weaknesses. Advanced Stealth is on the custom Scale plan only; every self-serve tier gets Basic. It returned nothing on 55 of the 100 sites, the most in the run, and 8.0% against Cloudflare. The benchmark measures page retrieval, which is not what Browserbase is built for, and the 41.4% should be read that way.
Pricing. The docs table is the one to read. Launch L2 is $99 a month for 500,000 credits, and the weights are fixed on every plan: 1 standard, 5 with JavaScript, 10 with premium proxies, 25 protected. A protected page costs $4.95 per 1,000. The marketing pricing page shows the annual-equivalent monthly price by default.
Benchmark success. 41.2%, 206 of 500, fifteenth of sixteen, up 6.9 points on August.
Latency. 18.80s, ninth of sixteen.
Strengths. An MCP server, a CLI and SDKs on every plan including Free, and 5,000 credits a month with no card. Unused plan credits roll over once. Its DataDome result is 63.2%, ahead of six higher-ranked providers.
Weaknesses. 50 of the 100 sites returned nothing, 25.3% against Cloudflare, and nothing at all on the single Fastly target. SOC 2 and ISO 27001 are Enterprise-only.
Pricing. No plan near $100: Enthusiast is $19 for 100,000 credits and Startup $49 for 500,000. The credit table runs 1 for a plain fetch, 10 for a rendered page, 25 for a residential fetch and 125 for a rendered page on a residential proxy. That last configuration, the one a protected site needs, is $12.25 per 1,000 at Startup.
Benchmark success. 36.4%, 182 of 500, sixteenth of sixteen, up 5.7 points on August.
Latency. 18.95s, tenth of sixteen.
Strengths. 10,000 free credits every month with no card, the largest recurring free allowance of the sixteen, plus an MCP server with three tools.
Weaknesses. 4.2% against DataDome and 8.0% against Cloudflare, the lowest and joint-lowest results on those two walls. It returned nothing on 53 of the 100 sites. Credits do not roll over.
The 100 targets sit behind eight defence categories. Four cover 63 of the sites, and they are where the field separates. Every figure is percent of requests that returned content.
| Provider | DataDome (19 sites) | Akamai (20) | Cloudflare (15) | PerimeterX (9) |
|---|---|---|---|---|
| String | 92.6 | 98.0 | 100.0 | 100.0 |
| Scrapfly | 92.6 | 81.0 | 90.7 | 84.4 |
| ScraperAPI | 82.1 | 92.0 | 89.3 | 88.9 |
| Firecrawl | 77.9 | 84.0 | 93.3 | 93.3 |
| Apify | 65.3 | 75.0 | 93.3 | 88.9 |
| Bright Data | 47.4 | 79.0 | 88.0 | 100.0 |
| ScrapingBee | 64.2 | 63.0 | 92.0 | 80.0 |
| Context.dev | 43.2 | 70.0 | 96.0 | 66.7 |
| Oxylabs | 65.3 | 67.0 | 57.3 | 86.7 |
| Nimble | 58.9 | 53.0 | 62.7 | 84.4 |
| Zyte | 50.5 | 64.0 | 58.7 | 88.9 |
| Decodo | 47.4 | 57.0 | 46.7 | 82.2 |
| Scrapingdog | 37.9 | 49.0 | 40.0 | 26.7 |
| Browserbase | 29.5 | 28.0 | 8.0 | 57.8 |
| ZenRows | 63.2 | 47.0 | 25.3 | 75.6 |
| ScrapingAnt | 4.2 | 33.0 | 8.0 | 53.3 |
Two things stand out. Cloudflare is the wall with the widest spread: String returned 100% of Cloudflare-protected pages, and Browserbase and ScrapingAnt both returned 8.0%. And no provider leads everywhere. Bright Data tied String at the top of PerimeterX with 100%, Scrapfly tied it on DataDome at 92.6%, and Apify and Zyte both beat it on Kasada with 100% against String's 93.3%.
Seven things stop these prices lining up.
String is not the cheapest per page. Context.dev, Scrapingdog, Scrapfly and Decodo all quote a lower rate for a protected page, and Scrapingdog is 22x cheaper on a plain fetch. The argument for String is the other column: at 97.0% against Scrapingdog's 45.6%, the cheaper rate only applies to the pages that came back.
Firecrawl, Context.dev and String need one HTTP call and no configuration decisions. Firecrawl and Context.dev charge one credit per page whatever the site, so there is no credit table to learn. String publishes four rates and picks the path for you. The vendors that take longest to start are the ones where the first request needs a configuration choice you cannot price yet: ScrapingAnt has a six-row credit table, and Zyte prices by a tier you cannot see without an account.
Start on a monthly free tier so a mistake costs nothing. ScrapingAnt gives 10,000 credits a month, ZenRows and Nimble 5,000 requests a month, Firecrawl 1,000 credits a month, all without a card. Then check the benchmark before you commit money. On 93 of the 100 sites in this run, at least one provider returned the page on all five attempts while at least one other returned nothing at all, so the vendor you start on decides the outcome on almost the whole list. ScrapingAnt and ZenRows returned nothing on 53 and 50 of those 100 sites, so a free tier that works on easy pages is not evidence about hard ones.
Judged on what the docs tell you before you pay, Scrapfly and ZenRows are the most complete: both publish the full credit table, the failure-billing rule, the rollover policy and the escalation behaviour in one page. ScrapingBee's documentation publishes a per-status-code billing table, which nobody else does. The weakest are the ones where a real charge has no published schedule: Bright Data's premium-domain rate and Scrapfly's own ASP escalation.
All sixteen are plain HTTP. String, Firecrawl, ScrapingAnt, ScrapingBee, Scrapingdog, ScraperAPI and Apify's Web Fetch all take a single GET with the URL as a query parameter and an API key in a header, so curl is enough. Decodo and Zyte take a POST with a JSON body. Nimble and Browserbase are the two where the interesting features sit behind their own clients: Browserbase's browser control expects Playwright, Puppeteer, Selenium or Stagehand.
At the $100 tier, Context.dev has the lowest verified cost for a protected page at $0.745 per 1,000, with anti-bot bypass included in the one credit, though it placed eighth on the September run at 72.0%. If the targets are unprotected, Scrapingdog at $0.09 per 1,000 is an order of magnitude cheaper than anything else here. Do the arithmetic on success rate before the arithmetic on rate: at 36.4%, ScrapingAnt's cheap plain fetch does not complete two thirds of a fixed target list at any budget.
The September run reordered this question. ScraperAPI, at 84.0%, is now third of sixteen and returned twice as many pages as ZenRows at 41.2%. ScrapingBee moved from last to seventh at 73.0%. On cost, ScrapingBee is cheapest for a protected page at $2.475 per 1,000 on Startup, against ZenRows at $4.95 on Launch L2 and ScraperAPI at $5.39 for a bypassed page. ScraperAPI is the pick for coverage and speed, ScrapingBee for cost control through Auto-Mode, and ZenRows for the free plan and the agent tooling.
String returned 100% of requests across the 15 Cloudflare-protected sites in the suite. Context.dev followed at 96.0%, Firecrawl and Apify at 93.3% and ScrapingBee at 92.0%. At the other end, Browserbase and ScrapingAnt both returned 8.0% and ZenRows 25.3%. Cloudflare is the widest spread of any defence category in the run, so it is the single most useful column to check against your own target list.
Yes. The harness is public, including the 100 targets, the pass rule and every provider adapter, and it runs with your own API keys. The full leaderboard and methodology are on /benchmark. Pricing on this page was checked against each vendor's own pages on the dates given at the top.
Benchmark figures: the September 16, 2026 run, 100 targets, 5 attempts, 16 providers, 8,000 requests. Data modules and leaderboard: /benchmark. The August 11, 2026 run, used here only for the comparisons between runs, is written up here. Harness: github.com/usestring/web-data-frontier-benchmark.
Pricing and documentation, checked September 21 and 22, 2026: String, Scrapfly, ScraperAPI, Firecrawl, Apify, Oxylabs, ScrapingBee, Bright Data. Checked September 1, 2026: Context.dev, Zyte, Decodo, Nimble, Scrapingdog, Browserbase, ZenRows, ScrapingAnt.
Billing rules: Firecrawl, Scrapfly, Zyte, Bright Data, ScraperAPI, ScrapingAnt, ScrapingBee, Decodo, Apify.
Related: best e-commerce scraping APIs, best web scraping tools, Firecrawl alternatives, Bright Data alternatives, Oxylabs alternatives, ScraperAPI alternatives, Zyte alternatives, ZenRows alternatives.