Originally published at AgentStack Notes, where an interactive calculator is included. Last fact-checked: November 10, 2026.
Disclosure: This article was drafted with AI assistance and checked against each vendor's official pages. We may receive a commission if you sign up through the ScraperAPI † or Firecrawl † links marked † in this article, at no extra cost to you. ScrapingBee is linked without a referral link. See our Advertising Disclosure.
Plan pages list credits; your code sends requests. To compare services fairly you need one figure: what 1,000 requests cost you per month. Getting there takes two lookups (credits per request, and the plan that covers your volume) and a little division. Here is the worksheet.
Note on experience: we have not run production workloads on these services and say nothing about speed, success rates or data quality. Everything below is arithmetic on figures read from official pricing pages and docs on November 10, 2026. Prices change; check the live pages before you buy.
1. Credits per request, as documented
† marks a referral link. "Not stated" means the page we read did not say.
| Call type | ScraperAPI † | ScrapingBee | Firecrawl † |
|---|---|---|---|
| Default call | 1 credit (flat) | 5 credits (JavaScript rendering on by default) | 1 credit per scrape |
| With JavaScript rendering explicitly | 10 credits (render=true) |
5 credits | Not stated as a separate option |
| Without JavaScript rendering | 1 credit | Not stated | Not stated |
| Premium proxy | 10 credits; 25 with render | 10 credits without JS; 25 with JS | Enhanced proxy billed at the same 1 credit, per Firecrawl's billing docs |
| Heaviest option listed | Ultra premium 30; 75 with render (paid plans only) | Stealth proxy 75 | JSON format adds 4 credits per page |
The defaults are different kinds of call. ScrapingBee's default renders JavaScript (5 credits); ScraperAPI's 1-credit call is its flat, non-rendered request. Putting "1" next to "5" without that context overstates the gap. Failed requests are billed differently by each service (ScraperAPI states it charges only for 200 and 404 responses), and we do not model failures.
2. Plans that cover your credits
Monthly-billed prices, before tax, from each pricing page. Larger tiers exist on all three.
| Service | Plan | Price / month | Credits / month | Price per 1,000 credits (our arithmetic) |
|---|---|---|---|---|
| Firecrawl | Free | $0 | 1,000 | — |
| Firecrawl | Hobby | $19 | 5,000 | $3.80 |
| Firecrawl | Standard | $99 | 100,000 | $0.99 |
| Firecrawl | Growth | $399 | 500,000 | $0.80 |
| Firecrawl | Scale | $749 | 1,000,000 | $0.75 |
| ScrapingBee | Hobby | $19 | 75,000 | $0.25 |
| ScrapingBee | Freelance | $49 | 250,000 | $0.20 |
| ScrapingBee | Startup | $99 | 1,000,000 | $0.10 |
| ScrapingBee | Business | $249 | 3,000,000 | $0.08 |
| ScraperAPI | Hobby | $49 | 100,000 | $0.49 |
| ScraperAPI | Startup | $149 | 1,000,000 | $0.15 |
| ScraperAPI | Business | $299 | 3,000,000 | $0.10 |
| ScraperAPI | Scaling | $475 | 5,000,000 | $0.10 |
Free offers as listed: Firecrawl's Free plan gives 1,000 credits and its FAQ says they recur monthly; ScrapingBee offers 1,000 free API credits with no card; ScraperAPI's pricing page shows a 7-day, 5,000-credit trial with no card, while its FAQ separately mentions a free plan of 1,000 credits, so confirm which applies. Concurrency limits differ by plan and are not modelled.
3. The worksheet
- Write down your monthly request volume.
- Multiply by credits per request (table 1) to get credits needed.
- Pick the cheapest plan whose monthly credits cover that number (table 2).
- Divide the plan price by your request volume, then multiply by 1,000.
The examples use each service's default call (ScraperAPI 1 credit, ScrapingBee 5, Firecrawl 1). They ignore retries, overages and concurrency, and they pay the full plan price even if you use part of it.
| Requests / month | ScraperAPI | ScrapingBee | Firecrawl |
|---|---|---|---|
| 2,000 | 2,000 credits → Hobby $49 → $24.50 per 1,000 | 10,000 credits → Hobby $19 → $9.50 per 1,000 | 2,000 credits → Hobby $19 → $9.50 per 1,000 |
| 20,000 | 20,000 credits → Hobby $49 → $2.45 per 1,000 | 100,000 credits → Freelance $49 → $2.45 per 1,000 | 20,000 credits → Standard $99 → $4.95 per 1,000 |
| 200,000 | 200,000 credits → Startup $149 → $0.745 per 1,000 | 1,000,000 credits → Startup $99 → $0.495 per 1,000 | 200,000 credits → Growth $399 → $1.995 per 1,000 |
Two patterns fall out of the published prices (they say nothing about how well any service works). At small volumes the minimum plan price dominates, so a cheap entry plan beats a cheap per-credit price. At larger volumes both the per-credit price and the credits-per-request multiplier matter, and the cheapest service for one call type can lose for another.
If you want to try a free offer while measuring your own request mix, the ScraperAPI † and Firecrawl † signup links support this site. The original post has a small calculator you can edit with your own numbers. Related reading: ScraperAPI vs ScrapingBee, Firecrawl Credits Explained and Free Tiers of Web-Data Tools Compared.
4. What this worksheet leaves out
- ScrapingBee's cost without JavaScript rendering: not stated on the page we read.
- Per-domain surcharges (ScraperAPI lists higher credit costs for e-commerce, search-engine and social-media domains) and bot-protection add-ons.
- Failed-request billing, retries, overage pricing, annual discounts and VAT.
- Concurrency, which can force a larger plan than your credit count suggests.
- Success rates, speed and data quality. We have not measured them, and a cheaper request that fails more often can cost more per usable page.
- These pages were read through a web-fetch tool that summarises pages, not a manual read of the rendered pages. Confirm against the live pages before buying.
Top comments (0)