The Sticker Price Is the Cheapest Thing on the Page
Every scraping API leads with the same kind of number. From nine cents per 1,000 requests. From a dollar. From $1.50. Clean, low, easy to drop into a client proposal.
That number is real. It's also the price of the one request you'll almost never send: a plain HTTP GET to a site that doesn't care who's asking.
The sites you actually get paid to scrape care a lot. And the moment a target needs a rendered page or a residential proxy, the quoted rate stops applying and a multiplier takes over. The sticker is the floor. The bill sits somewhere above it, and most buyers learn where only after the first invoice.
How the Multiplier Actually Works
Open the credit docs of almost any API and you'll find the same grid. A plain request costs 1 credit. Turn on JavaScript rendering and it's 5. Ask for a residential or premium proxy and it's 10. Need both, for a site that checks who's asking, and you're at 25. ScrapingBee's top tier runs to 75 credits for a single page (ScrapingBee docs, October 2026).
ScraperAPI prices the same shape: rendering 10 credits, premium proxies 10, both together 25, its ultra tier 30, and certain protected domains 10 on their own (ScraperAPI docs). ZenRows lands in the same spot: 1 for standard, 5 for JS, 10 for premium, 25 for the two together (ZenRows pricing).
Here's the part nobody puts on the marketing page. The vendors converge at the top of the grid. You can pick the cheap API or the dear one, but once a site pushes back, both charge you about 25 times their own headline rate. The number you compared vendors on isn't the number that decides your bill.
The Advertised Tier Is the Wrong Tier
So which tier does your work actually live in?
Zyte, which sells on a tiered model, published its own breakdown: roughly 80% of websites sit in the two simplest tiers, and only about 0.1% change tier in a given quarter (Zyte, 2026). On paper that reads as reassuring. Most of the web is cheap.
But flip it around. The cheap 80% is cheap on every vendor. Nobody's edge lives there. The jobs a client pays a freelancer or a small shop to deliver (retail catalogs, travel fares, marketplace listings, anything commercially useful) are exactly the sites that sit in the expensive minority. Zyte's own research puts 18.5% of the top sites behind a dedicated protection system (Zyte State of Web Access).
That's the trap. The sticker price describes the jobs nobody hires you for. The 25x price describes the jobs they do. (It's the same per-unit math that makes LLM extraction stop paying for itself at scale once volume climbs.)
The Entry Tier Is Quietly Disappearing
While the per-page math got more expensive, the cheap way in got harder to find.
ScrapingBee dropped its $19 plan in October 2026; entry is now $49 a month. Firecrawl's own category roundup notes that $49 with no permanent free tier has become the normal starting point. Oxylabs folded its scraper products into a single subscription. Decodo and Bright Data both moved to per-request and per-record meters, where the counter runs on every call (Bright Data Web Scraper pricing).
None of this aims at the platform buyer with a signed contract. It lands on the freelancer and the two-person shop: the people who need one site to answer for one client this month and can't spread a $500 plan across a hundred jobs. (We dug into who really carries that weight in the hidden cost of maintaining your own scrapers.)
What This Means for Anyone Pricing a Scrape
Stop pricing off the sticker. Price off the target's tier.
Before you quote a client, look at the real sites in scope and sort them: which return usable HTML on a plain request, which need a rendered page, which need a residential proxy on top. That mix, not the plan's headline rate, is your cost. A job that's 90% plain pages and 10% hard ones is cheap. A job that's all protected retail is 25x the number in your proposal, and you'll eat the difference.
Run it through once and the gap gets loud. Say a client wants 50,000 product pages a month off a retailer that needs a rendered page and a residential proxy. At 25 credits a page, that's 1.25 million credits. On an API that advertises a thousand credits for a dollar, the sticker in your head said $50. The real line item is $1,250. Same pages, same month, 25 times apart, and nothing on the pricing page ever put that multiplier next to the headline.
Then read the failure billing, because it varies and it's never in the headline. Firecrawl charges a credit for a page that comes back 403 or 404, and charges nothing when a request returns no result (Firecrawl pricing). Others count any 2xx or 4xx as a success and bill it. On a target that refuses often, that one clause can cost more than the rendering does.
The honest signal under all of this isn't a monthly plan. It's a per-call cost you can read after the fact and tie to the exact request that earned it. A plan is an estimate. A per-call number is the receipt, and it's the only thing a client-facing invoice can actually be built on. (For the model-by-model version, see our breakdown of per-GB versus per-page pricing.)
Where This Goes
The grid is converging. Entry tiers are thinning. Within a year the headline rate will tell you even less than it does now, because every serious vendor will quote something close to the same 1-5-10-25 ladder and the same success-only language.
What separates them after that is whether you can see what a call cost and pay for the ones that worked. At FourA we put the price of each request in the response, so you can cost a job on what it actually did instead of guessing from a tier. The next time a vendor opens with a number, the useful question isn't how low it is. It's what happens to it the second the site pushes back.