Crawl4AI vs Firecrawl comes down to who runs the crawler. Crawl4AI is a free, open-source Python library you host and scale yourself; Firecrawl is a hosted API that does the work for you and bills in monthly credits. Scrape.ly beats both for most teams: it runs the crawl for you like Firecrawl, charges $0.50 per 1,000 pages (less than any Firecrawl monthly plan works out to), includes $5 of free usage every month, and puts 568 ready-made scrapers behind one MCP server for your agents.
Below: what each tool is, how they compare on the dimensions that decide real projects, worked costs at 10,000 and 100,000 pages, and how to move a Crawl4AI or Firecrawl pipeline to Scrape.ly. Every Crawl4AI and Firecrawl fact comes from their own docs, pricing pages and repositories, checked on 23 October 2026.
Crawl4AI vs Firecrawl at a glance
| Crawl4AI | Firecrawl | Scrape.ly | |
|---|---|---|---|
| What it is | Open-source Python library, CLI and Docker server | Hosted web-to-Markdown API | Cloud platform: Website Content Crawler plus a 568-Actor Store |
| Who runs browsers, proxies and scaling | You | Firecrawl | Scrape.ly |
| Price to crawl 1,000 pages to Markdown | Free software; your servers and proxies | 1 credit per page: $0.75 to $3.80 per 1,000 on monthly plans | $0.50 per 1,000 plus usage ($0.58 all-in on our run) |
| Free tier | Unlimited self-hosted; Cloud has 1,000 credits a month | 1,000 credits a month | $5 of usage every month, no card: about 8,000 pages |
| Structured JSON | CSS and XPath schemas free; LLM extraction with your key | JSON format adds 4 credits per page | Structured Data Extractor at $1 per 1,000 pages; Actors with fixed output fields |
| MCP for agents | Self-hosted server over SSE or WebSocket; hosted Cloud endpoint | Hosted, with OAuth, API key or a 3-tool keyless tier | Hosted, OAuth or token, any Store Actor |
| Spending control | Your infrastructure bill | Monthly pay-as-you-go limit, per-key credit limits | Prepaid balance, a dollar cap per run, scoped keys with daily charge limits |
| License | Apache 2.0 | AGPL-3.0 core; hosted service commercial | Hosted platform; MCP server open source |
Firecrawl's per-1,000 range divides each monthly plan price by its credits: Hobby is $19 for 5,000 ($3.80 per 1,000) and Scale is $749 for 1,000,000 ($0.75 per 1,000).
Crawl4AI: the open-source library
Crawl4AI describes itself as "the open-source web crawler for LLMs and AI agents". Version 0.9.5 shipped on 14 October 2026 under the Apache 2.0 license and needs Python 3.10 or newer. You install it with pip install -U crawl4ai, run crawl4ai-setup to download a Playwright browser, and crawl from your own code:
import asyncio
from crawl4ai import AsyncWebCrawler
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(url="https://books.toscrape.com/")
print(len(result.markdown), "characters of Markdown")
asyncio.run(main())We ran that on 23 October 2026 and got 13,476 characters of Markdown in about 3.5 seconds, browser start-up included. The library covers a lot: filtered "fit" Markdown, CSS, XPath and regex extraction, LLM extraction with any LLM provider, BFS, DFS and best-first deep crawls, sessions, proxies and a stealth mode. A Docker server adds a REST API, a dashboard and MCP endpoints. Our Crawl4AI tutorial walks through every one of those with tested code.
The project also runs Crawl4AI Cloud, a hosted API with /scrape, /extract, /search, /serp and /answer endpoints: 1,000 free credits a month at 10 requests a minute, and paid plans from $10 a month. Its own docs call it a soft launch, where "prices and the free credit can change while we learn".
Best for: Python developers who want to own the crawler code and run it on their own machines.
Firecrawl: the hosted API
Firecrawl turns URLs into Markdown, HTML or JSON through hosted endpoints: scrape, crawl, map, search, interact, monitor and agent. You send a request and get the document back. The core is open source under AGPL-3.0 with a self-hosting guide, and the hosted service is what most teams use.
Its plans, billed monthly:
| Plan | Price per month | Credits per month | Concurrent browsers |
|---|---|---|---|
| Free | $0 | 1,000 | 2 |
| Hobby | $19 | 5,000 | 5 |
| Standard | $99 | 100,000 | 25 |
| Growth | $399 | 500,000 | 50 |
| Scale | $749 | 1,000,000 | 100 |
Scrape and crawl cost 1 credit per page. Per Firecrawl's billing docs, JSON extraction adds 4 credits per page, PII redaction adds 4, and modifiers stack. A page that comes back 403 or 404 is still returned as a document and costs 1 credit. Paid plans can buy more through pay-as-you-go in $5 increments: 1,000 credits on Hobby, 2,000 on Standard, 2,500 on Growth and 5,000 on Scale.
Best for: teams that want a hosted URL-to-Markdown API and are fine buying credits in plan-sized blocks.
Setup and maintenance
This is the biggest split between the two. With Crawl4AI, pip install is the easy part; production means you run the browser fleet, size the machines, buy and rotate proxies, queue and retry jobs, schedule recurring crawls and store the results. The Docker server needs at least 4 GB of RAM per container, per its self-hosting guide, and since version 0.9.0 it won't answer outside its container until you set an API token.
Firecrawl removes that work: an API key and an HTTP call. Scrape.ly removes it too, and adds what a hosted API alone doesn't give you: schedules, webhooks, exports to JSON, CSV or Excel, saved inputs and automations that deliver results to Slack, email or Google Sheets.
Price at 10,000 and 100,000 pages
Crawling pages to Markdown, at each vendor's published rates:
| Pages per month | Crawl4AI (self-hosted) | Firecrawl | Scrape.ly |
|---|---|---|---|
| 10,000 | Free software, plus servers, proxies and your time | $44: Hobby $19 plus 5,000 pay-as-you-go credits ($25) | About $6.15 of usage, inside Starter's $19 included credit |
| 100,000 | Free software, plus servers, proxies and your time | $99: Standard | About $61.50: Starter $19 plus $42.50 of extra credit |
| 10,000 as structured JSON | Your LLM tokens, or free CSS schemas | 50,000 credits: Standard, $99 | Structured Data Extractor: $10 in page fees for schema.org data |
The Scrape.ly figures come from a real crawl, priced at Starter-plan rates: our 10-page run used 0.0019881 compute units and 0.00014368 GB of residential proxy on top of the $0.005 page fee, which is $0.0061 per 10 pages, or $0.615 per 1,000. Starter's monthly price is included as usage credit, and paid plans can add extra credit. The structured row assumes pages publish schema.org markup (products, recipes, articles, jobs, events), which the Structured Data Extractor reads without an LLM at $0.001 per page.
Extraction: Markdown, JSON and site-specific data
All three produce clean Markdown with page metadata. For structured fields:
- Crawl4AI gives you
JsonCssExtractionStrategyfor stable layouts andLLMExtractionStrategyfor varied ones. You write and maintain the schemas, or pay your LLM provider per page. - Firecrawl has a JSON format with a prompt or schema, at 5 credits per page in total.
- Scrape.ly gives you two routes. The Structured Data Extractor reads JSON-LD, Microdata, RDFa and Open Graph into normalized fields such as price, rating, author and ingredients. And for sites that need a dedicated scraper, the Store has 568 Actors with fixed output fields: Google Maps places, Amazon products, job listings, reviews and more.
MCP and AI agents
Both tools talk to agents. Crawl4AI's Docker server exposes MCP over SSE at /mcp/sse with tools such as md, crawl and screenshot, and Crawl4AI Cloud has a hosted endpoint. Firecrawl's hosted server at https://mcp.firecrawl.dev/v2/mcp lists 27 tools in its full profile; without a key, its keyless tier exposes only scrape, search and parse, rate-limited.
The Scrape.ly MCP server at https://api.scrape.ly/mcp signs in with OAuth and gives the agent search-actors, fetch-actor-details, call-actor and get-actor-output. That small set reaches every Actor in the Store, so the same agent that crawls a docs site can also pull Google Maps places or YouTube comments. Each call-actor takes a maxTotalChargeUsd cap, and scoped API keys add a daily charge limit, so an agent can't run up a bill. The agents page has setup for every client.
The hosted option that beats both: Scrape.ly
Scrape.ly keeps what's good about each tool and drops the cost of each:
- Hosted, like Firecrawl. No browsers, proxies or servers to run. Server-rendered pages go over HTTP with a Chrome TLS fingerprint, and JavaScript-only pages open in Chrome automatically.
- Priced per page, below Firecrawl. The Website Content Crawler costs $0.50 per 1,000 crawled pages plus usage, from a prepaid balance.
- A bigger free tier. $5 of usage every month with no card covers about 8,000 pages, against 1,000 credits on Firecrawl Free.
- Crawl controls that stop runaways.
maxCrawlPages,maxResults,maxCrawlDepthand include and exclude globs, and a failed URL goes to anerrorsdataset while the crawl continues. - More than a crawler. 567 other Actors, a hosted anti-bot browser, residential proxies from $2 to $4 per GB, and Apify-compatible SDKs if you write your own.
A real crawl: 10 pages for $0.0058
We ran the Website Content Crawler on 22 October 2026 from the Store preset Python tutorial as markdown, with the page limit raised to 10. It saved 10 pages in 7.2 seconds:
| Page | Depth | HTTP | Markdown characters |
|---|---|---|---|
The Python Tutorial (/3/tutorial/) | 0 | 200 | 2,588 |
| 1 | 200 | 4,429 |
| 1 | 200 | 4,841 |
| 1 | 200 | 13,320 |
| 1 | 200 | 27,443 |
The run was charged $0.0058: $0.005 for 10 pages at $0.0005 each, plus $0.0008 of compute, residential proxy and dataset writes. That's $0.58 per 1,000 pages all-in at our account's rates, and about $0.62 at Free-plan rates.
How to move from Crawl4AI or Firecrawl to Scrape.ly
1. Map your settings.
| Crawl4AI | Firecrawl | Website Content Crawler |
|---|---|---|
max_pages | limit | maxCrawlPages, maxResults |
max_depth | maxDiscoveryDepth | maxCrawlDepth |
filter_chain URL patterns | includePaths, excludePaths | includeUrlGlobs, excludeUrlGlobs |
fit_markdown with a filter | onlyMainContent | htmlTransformer (readableText by default) |
2. Create a token. Sign up for free, create an API token under Settings → API & Integrations and export it as SCRAPELY_TOKEN.
3. Run the crawl. Small crawls finish in seconds, so the synchronous endpoint returns the pages as a JSON array:
curl -X POST "https://api.scrape.ly/v2/actors/querystone~website-content-crawler/run-sync-get-dataset-items" \
-H "Authorization: Bearer $SCRAPELY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": [{"url": "https://docs.python.org/3/tutorial/"}], "maxCrawlPages": 10, "maxResults": 10, "proxyConfiguration": {"useScrapelyProxy": true}}'For bigger crawls, use the Python client, which waits as long as the run takes:
import os
from scrapely_client import ScrapelyClient
client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")
run = client.actor("querystone/website-content-crawler").call(
run_input={
"startUrls": [{"url": "https://docs.python.org/3/tutorial/"}],
"maxCrawlPages": 500,
"proxyConfiguration": {"useScrapelyProxy": True},
}
)
for page in client.dataset(run.default_dataset_id).iterate_items():
print(page["url"], len(page.get("markdown") or ""))4. Point your agent at it. In Claude Code, run claude mcp add --transport http scrapely https://api.scrape.ly/mcp, sign in with /mcp, and ask: "Use scrapely to crawl docs.python.org/3/tutorial with querystone/website-content-crawler, 10 pages, with a maximum charge of $0.10."
For a Firecrawl-only comparison across every feature, see the full Scrape.ly vs Firecrawl comparison and our list of Firecrawl alternatives.
FAQ
Is Crawl4AI better than Firecrawl?
They solve different problems: Crawl4AI is free code you run and maintain, Firecrawl is a hosted API you pay for in credits. Scrape.ly beats both for most teams, because it's hosted like Firecrawl and costs less per page, with nothing for you to run.
Is Crawl4AI free?
Yes. The library, CLI and Docker server are free under the Apache 2.0 license; you pay for your own servers, proxies and any LLM tokens. Crawl4AI Cloud, the hosted version, includes 1,000 free credits a month.
Is Firecrawl open source?
Its core is open source under AGPL-3.0, and you can self-host it. The hosted service at firecrawl.dev is commercial, with plans from $19 a month for 5,000 credits.
Which is cheaper, Crawl4AI or Firecrawl?
Self-hosted Crawl4AI has no license cost, but servers, proxies and engineering time are on you. Firecrawl costs $0.75 to $3.80 per 1,000 pages on its monthly plans. Scrape.ly's Website Content Crawler costs $0.50 per 1,000 pages plus usage, with nothing to host.
Can I use Crawl4AI and Firecrawl with MCP?
Yes. Crawl4AI's Docker server exposes MCP over SSE and WebSocket, and Firecrawl has a hosted MCP server. Scrape.ly's hosted MCP server signs in with OAuth and gives your agent a crawler plus 567 other Actors, with a dollar cap on every run.
Does Firecrawl charge for failed pages?
A scrape that returns no result isn't charged, but a page that responds 403 or 404 is returned as a document and costs 1 credit, per Firecrawl's pricing FAQ.




