Any pipeline that feeds an LLM with fresh web data hits the same wall eventually: a plain HTTP request returns a cookie banner or 200KB of JavaScript standing in for the page a human sees, and the team must decide whether to build a headless browser fleet in house or rent access to one by the API call.
Firecrawl's GitHub repository passed 176,000 stars this week, more than Bright Data's, Zyte's and Apify's own open source projects combined, while Apify's State of Web Scraping Report 2026, published January 29, 2026, found that 62.5 percent of scraping teams increased their infrastructure spending over the past year even as adoption growth flattens. The category isn't shrinking. It's getting more expensive to stay in.
What Teams Actually Run
Apify's State of Web Scraping Report 2026 is a useful reality check on who runs this infrastructure. Among the hundreds of professionals surveyed, 58.3 percent said proxy spending increased year over year, and 62.5 percent reported overall infrastructure spending rose, with 23.3 percent seeing increases past 30 percent, driven largely by sites shipping stronger anti-bot defenses.
The AI angle is early rather than settled: 54.2 percent don't yet use AI in their workflow, but 66.2 percent plan to try an AI-assisted tool, and among the minority already using one, 72.7 percent reported a real productivity gain. The workforce skews independent too: 35.8 percent freelance and 49.1 percent work inside startups or SMBs, not enterprise teams with dedicated scraping engineers, the buyer this category is built around.
What 100,000 Pages a Month Actually Costs
Every vendor below publishes its own rate card, but none publishes what a mixed workload costs across all four side by side, so I priced one hypothetical, a 100,000-page-a-month ingestion job feeding a RAG index, against each vendor's own published numbers, checked September 3, 2026.
JavaScript// What 100,000 pages a month actually costs, priced against each vendor's // own published rate card (checked September 3, 2026). const PAGES = 100_000 // Firecrawl: firecrawl.dev/pricing. Scrape/Crawl/Map = 1 credit/page, JS // rendering included by default. The rate the page shows by default is the // annual-prepay one ("Billed yearly"); its comparison table puts the annual // discount at 16.7%, or 20% on Scale, against twelve monthly payments. const firecrawlPlans = [ { name: 'Hobby', credits: 5_000, yearly: 16, monthly: 19 }, { name: 'Standard', credits: 100_000, yearly: 83, monthly: 99 }, { name: 'Growth', credits: 500_000, yearly: 333, monthly: 399 }, { name: 'Scale', credits: 1_000_000, yearly: 599, monthly: 749 }, ] const firecrawl = firecrawlPlans.find(p => p.credits >= PAGES) // Bright Data: brightdata.com/products/web-scraper. Pay per successfully // delivered record, $1.00/1k standard, $0.75/1k promo (code APIS25, 6 months). const brightDataStandard = (PAGES / 1000) * 1.00 const brightDataPromo = (PAGES / 1000) * 0.75 // Zyte: zyte.com/pricing. Per-1,000-successful-response, HTTP tier, by // site-difficulty (Simple = tier 1, Advanced = tier 5). const zyteRates = { payAsYouGo: { simple: 0.13, advanced: 1.27 }, commit500: { simple: 0.06, advanced: 0.61 }, } const zyte = Object.fromEntries(Object.entries(zyteRates).map(([plan, tiers]) => [ plan, Object.fromEntries(Object.entries(tiers).map(([tier, rate]) => [tier, (PAGES / 1000) * rate])), ])) // Apify: apify.com/pricing. Priced on compute units (1 CU = 1GB RAM for 1 // hour), not pages, so there is no fixed $/page. const apifyPlans = [ { name: 'Starter', monthly: 19, cuRate: 0.20 }, { name: 'Scale', monthly: 199, cuRate: 0.16 }, { name: 'Business', monthly: 999, cuRate: 0.13 }, ] // Self-hosted Crawl4AI (Apache-2.0): no license fee, no per-page charge, but // headless Chromium needs real RAM. digitalocean.com/pricing/droplets: // 2 vCPU / 4GB Basic Droplet is $24/month flat regardless of volume. const crawl4aiVPS = 24 console.log(`Workload: ${PAGES.toLocaleString('en-US')} pages/month\n`) console.log('Firecrawl (cheapest plan that covers the volume):') console.log(` ${firecrawl.name}, billed yearly: $${firecrawl.yearly}/mo for ${firecrawl.credits.toLocaleString('en-US')} credits -> $${(firecrawl.yearly / PAGES).toFixed(5)}/page`) console.log(` ${firecrawl.name}, month-to-month: $${firecrawl.monthly}/mo -> $${(firecrawl.monthly / PAGES).toFixed(5)}/page\n`) console.log('Bright Data Web Scraper API (pay-per-successful-record):') console.log(` Standard $1.00/1k: $${brightDataStandard.toFixed(2)}/mo`) console.log(` Promo $0.75/1k (APIS25, 6mo): $${brightDataPromo.toFixed(2)}/mo\n`) console.log('Zyte API (pay-per-successful-response, HTTP tier, by site difficulty):') console.log(` Pay-as-you-go, Simple sites: $${zyte.payAsYouGo.simple.toFixed(2)}/mo`) console.log(` Pay-as-you-go, Advanced sites: $${zyte.payAsYouGo.advanced.toFixed(2)}/mo`) console.log(` $500/mo commitment, Simple: $${zyte.commit500.simple.toFixed(2)}/mo`) console.log(` $500/mo commitment, Advanced: $${zyte.commit500.advanced.toFixed(2)}/mo\n`) console.log('Apify (priced on compute, not pages):') for (const p of apifyPlans) console.log(` ${p.name}: $${p.monthly}/mo plan, $${p.cuRate.toFixed(2)}/CU`) console.log('\nSelf-hosted Crawl4AI (Apache-2.0, $0 license):') console.log(` 2 vCPU / 4GB VPS: $${crawl4aiVPS}/mo flat, independent of page count`)
textWorkload: 100,000 pages/month Firecrawl (cheapest plan that covers the volume): Standard, billed yearly: $83/mo for 100,000 credits -> $0.00083/page Standard, month-to-month: $99/mo -> $0.00099/page Bright Data Web Scraper API (pay-per-successful-record): Standard $1.00/1k: $100.00/mo Promo $0.75/1k (APIS25, 6mo): $75.00/mo Zyte API (pay-per-successful-response, HTTP tier, by site difficulty): Pay-as-you-go, Simple sites: $13.00/mo Pay-as-you-go, Advanced sites: $127.00/mo $500/mo commitment, Simple: $6.00/mo $500/mo commitment, Advanced: $61.00/mo Apify (priced on compute, not pages): Starter: $19/mo plan, $0.20/CU Scale: $199/mo plan, $0.16/CU Business: $999/mo plan, $0.13/CU Self-hosted Crawl4AI (Apache-2.0, $0 license): 2 vCPU / 4GB VPS: $24/mo flat, independent of page count
Firecrawl's Standard plan lands at $0.00083 a page here, but only if you prepay a year; month to month it is $0.00099, which puts it level with Bright Data's standard rate rather than under it. That distinction matters for this comparison, because Bright Data and Zyte both quote no-commitment rates. Zyte can beat both on simple, unprotected sites at a $500 commitment, or cost the most against JS-heavy, anti-bot-hardened targets, since its price tracks site difficulty rather than a flat rate. Apify's number depends entirely on your actor's code, and Crawl4AI trades all of it for a flat server bill plus a proxy problem you now own.
Firecrawl
Firecrawl turns a URL into clean, LLM-ready Markdown or structured JSON in one call, and is also an open source project you can run yourself.

Scrape, Crawl and Map all bill 1 credit per page with JavaScript rendering included. Version 2.11.0 (June 19, 2026) added a Research Index over 3 million arXiv papers, automatic PII redaction, and a deterministicJson format that caches a reusable extractor per site so repeat scrapes skip re-running an LLM.
Search and Interact cost more per unit, Stealth Mode runs 5 credits a page, and credits don't roll over on Hobby, Standard or Growth (only Scale carries unused credits, for one month). The cloud product is also ahead of the repo: its managed anti-bot layer isn't in the self-hosted code.
Pricing (billed yearly): Free 1,000 credits · Hobby $16/month (5,000 credits) · Standard $83/month (100,000 credits) · Scale $599/month (1,000,000 credits). Month to month those run $19, $99 and $749. AGPL-3.0 core with MIT SDKs, 176,000+ GitHub stars, v2.11.0 as of June 19, 2026.
Apify
Apify is less a single scraping API than a marketplace for running "Actors," small scraping or automation programs you write, or ones others already published.

Pricing meters compute (1 CU equals 1GB of RAM for one hour), not pages, so a lightweight Cheerio actor is genuinely cheap, and the CU rate falls as you commit further, $0.20 on Free and Starter down to $0.13 on Business. The store advertises 67,000+ ready-to-run Actors, and Apify went live on x402 in June 2026, letting an AI agent pay per run directly instead of holding a prepaid account.
What it doesn't give you is a page-based number up front: a Playwright actor rendering the same pages a Cheerio actor would skip burns CU at many times the rate, so your real cost is only as good as your actor's code. The monthly rental model retires October 1, 2026 as well: developers are being pushed to pay-per-event, and anything not migrated by then is auto-moved to pay-per-usage.
Pricing: Free $0 ($5 usage, $0.20/CU) · Starter $19/month · Scale $199/month ($0.16/CU) · Business $999/month ($0.13/CU). Platform is proprietary; its own Crawlee library (Node.js and Python) is Apache-2.0 with 25,000+ GitHub stars.
Crawl4AI
Crawl4AI is the open source answer to what Firecrawl and Apify sell as a managed service: point it at a URL, get back clean Markdown for an LLM or RAG index, no API key, no meter, no vendor.

It passed 81,000 GitHub stars and shipped v0.9.3 on August 31, 2026, a security release closing five coordinated-disclosure bugs, including an arbitrary file write and an SSRF in its PDF path. It runs headless Chromium, supports CSS-selector and LLM-guided extraction, and ships a Docker image, so a team can self-host the pipeline with data that never leaves the building.
What it doesn't do is solve the anti-bot problem: no managed proxy pool, no SLA. The moment a site fingerprints and blocks your IP, the whole reason Bright Data's and Zyte's pricing exists, you're buying proxies separately again.
Pricing: Free, self-hosted, your own compute. Apache 2.0, 81,000+ GitHub stars, v0.9.3 as of August 31, 2026.
Bright Data
Bright Data is the largest and oldest name on this list, built around a residential proxy network the company's own site claims covers 400 million monthly IPs across 195 countries, with its Web Scraper API layered on top.

The Web Scraper API bills per successfully delivered record rather than per attempt, so a blocked or failed request costs nothing, and it ships more than 1,500 ready-made scrapers for specific sites that handle site parsing for you. Bulk jobs accept up to 5,000 URLs per request.
What it doesn't offer is any self-hosted or open source path, and standard pricing sits at $1.00 per 1,000 records outside the current promo code. Bright Data's catalog is also large, with proxies, SERP API, Unlocker and datasets all priced separately.
Pricing: $1.00 per 1,000 successful records, standard · $0.75 per 1,000, promo code APIS25 for 6 months. Proprietary, no self-host option.
Zyte
Zyte was Scrapinghub until it rebranded in February 2021, and is still run by the team that built and maintains Scrapy, the open source Python crawling framework much of this industry has used.

Zyte API prices by site-difficulty tier rather than a flat rate: five tiers from Simple to Advanced, separate rates for HTTP versus browser-rendered responses, and just a $5 free trial to test it for 30 days. Committing to a monthly spend lowers the rate at every tier, from $0.13 per 1,000 simple requests pay-as-you-go down to $0.06 at the $500-a-month level. It also runs Scrapy Cloud for teams with existing Scrapy spiders.
What it doesn't give you is one number to budget against in advance. Zyte decides which of the five tiers a target site falls into, and the spread is wide: the same 1,000 requests can cost $0.06 or $16.08 depending on tier, monthly commitment, and whether the response is a plain HTTP body or browser-rendered, a 268x range inside one rate card.
Pricing: From $0.06 to $16.08 per 1,000 successful responses, depending on site-difficulty tier, monthly commitment, and HTTP versus browser-rendered responses. Zyte API is proprietary; Scrapy, maintained by the same team, is BSD-3-Clause with 64,000+ GitHub stars.
One adjacent tool is worth knowing if your pipeline needs search answers instead of page text. For AI answers specifically, cloro returns what ChatGPT, Perplexity, Gemini, Copilot and Google AI Overviews say for a prompt, as structured JSON with the cited sources. It is a search API rather than a page scraper, so it sits beside the tools above, not in place of them.
Side by Side
| Tool | Model | Entry price | Self-host | License |
|---|---|---|---|---|
| Firecrawl | Credits per page | $16/month billed yearly, $19 monthly (5,000 credits) | Yes (core) | AGPL-3.0 |
| Apify | Compute units | $19/month + pay-as-you-go | Via Crawlee library | Proprietary |
| Crawl4AI | Self-hosted, no meter | $0 | Yes | Apache-2.0 |
| Bright Data | Per successful record | $0.75-$1.00/1,000 | No | Proprietary |
| Zyte | Per successful response, by tier | $0.06-$16.08/1,000 | No (Scrapy is) | Proprietary |
| cloro | Credits per search query | Free 500 credits, then $30/month | Not listed | Proprietary |
How to Choose Without Migrating Twice
- Classify your actual targets first, not a hypothetical page count. Sort your real domain list into simple, JavaScript-rendered, and CAPTCHA-or-login-walled sites. That split moves the price on every vendor above, not raw volume.
- Run the cost script above with your own numbers. Swap in your real count and difficulty mix, especially for Zyte, where tier alone swings the rate about 10x on HTTP responses and 16x on browser-rendered ones.
- Decide who owns the anti-bot problem. Renting it (Firecrawl, Bright Data, Zyte) means a bill that scales with difficulty; owning it (Crawl4AI) means a flat server cost plus a proxy budget you negotiate yourself the first time a site blocks your IP.
- Check the license before modifying and redistributing anything. AGPL-3.0 (Firecrawl's core) requires publishing your modifications if offered as a network service; Apache-2.0 (Crawl4AI, Crawlee) and BSD (Scrapy) don't.
- Test one real hard site before committing, not the vendor's demo. The advertised entry price describes the easiest tier, and the sites that made you consider a paid vendor are rarely in it.
Which One Should You Actually Use?
Building an AI agent or RAG pipeline, want Markdown out of the box: Firecrawl. The credit model is easy to reason about, JS rendering is included at the base rate, and the Research Index and deterministic JSON caching fit this use case directly.
Scraping thousands of sites at unpredictable scale: Apify's Actor Store or Bright Data. Apify if you're comfortable optimizing the actor code that drives your bill, Bright Data if you'd rather pay a flat per-record rate and let its ready-made scrapers do the work.
No budget, or the data can't leave your infrastructure: Crawl4AI, the only option here with no meter and no vendor relationship, at the cost of becoming your own anti-bot and proxy team.
Pay-as-you-go, no commitment, and you can tolerate wide per-request variance: Zyte. The $5 trial and 30-day window make it the cheapest way to find out what your sites actually cost before signing anything.
Already running Scrapy spiders: Scrapy Cloud, same team, rather than rewriting into a different format.
Conclusion
Firecrawl's star count and Apify's report point the same direction: this category grew because AI pipelines need it, not because scraping got easier. Apify retiring actor-rental pricing on October 1, 2026 in favor of event- and usage-based billing, and Firecrawl shipping an arXiv research index instead of just more scrape formats, both signal a market still figuring out what it's selling. Before renewing anything here, ask one question: are you billed for pages or for compute, and does that match how your workload grows.
Related DevToolLab Tools
- HTML Cleaner - strip inline styles and junk out of raw scraped HTML before it reaches your LLM's context window.
- JSON to CSV Converter - turn a JSON scrape result into a spreadsheet without writing a script for it.
- URL Parser - break a discovered URL into protocol, host, path and query params before your crawl scope decides whether to touch it.
- HTTP Request to cURL Converter - turn a captured API call from any of these vendors into a runnable curl command for debugging.
Related Guides
- Best RAG Platforms & Tools - where the pages a scraper pulls in get indexed and retrieved.
- Best AI Browser Automation Tools - the layer above this one, for when a workflow needs to click and navigate, not just extract.
- Best PDF Parsers for RAG - the same ingestion problem when the source is a PDF instead of a live page.
- Generative Engine Optimization (GEO) for Developers - making your own pages easy for an AI crawler to read instead of blocking it.
