Crawl4AI vs Spider in 2026: self-hosted vs managed
Crawl4AI is free Python you run yourself. Spider is a managed Rust crawler. The same 1,000 URLs on both, what self-hosting really costs, and code for each.
Crawl4AI is for engineers who want a crawler they can read, patch and run inside their own Python process, on their own machines, with no vendor in the loop. It is popular for good reason: 81,100 GitHub stars when we checked in September 2026, a Docker server, five extraction strategies and a markdown pipeline built for LLM consumption. Spider is a research lab for web data quality. Our product is a Rust crawler behind an API, and the question we care about is whether the page you get back is the page that was actually there, on every site, at any volume. Cost and speed are how we show our work.
The verdict. If your budget for external services is zero, your targets are cooperative, or your team already runs proxies and browser pools, Crawl4AI is a real production tool and you should use it. If your pipeline’s output quality depends on getting every page, including the ones behind common bot-protection services, and nobody on the team wants to own a scraping stack, Spider returns more pages, faster, and the managed bill usually comes in below the proxies alone. The benchmark numbers below are our own and not independently verified, so run your own corpus before you decide. The compare page covers the rest of the field.
Side by side
| Feature | Spider | Crawl4AI |
|---|---|---|
| Pricing model | Usage: $1/GB plus $0.0001 per CPU minute, credits never expire | Free software; you pay for compute, proxies and LLM tokens |
| Entry price | Pay as you go from $1 in credits; Unlimited concurrency from $40/mo | $0 license; Cloud API in closed beta with no published price |
| Cost at 100K pages | About $8 to $15 in smart mode | $0 license plus your infrastructure |
| License | MIT (spider-rs/spider) | Apache-2.0 with an attribution clause |
| Language | Rust | Python |
| Self-host | Yes, the crawler is the open source crate | Yes, the only GA option (pip or Docker) |
| MCP server | Yes | Yes, built into the Docker server (SSE and WebSocket) |
| SDKs | Python, JavaScript, Rust, Go, CLI | Python |
| Crawl mode | Synchronous or streamed as JSONL | In-process async; Docker server adds async jobs with webhooks |
| Output formats | Markdown, commonmark, text, XML, raw HTML, bytes; JSON, JSONL, CSV or XML responses | Markdown (raw and fit), HTML, JSON, screenshot, PDF |
What each tool is
Crawl4AI is an async Python framework built on Playwright. You install it with pip or run the unclecode/crawl4ai Docker image on amd64 or arm64. Version 0.9.0 turned auth on by default and binds the server to loopback unless you set a token; 0.9.3, the latest release as of September 2026, was a security release covering five coordinated-disclosure advisories. The Docker server exposes /crawl, /html, /screenshot, /pdf and /execute_js, plus async /crawl/job and /llm/job endpoints with webhooks, and an MCP server at /mcp/sse and /mcp/ws. Extraction comes from LLMExtractionStrategy over any LiteLLM provider, JsonCssExtractionStrategy for selector-based schemas, table extraction, and BM25 or cosine content filters. The license is Apache-2.0 with a clause requiring the notice “This product includes software developed by UncleCode as part of the Crawl4AI project” in derived work.
A Cloud API is listed on Crawl4AI’s docs as a closed beta with access through a form. No pricing is printed, and a third-party review from August 2026 says the same, so anything you read quoting Crawl4AI cloud prices is a guess.
Spider is a managed API backed by a Rust crawler. You send a request and get back markdown, JSON, screenshots or structured data. Proxy rotation, browser rendering when a page needs it, and scaling all happen on our infrastructure. The crawler itself is the MIT-licensed spider crate on GitHub, with SDKs for Python, JavaScript, Rust and Go and a CLI.
Pricing
Crawl4AI has no price, as of September 2026, and the project’s own site has no pricing page; the docs home is where the closed-beta notice lives. That makes it the cheapest tool in this series on paper and the hardest to budget in practice, because the cost moves to three lines you own.
The first is compute. Each browser context in Playwright holds a few hundred megabytes, so the concurrency you can run is bounded by RAM before Python’s asyncio becomes a limit. The second is proxies. Crawl4AI bundles none, and on sites behind bot protection a datacenter IP gets blocked, so you end up buying residential bandwidth by the gigabyte from someone. The third is time: setting up the browser pool, rotation, retries and monitoring, then keeping it working as targets change and Chromium updates land. Whether that adds up to more or less than a managed API depends on how many pages you fetch, how hostile the targets are, and what an hour of your engineers costs. Below about 50,000 pages a month on friendly sites it is often close to free. Once proxies enter the picture, the proxy bill alone tends to exceed what Spider would charge for the same pages.
Spider bills $1 per GB transferred and $0.0001 per CPU minute. Rendering rolls into compute, standard proxy rotation is included, and failed requests cost nothing. 100,000 pages in smart mode is about $8 to $15; 10,000 pages in HTTP mode is around $0.80 to $1.00; a million pages in chrome mode with markdown and metadata is about $80 to $160. The pricing guide breaks those bands down by request mode. If you prefer a fixed bill, Unlimited sells concurrency from $40 a month.
The same 1,000 URLs on both
We ran Spider, Crawl4AI and Firecrawl over a 1,000-URL corpus in February 2026, split across static pages, JavaScript-heavy apps and sites behind common bot-protection services. Method and per-tier results are in the benchmark post. These are our own measurements, not independently verified.
| Metric | Spider | Crawl4AI |
|---|---|---|
| Success rate | 99.9% | 89.7% |
| Corpus average throughput | 74 pages/s | 12 pages/s |
| Static HTML throughput | 182 pages/s | 19 pages/s |
| RAG recall@5 | 91.5% | 84.5% |
The 10 point success gap is 103 pages per 1,000, and nearly all of it comes from the protected tier, where Crawl4AI ran without residential proxies configured and dropped 28% of URLs. That is the honest reading: the framework was not broken, it was unarmed. Add a paid proxy pool and its protected-site rate would rise, and so would its cost. In a retrieval pipeline each missing page is a chunk that never reaches the vector store and a question the model answers from thin air. That gap is why we care about completeness first and treat throughput as a nice side effect of not opening a browser for pages that do not need one.
Where Crawl4AI wins
It costs nothing to start. Install it, write a script, get markdown. No API key, no billing, no vendor risk, which matters in a prototype and matters more in a research setting where a procurement form is a week of delay.
You own the browser. If a workflow needs Playwright-level control, per-site proxy rules, custom JavaScript before extraction, or a specific Chromium configuration, Crawl4AI hands you the object and gets out of the way. Spider’s browser sessions cover a lot of that, but they are our browser, not yours.
It slots into infrastructure you already run. Teams with proxy pools, browser farms and monitoring add Crawl4AI as one more tool instead of adopting a platform.
The extraction toolkit is thoughtful. Five strategies, an LLM path that works with any LiteLLM provider, and “fit” markdown that trims boilerplate before it reaches the model. And the MCP server is in the box: run the Docker image and an agent can talk to it on the same host.
Where Spider wins
Completeness on protected sites, with the numbers above and their caveat. Our infrastructure carries the proxy pools, browser fleet and retries, and you never configure any of it.
Throughput and cost at volume. 74 pages a second on the mixed corpus and 182 on static pages, for a bill that follows usage. A spiky workload, say a news monitor that fetches 1,000 pages on a quiet day and 50,000 when a story breaks, does not need a machine sized for the peak. Every account gets 10,000 requests per minute by default.
No stack to maintain. Chromium updates, proxy churn and site changes are our problem. Your engineers stay on the product that consumes the data.
More languages and more formats. SDKs in Python, JavaScript, Rust and Go plus a CLI, and one return_format parameter that yields markdown, commonmark, text, XML, raw HTML or bytes, with JSON, JSONL, CSV or XML response bodies.
Migration: the same crawl in both
Crawl a docs site, follow links two levels deep, stop at 50 pages, print the markdown size of each page.
Crawl4AI
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
from crawl4ai.deep_crawling import BFSDeepCrawlStrategy
async def main():
browser = BrowserConfig(headless=True)
run = CrawlerRunConfig(
deep_crawl_strategy=BFSDeepCrawlStrategy(max_depth=2, max_pages=50),
)
async with AsyncWebCrawler(config=browser) as crawler:
results = await crawler.arun("https://spider.cloud/docs/", config=run)
for page in results:
print(f"{page.url}: {len(page.markdown.raw_markdown)} chars")
asyncio.run(main())Spider
from spider import Spider
import os
client = Spider(api_key=os.getenv("SPIDER_API_KEY"))
pages = client.crawl_url(
"https://spider.cloud/docs/",
params={
"limit": 50,
"depth": 2,
"return_format": "markdown",
"request": "smart",
},
)
for page in pages:
print(f"{page['url']}: {len(page.get('content', ''))} chars")Crawl4AI runs the browser on your machine and hands back result objects in-process. Spider makes one HTTP call, does the link discovery, deduplication and rendering on our side, and returns the pages in the response or streams them as JSONL. Both scripts print the same thing. The parameters for depth, limits, formats and streaming are on the crawl endpoint docs.
When to pick which
Pick Crawl4AI when you want full control of the browser, you have no budget for external APIs, your targets are cooperative, or your team already owns scraping infrastructure and wants a library rather than a platform. Pick it too for anything that must stay inside your own network.
Pick Spider when success rate and freshness are product requirements, when targets include protected sites and you do not want to source proxies, when the workload is spiky or large, or when the team’s strength is the AI product and not the plumbing under it. If you are also weighing a managed TypeScript option, Spider vs Firecrawl runs the same corpus against it, and Spider vs Jina Reader covers the single-URL case. The best Firecrawl alternatives roundup puts all three next to each other.
Crawl4AI has earned its stars. The question that decides it is whether your team’s hours are better spent running a crawler or building the thing that reads its output. Take a page you need, run it through the playground, and compare it to what your Crawl4AI script returns for the same URL.
Frequently asked questions
Is Crawl4AI free?
Yes. Crawl4AI is open source under Apache-2.0 with an attribution clause, and there is no license fee at any volume. What you pay for is the machine it runs on, proxies if your targets block datacenter traffic, and any LLM tokens its extraction strategies use.
Does Crawl4AI have a cloud API?
Crawl4AI's docs list a Cloud API in closed beta with access through a form and no published pricing, as of September 2026. Until it opens, the Docker server on your own hardware is the only way to run it.
Does Crawl4AI include proxies?
No. Crawl4AI bundles no proxy pool. You supply your own proxies and rotation, which is where most of the real cost of a self-hosted crawler ends up once the targets include protected sites.
Is Crawl4AI managed or self-hosted only?
Self-hosted only today. You pip install the library or run the unclecode/crawl4ai Docker image, which since 0.9.0 requires auth by default and binds to loopback unless you set a token.
Which is better for RAG pipelines, Crawl4AI or Spider?
On our 1,000-URL benchmark Spider returned 99.9% of pages against Crawl4AI's 89.7%, with RAG recall@5 of 91.5% versus 84.5%. Those are our own numbers, not independently verified. Crawl4AI wins if you need to keep everything in-process in Python or your budget for external APIs is zero.
Sources
Keep reading
8 best Apify alternatives in 2026 (pricing, benchmarks)
Eight Apify alternatives compared on September 2026 pricing, cost at 100,000 pages, license and MCP support, with where each one falls short.
8 best Firecrawl alternatives in 2026 (pricing, benchmarks)
Eight Firecrawl alternatives with September 2026 pricing, cost at 100K pages, license, MCP support, and where each one falls short, including Spider.
8 best ScrapingBee alternatives in 2026 (pricing compared)
Eight ScrapingBee alternatives with September 2026 pricing, credit multipliers, cost at 100K pages, MCP support and where each falls short, including Spider.
Run a page you already scrape
Paste a URL into the playground and read the markdown Spider gives back for it. Keyless runs work without an account, capped at 25 a day.