NewLaunching String Web Access APIRead the manifesto →
← Comparisons

Best Web Scraping APIs in 2026: 16 Tools Compared

Bruce Magness, Chief of Staff, String · Updated September 22, 2026

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

  • String returned content on 97.0% of requests, 485 of 500, the highest of the 16 providers tested on September 16, 2026
  • The gap between first and last is 60.6 points. ScrapingAnt, the lowest, returned 182 of 500
  • No site was returned on all five attempts by all sixteen providers. One shut out all sixteen. On 93 of the 100, at least one provider returned the page every time and at least one returned nothing at all
  • Two of the sixteen bill for a page the target refused. Firecrawl charges a credit on a 403 or a 404, and Apify's Web Fetch bills a 404 page it converted
  • Ten of the sixteen offer a free tier that refreshes every month. ScrapingAnt gives 10,000 credits a month with no card
  • Cost per 1,000 protected pages at roughly $100 a month runs from $0.745 on Context.dev to $12.25 on ScrapingAnt, a 16x spread for the same job
  • Every result comes from a public harness you can rerun with your own API keys

At a glance

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.

How we tested these web scraping APIs

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.

Overall success rate across all 500 requests per provider. Web Data Frontier Benchmark · 100 targets · 500 requests per provider · September 16, 2026. Current leaderboard

The vendor decides the outcome on 93 of the 100 pages

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.

Starting for free: what each tier actually gives you

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.

What the docs tell you before you sign up

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.

String: 97.0%, and no charge when a page is blocked

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"

Scrapfly: second on success, at nearly three times the latency

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.

ScraperAPI: the largest correction in the run

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.

Firecrawl: crawl a domain, and pay for the blocks

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.

Apify: a marketplace of prebuilt scrapers, new to this run

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.

Bright Data: the largest proxy pool, and a DataDome problem

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.

ScrapingBee: last in August, seventh in September

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.

Context.dev: one credit a page, and a fall from third to eighth

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.

Oxylabs: bandwidth billing, and no longer the PerimeterX leader

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.

Nimble: usage pricing, and a jump to enterprise

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.

Zyte: the vendor sets your price tier, not you

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.

Decodo: every configuration has a published price, and the steepest fall

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.

Scrapingdog: the cheapest standard fetch, and the slowest responses

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".

Browserbase: browser infrastructure, not a page-retrieval API

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.

ZenRows: fixed credit weights, and a pricing page that shows the annual rate

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.

ScrapingAnt: the largest free tier, and the steepest credit table

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.

Where the anti-bot walls decide it

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%.

Success rate by anti-bot vendor. Web Data Frontier Benchmark · 100 targets · 500 requests per provider · September 16, 2026. Current leaderboard

Why pricing is hard to compare across these providers

Seven things stop these prices lining up.

  1. The unit differs. Some vendors bill per request, some per credit, some per gigabyte, Browserbase bills per browser hour, and Apify bills per event or per compute unit. A credit is worth a different amount at every vendor and in every configuration.
  2. Credit weights vary by 125x. A protected page is 25 credits on ZenRows and ScrapingBee, 11 on ScraperAPI, 125 on ScrapingAnt, and 1 on Firecrawl and Context.dev.
  3. Some vendors price by site, not by setting. Zyte assigns a difficulty tier per website. ScraperAPI charges 5 credits for Amazon, 25 for Google and 30 for LinkedIn regardless of configuration.
  4. Browser meters are a separate model. Browserbase and String both sell browser time on bandwidth and duration, which no per-page rate captures.
  5. Failure billing splits the field. Fourteen of the sixteen bill only successes, so their rate card already prices a usable page. Firecrawl bills a returned 403 or 404, and Apify's Web Fetch bills a converted 404, so both list prices understate the real one.
  6. Annual rates pose as monthly. ZenRows and Firecrawl both show an annual-equivalent monthly price by default. Compare a vendor's annual rate to another's monthly rate and every conclusion after that is wrong.
  7. Some of the bill is unpublished. Bright Data's premium-domain rate and Scrapfly's ASP escalation are both real charges with no printed schedule.

What $100 a month buys

  • Context.dev: no $100 plan; Pro at $149 buys 200,000 pages at $0.745 per 1,000, protection included
  • Scrapingdog: $90 buys 1,000,000 plain fetches at $0.09, or 40,000 protected pages at $2.25
  • Decodo: $99 buys 116,000 premium-proxy requests at $0.85, or 82,000 with JavaScript at $1.20
  • Firecrawl: $99.50 buys 100,000 credits at $0.995, or about 80,000 usable pages once blocks are counted
  • String: $100 buys 500,000 plain fetches at $0.20, or 50,000 protected pages at $2.00
  • Scrapfly: $100 buys 1,000,000 datacenter fetches at $0.10, or 40,000 residential at $2.50
  • ScrapingBee: $99 buys 1,000,000 plain fetches at $0.099, or 40,000 premium rendered pages at $2.475
  • Apify: no $100 plan; the plan fee is spendable, so $100 buys about 100,000 Web Fetch calls at $1.00 per 1,000
  • ZenRows: $99 buys 500,000 plain fetches at $0.20, or 20,000 protected pages at $4.95
  • Browserbase: $99 buys 500 browser hours plus 10,000 Fetch calls, then $4 per 1,000 with proxies
  • Nimble: usage priced, so $100 buys about 100,000 Extract requests at $1.00 per 1,000
  • ScraperAPI: no $100 plan; Hobby at $49 buys 9,090 bypassed pages at $5.39 per 1,000
  • ScrapingAnt: no $100 plan; Startup at $49 buys 4,000 rendered residential pages at $12.25 per 1,000
  • Bright Data, Oxylabs and Zyte: no plan near $100, and each prices in a unit that resists a per-page figure

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.

Which web scraping API should you pick?

  • Pick String when the list is protected and a missing page is a failed job rather than a retry.
  • Pick Scrapfly when you want the closest all-round alternative and can live with 19.79s.
  • Pick ScraperAPI when you want coverage and speed together, and per-request cost caps.
  • Pick Firecrawl when the job is crawling a domain into markdown, and budget for the blocks.
  • Pick Apify when someone has already written the scraper for your site and you want structured fields.
  • Pick Bright Data for proxy scale and an enterprise compliance surface, unless your targets run DataDome.
  • Pick ScrapingBee when cost control matters, for Auto-Mode's escalation ladder.
  • Pick Context.dev when one flat credit per page matters more than the last few points of success.
  • Pick Oxylabs when bandwidth billing suits your page weights better than a per-page rate.
  • Pick Nimble when search, crawl and extract should run off one usage meter.
  • Pick Zyte when you would rather the vendor price each site than configure it yourself.
  • Pick Decodo when you need to price a workload exactly before you sign up.
  • Pick Scrapingdog when the targets are unprotected and volume is the whole problem.
  • Pick Browserbase when the agent has to drive a browser, not read a page.
  • Pick ZenRows when you want an MCP server and a CLI on a free plan.
  • Pick ScrapingAnt when you want the largest monthly free allowance to prototype against.

FAQ

Which web scraping API is easiest to get started with?

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.

Which web scraping API is best for beginners?

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.

Which web scraping API has the best documentation?

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.

Is there a good web scraping API with a REST endpoint and no SDK required?

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.

What is the best web scraping API for a startup on a budget?

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.

ScraperAPI vs ZenRows vs ScrapingBee, which should I use?

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.

Which web scraping API works best on Cloudflare-protected sites?

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.

Can I verify these numbers?

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.

Sources

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.

Best E-commerce Scraping APIs in 2026: 8 APIs ComparedUpdated September 22, 2026Best Nimble Alternatives in 2026: 8 Tools ComparedUpdated September 11, 2026Best Apify Alternatives in 2026: 8 Tools ComparedUpdated September 22, 2026
Get your API key →Explore the Web Access API
© 2026 StringEU and UK GDPR Article 27 representative — appointment verified by EuverifyBuilt in New York City 🗽 🍎