NewLaunching String Web Access APIRead the manifesto →
← Comparisons

Web Scraping API Pricing in 2026: 16 Providers Compared

Logan Harless, Founder, String · Updated September 23, 2026

Last updated: September 23, 2026. Every rate on this page was checked against the vendor's own pricing page, billing docs and credit docs on September 23, 2026. Success rates come from the September 16, 2026 run of the Web Data Frontier Benchmark: 100 bot-protected sites, five attempts each, 500 requests per provider.

A standard page fetch from a web scraping API costs between $0.09 and $1.50 per 1,000 requests at the plan nearest $100 a month. The configuration each vendor used against bot-protected pages in our benchmark costs between $0.79 and $4.95 per 1,000 where the vendor publishes one fixed rate, and ranges reach $7.43 where the cost depends on the target, because most vendors multiply the price by 8x to 25x when you turn on premium proxies or JavaScript rendering. String charges $0.20 per 1,000 standard fetches and $2.00 per 1,000 premium fetches on its $100 Growth plan. Scrapingdog has the cheapest standard rate at $0.09. Context.dev has the lowest flat rate for protected pages at $0.79, and Firecrawl charges one credit for every configuration, $0.99 per 1,000 on its monthly Standard plan. This page lists the standard and premium rate for 15 of the 16 providers in the benchmark, the credit multipliers behind them, which failures each vendor still bills, and what the configuration it was tested with actually costs. The sixteenth, Oxylabs, bills per gigabyte and is covered separately.

TL;DR

  • Sticker prices are not comparable. Vendors bill per request, per credit, per GB, per browser-hour, or from prepaid platform usage, and a credit is worth different amounts per vendor and per configuration.
  • The standard-to-premium jump is the number to check first. ZenRows and Scrapfly multiply by 25, ScrapingBee by up to 75, ScrapingAnt by up to 125. Firecrawl, Context.dev, Nimble and Apify charge one rate for every page, and Bright Data lists one rate with an unpublished premium-domain exception.
  • No per-request vendor that publishes a failure policy bills a plain failed attempt by default, but most bill some failures. Oxylabs, which bills per GB, counts every 2xx and 4xx response from the target as billable traffic, a 403 block included. Firecrawl charges a credit for a returned 403 or 404. ScraperAPI, ScrapingBee, ZenRows, Zyte, Scrapfly and Apify bill a 404. Browserbase publishes no failure policy.
  • Zyte prices by website difficulty across five tiers, so the same HTTP request costs $0.10 to $0.95 per 1,000 at a $100 commitment, depending on the site.
  • Bright Data lists $1.50 per 1,000, but its docs confirm "premium domains" bill at a higher rate it does not publish. Hard targets are exactly the premium-domain profile.
  • A low success rate caps what money can buy. At ScrapingAnt's 36.4% benchmark success, no budget returns more than about a third of the requests on a fixed protected list.

Standard vs premium: the rate that matters

Most vendors advertise their standard rate. Almost nobody scrapes at it. The pages worth paying for, retail, travel, social, real estate, sit behind anti-bot vendors, and fetching them takes JavaScript rendering, premium or residential proxies, or both. That configuration is what this table calls the premium rate.

All rates are USD per 1,000 requests at the paid self-serve plan nearest $100 a month by dollar distance, billed monthly. Standard means a plain HTTP fetch with the vendor's default proxy and no JavaScript. Premium means the vendor's documented configuration for protected pages. The benchmark column is the rate for the exact configuration each vendor's adapter sent in the September run.

Provider Plan Standard $/1k Premium $/1k Benchmark config $/1k Premium multiple
Scrapingdog Standard $90 0.09 0.90 0.90 to 1.80, premium + stealth 10x
ScrapingAnt Startup $49 0.10 2.45 residential, 12.25 with browser 2.45, residential 25x to 125x
ScrapingBee Startup $99 0.10 2.48, stealth 7.43 0.10 to 7.43, Auto Mode 25x to 75x
Scrapfly Pro $100 0.10 2.50 residential 2.50 plus unpublished anti-bot fees 25x
Zyte $100 commitment 0.10 to 0.95 by site tier 0.75 to 12.00 browser, by site tier 0.10 to 0.95, HTTP difficulty-tiered
Decodo $99 plan 0.14 1.20, premium proxies + JS 1.20 8.6x
ScraperAPI Startup $149 0.15 1.49, 3.73 with JS 4.47 to 5.96, ultra premium 10x to 25x
ZenRows Launch $99 0.20 4.95 4.95 25x
String Growth $100 0.20 2.00 2.00 10x
Browserbase Startup $99 0.50 4.00 with proxies 4.00 8x
Context.dev Pro $99 0.79 0.79 0.79 flat
Firecrawl Standard $99 0.99 0.99 0.99 flat
Nimble Pay as you go 1.00 1.00 1.00 flat
Apify Starter $19 1.50 1.50 1.50, Web Fetch flat
Bright Data Pay as you go 1.50 1.50 listed; premium domains higher, unpublished 1.50 flat, with exceptions

Five flat-rate structures stand out. Firecrawl charges one credit for everything, including its enhanced proxy, so its $0.99 is the same for an easy blog and for a protected storefront. Context.dev includes "JS rendering, anti-bot bypass, or premium proxies" in one credit. Nimble lists $1.00 per 1,000 URLs, although its own rendering docs say "Non-rendering is cheaper" without a number. Apify's Web Fetch Actor charges $1.50 per 1,000 fetches on Starter, $1.25 on Scale and $1.00 on Business; the same pricing tab also lists a "Platform usage" cost without an amount. Bright Data's Web Unlocker is a premium product priced flat at $1.50, with the premium-domain caveat covered below.

Four structures resist a single number. Zyte assigns each website one of five difficulty tiers automatically, so your rate depends on what you scrape, not what you configure. ScrapingBee's Auto Mode tries cheaper configurations first and charges only the one that worked, anywhere from 1 to 75 credits. Scrapingdog documents premium proxies and stealth mode at 10 credits each but does not say whether they add up when combined, which is how the benchmark ran it. ScraperAPI's credit docs price ultra premium at 30 credits and bot-protection bypass at 10, and neither page says whether the two stack.

Plan choice moves several of these numbers. ScraperAPI has no plan at $100: Startup at $149 is $49 away and Hobby at $49 is $51 away, and on Hobby the same ultra premium request costs $14.70 per 1,000 rather than $4.47. ScrapingAnt's neighbours are $49 and $249, Apify's are $19 and $199, and Bright Data's are pay as you go and $499. Annual billing changes others: Firecrawl Standard drops from $99 to $83 a month billed annually, and ZenRows' pricing page can show a pay-10-get-12 figure ($57) for a plan that costs $69 billed monthly. Every figure above is the monthly-billed rate.

How we tested what these configurations deliver

Rates only matter next to delivery. The Web Data Frontier Benchmark sends each provider's public API against 100 bot-protected pages, five attempts each, 500 requests per provider. In the September 16, 2026 run, each provider ran at its strongest published setting. The adapters are public, and the benchmark column above prices the exact request each adapter sends, so the price and the success rate describe the same request.

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

Mean duration per benchmark attempt

The table below is the mean wall-clock time across all 500 attempts per provider in the September 16, 2026 run. Failed attempts and timeouts are included at their observed duration. These are measured per-attempt times, not throughput or deadline estimates. A provider that gives up quickly on a blocked page scores a low mean here, so read this table next to the success rates, never instead of them.

Provider Mean seconds per attempt
Browserbase 1.87
String 5.31
Firecrawl 5.31
ScrapingAnt 5.51
ZenRows 9.17
ScraperAPI 12.00
Oxylabs 12.75
Zyte 13.04
Bright Data 13.73
Context.dev 16.37
Decodo 16.67
Scrapfly 16.96
ScrapingBee 20.00
Scrapingdog 20.32
Apify 21.23
Nimble 29.25

Effective cost per usable page

Dividing list price by success rate is the standard move here, and it is wrong for this field. The division only applies to vendors that charge for failed attempts, and none of the 14 vendors in the table that publish a failure policy bills a plain failed attempt by default. A vendor that bills only successes already prices the usable page, so its effective rate equals its list rate no matter how often it is blocked. What a low success rate costs those vendors is coverage, not money.

What varies is which failures count as successes. Firecrawl bills a 403 or 404 page it returns and bills nothing when it returns no result. If every one of its failed benchmark attempts had been a returned 403, its effective rate would rise from $0.99 to $1.23 per 1,000, so that row carries the range.

Provider Effective $/1k usable Failure billing Benchmark success
ScrapingBee 0.10 to 7.43 success only; 404, 410 and 413 bill 73.0%
Zyte 0.10 to 0.95 success only; 404 bills 68.0%
Context.dev 0.79 success only; docs bill a processed 404 72.0%
Scrapingdog 0.90 to 1.80 success only 45.6%
Firecrawl 0.99 to 1.23 returned 403 and 404 bill; no result is free 80.2%
Nimble 1.00 success only 68.6%
Decodo 1.20 success only 50.6%
Apify 1.50 success only; a returned 404 bills 77.4%
Bright Data 1.50+ success only, with exceptions 74.6%
String 2.00 success only 97.0%
ScrapingAnt 2.45 success only 36.4%
Scrapfly 2.50+ success only; 404 and other listed 4xx bill 86.2%
Browserbase 4.00 not published 41.4%
ScraperAPI 4.47 to 5.96 success only; 404 bills 84.0%
ZenRows 4.95 success only; 404 and 410 bill 41.2%

The table is sorted by the low end of each range. A row that shows a range, or a plus sign for an unpublished component, does not earn a "cheapest" rank: its real rate depends on the targets you send.

String's row uses its premium fetch rate, because the benchmark's 100 targets are all bot-protected and that is the honest configuration to price. At its $0.20 standard rate String would sit near the top of this table, but that is not the rate the benchmark workload represents, so we do not quote it here. Against String's $2.00, eight vendors price their benchmark configuration lower at every point of their published range: Zyte, Context.dev, Scrapingdog, Firecrawl, Nimble, Decodo, Apify, and Bright Data at its listed rate. Five price it higher at every point: ScrapingAnt, Scrapfly, Browserbase, ScraperAPI and ZenRows. ScrapingBee's Auto Mode range spans String's rate.

Who bills a failed request

Billing rules, straight from each vendor's own pages, all fetched September 23, 2026.

Success only, 4xx pages not addressed. String ("You only pay when String returns content"), ScrapingAnt ("failed requests cost 0"), Decodo ("You're only charged for successful responses"), Nimble ("Only successful requests count toward your usage"), and Scrapingdog ("Failed, blocked and timed-out requests are automatically refunded"). None of these five says whether a target's own 404 page counts as a success.

Success only, but a returned error page bills. ScraperAPI charges "for successful requests (200 and 404 status codes)". ScrapingBee bills 200, 404 and 410, and its docs table adds 413. ZenRows counts 404 and 410 as successful. Zyte passes a target's 404 through as a successful, billable response and does not bill a ban. Apify's Web Fetch charges nothing for failed requests, but "if the site responds with a 404 page" that page is still one fetch. Firecrawl bills a returned 403 or 404 at one credit.

Success only, with conditions that switch it off. Scrapfly's pricing page says a failed request is "$0, never charged on error". Its billing docs are narrower: 404 and a list of other 4xx codes are excluded from failure protection, and if more than 30% of failed traffic is detected within an hour, the fairness policy switches off and failures bill. Bright Data's success-only rule switches off entirely when custom headers, cookies or manual "expect" elements are enabled on a zone: then 100% of requests bill, failures included. Context.dev's pricing page says "Failed or blocked requests are not billed", while its docs say processed 404 results "consume the request's normal credits".

Not published. Browserbase's Fetch API pricing says nothing about failed or error responses either way. Its row uses the list rate, unflattered and undivided.

The premium-domain problem

Bright Data's $1.50 deserves its own section because it is the table's most misleading-looking bargain. The Web Unlocker docs state that "premium domains" bill at a higher rate, that the price appears only in the zone's "Estimated cost" field, and that the domain list is updated quarterly. The public pricing page does not carry the premium rate at all. The domains that need an unblocker in the first place, large retail, social, and travel sites, are the premium-domain profile. So the $1.50 in every comparison table, ours included, is the rate for the domains you were least likely to need Bright Data for. We mark the row $1.50+. Price your actual domain list in their dashboard before you budget from any table. Our comparison of alternatives to Bright Data sets six providers against it, including Zyte with its public domain tiers.

Zyte has the same shape with more disclosure. Its five difficulty tiers are assigned automatically per website, reviewed quarterly, with two weeks' notice of any tier change, and the tier ladder is public: $0.10 to $0.95 per 1,000 HTTP responses at a $100 commitment. What is not public is which tier your target sits in until you send traffic. For a hard-target workload, budget toward the top of the ladder.

Scrapfly is the third. Its credit table prices a residential request at 25 credits, but its anti-scraping protection may upgrade the proxy pool and add fees it does not publish, and the sample response on its own pricing page shows an anti-bot cost of 30 credits. We mark the row $2.50+.

The credit decoder

Credit vendors publish one attractive per-credit price and vary the credits per request. These are the published multiplier tables, verified September 23, 2026.

Provider Base JS render Premium proxy JS + premium Residential or stealth
ScrapingBee 1 5 10 25 75 stealth
ZenRows 1 5 10 25 n/a
ScrapingAnt 1 10 n/a n/a 25 residential, 125 with browser
ScraperAPI 1 10 10 25 30 ultra, 75 ultra + JS
Scrapingdog 1 5 10 25 10 stealth
Scrapfly 1 5 n/a n/a 25 residential, 60 screenshot
Firecrawl 1 1 1 1 1
String 1 5 browser 10 20 browser premium n/a

String sells no credits. Its row shows the ratio between its four published per-1,000 rates, so it reads on the same scale as the others.

Two practical rules fall out of this table. First, never budget from a vendor's per-credit price without knowing your configuration's multiplier: a $149 plan at 30 credits per request is a $4.47-per-1,000 plan. Second, a flat-credit vendor like Firecrawl is cheap for hard pages and expensive for easy ones, and a multiplier vendor is the reverse, so the right vendor depends on your mix.

The vendor you cannot put in the table

One benchmarked provider does not sell requests at all, and converting its unit would mean inventing a number, so it sits outside the table.

Oxylabs Web Unblocker bills per gigabyte: $9.40 per GB on its $75 Micro plan and $8.60 on the $325 Starter. Your per-page cost depends on page weight, which varies by an order of magnitude across sites. Oxylabs' own trial card equates "1GB (up to 10k results)", which would put Micro near $0.94 per 1,000, but that is Oxylabs' ratio, not a measured cost. Its docs count every 2xx and 4xx response from the target as successful, so a 404 or a 403 consumes traffic. Oxylabs scored 69.0% on the benchmark through this product.

Browserbase sat in this section in August, priced per browser-hour. The benchmark now calls its Fetch API, which bills per call: $0.50 per 1,000 without proxies and $4.00 with proxies above the Startup plan's 10,000 included calls. The Startup card on its pricing page says $1 per 1,000 for the plain call while its compare table and plan docs say $0.50. Neither says whether the included calls cover proxied calls, so its row uses the $4.00 proxied rate.

Why a cheap rate can still cost you the project

Effective cost only compares vendors that can return the page. Eleven of the fifteen competitors in the benchmark failed more than one request in four. Scrapingdog, Browserbase, ZenRows, and ScrapingAnt failed more than half. For a success-billed vendor, failing is free for you and for them, but it does not get you the data: at a 36.4% success rate, a fixed list of protected URLs returns about a third of its pages no matter what you spend. Price tells you the cost of the pages you get. Success rate decides whether you get the pages at all.

That is the trade String's pricing makes, stated plainly: $2.00 per 1,000 premium fetches is more than eight of the fifteen other providers charge for the configuration they were tested with, and 97.0% success, the only rate above 90% in the benchmark, is what it buys. For the full ranking with every provider's strengths, see the best web scraping APIs comparison.

FAQ

What does a web scraping API cost in 2026?

At the plan nearest $100 a month, standard fetches run $0.09 to $1.50 per 1,000 requests across the 15 providers that price per request. The configurations the same providers used against bot-protected pages run $0.79 to $4.95 per 1,000 where the rate is fixed, and ranges reach $7.43 where the cost depends on the target. The spread comes from credit multipliers of up to 125x that most vendors apply for JavaScript rendering and premium proxies.

What is the cheapest web scraping API?

Scrapingdog has the cheapest published standard rate at $0.09 per 1,000 requests on its $90 plan. For bot-protected pages, Firecrawl's flat $0.99 per 1,000 is the cheapest rate among providers that cleared 80% on our 100-site benchmark. Context.dev's $0.79 is the lowest fixed rate for protected pages overall, at 72.0% success.

Is String the cheapest web scraping API?

No. String's $2.00 per 1,000 premium fetches is higher than what eight of the other fifteen providers charge for the configuration they were benchmarked with. String's $0.20 standard rate sits in the middle of the field, and its 97.0% benchmark success rate is the highest of any provider tested. You pay for delivery on hard targets, not for the rate card.

Do web scraping APIs charge for failed requests?

Not for a plain failure by default, under any per-request vendor that publishes a rule. Many do bill a target's own error page: Firecrawl bills a returned 403 or 404, ScraperAPI, ScrapingBee, ZenRows, Zyte and Apify bill a 404, and Scrapfly bills 404 and other listed 4xx codes. Bright Data bills every request on zones with custom headers or cookies. Browserbase publishes no failure policy.

Why do credit-based plans cost more than they look?

Because credits per request scale with configuration. ScrapingBee's $99 plan is $0.10 per 1,000 at one credit per request and $7.43 per 1,000 at its 75-credit stealth configuration. Always compute price at the configuration your targets need, not the base rate.

Should I divide price by success rate to compare vendors?

Only for vendors that bill failed attempts, and no per-request vendor on this page that publishes a failure policy does so by default. For a success-billed vendor, a failed request costs nothing, so the effective rate equals the list rate. Dividing there invents a cost the vendor does not charge. The adjustment that does apply is for returned error pages: Firecrawl's range of $0.99 to $1.23 is that adjustment.

What does Bright Data's Web Unlocker really cost?

$1.50 per 1,000 requests pay as you go, or $1.30 per 1,000 above the 383,000 requests included in the $499 Scale plan. Its docs confirm premium domains bill higher at a rate shown only in the dashboard, and enabling custom headers or cookies switches a zone to billing all requests, failures included. Price your actual domains in their dashboard before budgeting.

Are annual prices comparable to monthly prices?

No. Annual billing discounts most plans: Firecrawl's Standard drops from $99 to $83 a month, and ZenRows' pricing page can show $57 for a plan that costs $69 billed monthly. Mixing bases skews any table. Every rate on this page is billed monthly. Check the billing toggle before trusting any vendor comparison, including this one.

Best Web Scraping APIs in 2026: 16 Tools ComparedUpdated September 22, 2026Best Web Scraping Tools 2026: 12 Compared, Free and PaidUpdated October 5, 2026Best E-commerce Scraping APIs in 2026: 8 APIs 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 🗽 🍎