NewLaunching String Web Access APIRead the manifesto →
← Comparisons

Web Scraping API Pricing in 2026: 13 Providers Compared

Logan Harless, Founder, String · Updated August 31, 2026

Last updated: August 31, 2026. Every rate on this page was checked against the vendor's own published pricing page or billing docs, most on August 26, 2026, none earlier than August 11, 2026. Success rates come from the August 11, 2026 run of the Web Data Frontier Benchmark.

A standard page fetch from a web scraping API costs between $0.09 and $1.50 per 1,000 requests at the $100-a-month tier. The same fetch against a bot-protected page costs between $0.90 and $7.43 per 1,000, because most vendors multiply the price by 5x to 75x when you turn on JavaScript rendering and premium proxies. 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. Firecrawl is the only vendor that charges one flat credit for every configuration, $0.99 per 1,000 on its monthly Standard plan. This page lists the standard and premium rate for all 13 providers in the benchmark, the credit multipliers behind them, who bills failed requests, and what a usable page actually costs once success rates enter the math.

TL;DR

  • Sticker prices are not comparable. Vendors bill per request, per credit, per GB, or per browser-hour, and a credit is worth different amounts per vendor and per configuration.
  • The standard-to-premium jump is the number to check first. ZenRows multiplies by 25, ScrapingBee by 25, ScrapingAnt by up to 125. Firecrawl and Bright Data do not multiply at all.
  • Failure billing splits the field three ways. Eight vendors charge only for success. Firecrawl, ScraperAPI, and others charge per attempt, including 403 and 404 responses.
  • Zyte prices by website difficulty across five tiers, so its rate for the same request ranges from $0.10 to $0.95 per 1,000 HTTP fetches at a $100 commitment.
  • 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 ScrapingBee's 29.7% benchmark success, no budget completes more than a third of a fixed target 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 tier closest to $100 a month, billed monthly. Standard means a plain HTTP fetch with datacenter proxies and no JavaScript. Premium means the vendor's documented configuration for protected pages: JavaScript rendering plus premium or residential proxies, or the vendor's unblocker product where that is the product.

Provider Plan Standard $/1k Premium $/1k Premium multiple
Scrapingdog Standard $90 0.09 0.90 10x
ScrapingAnt Startup $49 0.10 2.45 residential, 12.25 with browser 25x to 125x
ScrapingBee Startup $99 0.10 2.48, stealth 7.43 25x to 75x
Scrapfly Pro $100 0.10 0.50 anti-bot, 2.50 with residential 5x to 25x
Zyte $100 commit 0.10 to 0.95 by site tier 0.75 to 12.00 browser, by site tier difficulty-tiered
String Growth $100 0.20 2.00 10x
ZenRows Launch $57 0.23 5.70 25x
ScraperAPI Hobby $49 0.49 12.25, ultra premium 36.75 25x to 75x
Context.dev Pro $149 0.75 0.75 flat
Firecrawl Standard $99 0.99 0.99 flat
Nimble Usage 1.00 1.00 flat
Bright Data Pay as you go 1.50 1.50 listed; premium domains higher, unpublished flat, with exceptions
Decodo $99 tier not published separately 1.20, JS included n/a

Three flat-rate structures stand out. Firecrawl charges one credit for everything, including its stealth proxy escalation, so its $0.99 is the same for an easy blog and for a protected storefront. Bright Data's Web Unlocker is a premium product priced flat at $1.50, with the premium-domain caveat covered below. Nimble bills $1.00 per request at usage pricing with no published multipliers.

Two 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. Decodo's $99 tier bundles premium proxies and JavaScript into one $1.20 rate and does not price a bare standard fetch separately.

Annual billing changes several of these numbers. Firecrawl Standard drops from $99 to $83 a month billed annually, ScrapingBee and others discount similarly. Every figure above is the monthly-billed rate. Comparing a vendor's annual rate to another's monthly rate is the most common error in pricing pages, including, until recently, drafts of ours.

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 99 bot-protected pages, five attempts each, 495 requests per provider, through each vendor's own documented anti-bot configuration. The adapters are public. The premium rates in this page's tables are the rates for those exact configurations, so the price and the success rate describe the same request.

Overall success rate across all 495 requests per provider. Web Data Frontier Benchmark · 99 targets · 495 requests per provider · August 11, 2026. Live leaderboard

Mean duration per benchmark attempt

The table below is the arithmetic mean of the recorded latency for all 495 attempts per provider. Failed attempts and timeouts are included at their observed duration. These are measured per-attempt times, not throughput or deadline estimates; the table makes no assumptions about concurrency, retries, rate limits, or workload size.

Provider Mean seconds per attempt
Browserbase 2.00
ScrapingAnt 2.57
Scrapingdog 5.76
ScrapingBee 6.59
Firecrawl 6.98
String 7.67
ZenRows 10.42
Oxylabs 10.84
Zyte 11.00
Context.dev 11.04
Scrapfly 15.94
ScraperAPI 16.79
Decodo 21.02
Nimble 23.57
Bright Data 25.83

Effective cost per usable page

Dividing list price by success rate is the standard move here, and it is wrong for most of this field. The division only applies to vendors that charge for failed attempts. Eight of the thirteen charge nothing when they fail to return the page, so their effective rate equals their list rate no matter how often they are blocked. What a low success rate costs those vendors is coverage, not money.

# Provider Effective $/1k usable List $/1k Failure billing Benchmark success
1 Scrapfly 0.50 0.50 success only 82.0%
2 ScrapingBee 0.50 0.50 success only 29.7%
3 ScraperAPI 0.76 0.49 per attempt 64.2%
4 Scrapingdog 0.90 0.90 success only 54.3%
5 Zyte 0.10 to 0.95 0.10 to 0.95 success only 72.7%
6 Context.dev 0.95 0.75 per credit 79.2%
7 Nimble 1.00 1.00 not published 66.3%
8 Firecrawl 1.26 0.99 per attempt 78.6%
9 Bright Data 1.50+ 1.50 success only, with exceptions 78.0%
10 Decodo 1.70 1.20 per attempt, unverified 70.7%
11 String 2.00 2.00 success only 97.0%
12 ScrapingAnt 2.45 2.45 success only 30.7%
13 ZenRows 5.70 5.70 success only 34.3%

String's row uses its premium fetch rate, because the benchmark's 99 targets are all bot-protected and that is the honest configuration to price. At its $0.20 standard rate String would top this table, but that is not the rate the benchmark workload represents, so we do not quote it here.

Read the last two rows carefully, because they show why the failure-billing column matters. ZenRows lists $5.70 per 1,000 for its 25-credit protected-page configuration and does not bill failed requests, so $5.70 is also its effective rate. If ZenRows billed per attempt, its 34.3% success rate would push the effective figure to $16.62. The billing rule, one line in a vendor FAQ, changes the number by 3x.

Who bills a failed request

Three billing models, straight from each vendor's own pages, all fetched August 26, 2026.

Success only. Scrapfly ("failed requests are never charged"), ZenRows ("you only spend credits on successful requests"), ScrapingAnt ("failed requests cost 0"), Zyte ("you are only charged for successful responses"), Bright Data ("pay only for success"), ScrapingBee, Scrapingdog, and String. Two footnotes belong here. ScrapingBee and ZenRows both count 404 and 410 responses as billable successes, so a dead URL spends credits even though you get no page. And Bright Data's success-only rule switches off entirely when custom headers or cookies are enabled on a zone: then 100% of requests bill, failures included.

Per attempt. Firecrawl's billing docs charge a credit even when the target returns 403 or 404, which contradicts its own pricing FAQ's "we only charge for successful requests"; the billing docs are the more specific page, so we treat them as controlling. ScraperAPI consumes credits per attempt. Decodo appears to bill per attempt but does not state a policy we could verify, so its effective figure carries that flag.

Not published. Nimble's pricing page says nothing about failures 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 plainly that "premium domains", the ones "more challenging to unblock", bill at a higher rate, that only the dashboard shows the exact price, and that the domain list updates 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 precisely 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.

Zyte has the same shape with more disclosure. Its five difficulty tiers are assigned automatically per website and reviewed quarterly, and the tier ladder is public: $0.10 to $0.95 per 1,000 HTTP fetches 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.

The credit decoder

Credit vendors publish one attractive per-credit price and vary the credits per request. These are the published multiplier tables, verified August 26, 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
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

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 $49 plan at 25 credits per request is a $12.25-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 two vendors you cannot put in the table

Two benchmarked providers do not sell requests at all, and converting their units would mean inventing numbers, so they sit outside the ranking.

Oxylabs Web Unblocker bills per gigabyte: $9.40 per GB on its $75 Micro plan, $8.60 on the $325 Starter. Your per-page cost depends entirely on page weight, which nobody publishes and which varies by an order of magnitude across sites. Oxylabs scored 76.8% on the benchmark through this product. Its separately priced Web Scraper API bills per result, but that is not the product the benchmark ran.

Browserbase bills per browser-hour: $0.12 on the $20 Developer plan, $0.10 on the $99 Startup plan, plus proxy gigabytes. Per-page cost depends on how many pages a session visits and how long they take. It scored 42.2%.

Why a cheap rate can still cost you the project

Effective cost only compares vendors that can return the page. Eight of the twelve competitors in the benchmark failed more than one target in four. ScrapingBee, ScrapingAnt, and ZenRows failed roughly two in three. For a success-billed vendor, failing is free for you and for them, but it does not get you the data: at a 29.7% success rate, a fixed list of 99 targets yields about 29 sites 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 11th of 13 on this page, and 97.0% success, the only rate above 90% in the benchmark, is what it buys.

FAQ

What does a web scraping API cost in 2026?

At the $100-a-month tier, standard fetches run $0.09 to $1.50 per 1,000 requests across the 13 providers we track, and protected-page configurations run $0.50 to $12.25 per 1,000. The spread comes from credit multipliers of 5x 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, Scrapfly's anti-bot configuration at $0.50 per 1,000 is the cheapest rate that also cleared 80% on our 99-site benchmark.

Is String the cheapest web scraping API?

No. String's $2.00 per 1,000 premium fetches ranks 11th of 13 on effective cost for protected pages. String's $0.20 standard rate is among the cheapest, 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?

Eight of the thirteen, String included, charge only for success, so a blocked request costs nothing. Firecrawl and ScraperAPI charge per attempt, including 403 and 404 responses. ScrapingBee and ZenRows bill 404 and 410 responses as successes. Nimble 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.

Is it cheaper to divide price by success rate to compare vendors?

Only for vendors that bill failed attempts. For the eight success-billed vendors, a failed request costs nothing, so the effective rate equals the list rate. Dividing there invents a cost the vendor does not charge; we made that error in an early draft of this analysis and corrected it against each vendor's current billing pages.

What does Bright Data's Web Unlocker really cost?

$1.50 per 1,000 requests pay-as-you-go for standard domains. 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, so 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 Oxylabs Alternatives in 2026: 7 Tools ComparedUpdated August 27, 2026Best Zyte Alternatives in 2026: 7 Tools ComparedUpdated August 26, 2026Best ZenRows Alternatives in 2026: 7 Tools ComparedUpdated August 27, 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 🗽 🍎