← Back to all agents
Research Open Source
Firecrawl
Open-source engine that turns the web into clean data for LLMs and agents.
Our take
The backbone of most web-research agents — if your agent reads the web, it likely uses this underneath.
What it is
Firecrawl is an open-source web scraper designed for LLMs. Given a URL, it returns clean Markdown or structured JSON — handling JavaScript rendering, anti-bot measures, and crawling across many pages. It is widely used as a building block for RAG pipelines and research agents, and offers an MCP server that plugs into Claude, Cursor, and others.
Best for
- Turn any website into clean Markdown for RAG
- Crawl and extract data from many pages
- Power research agents that need fresh web data
Pros
- Open-source and self-hostable (AGPL-3.0)
- Handles JS-heavy sites and anti-bot issues
- Native MCP support for Claude / Cursor
Cons
- AGPL license is restrictive for some commercial uses
- Cloud pricing can climb for heavy crawls
Quick start
- Cloud: sign up at firecrawl.dev → grab the API key from the dashboard.
- Self-host: clone https://github.com/firecrawl/firecrawl, copy .env.example to .env, fill in OPENAI_API_KEY, then `docker compose up -d`.
- Python SDK: `pip install firecrawl-py`; Node: `npm i @mendable/firecrawl-js`.
- Single page: `client.scrape("https://example.com", formats=["markdown", "html"])` — get clean Markdown + structured JSON.
- Crawl: `client.crawl("https://docs.example.com", limit=100)` — walks subpages, returns Markdown; AI extraction uses your schema (Pydantic / Zod).
Sample input / output
Input
```python
from firecrawl import Firecrawl
from pydantic import BaseModel
class Product(BaseModel):
name: str
price: float
in_stock: bool
client = Firecrawl(api_key="fc-...")
result = client.extract(
urls=["https://shop.example.com/catalog"],
prompt="Extract all products with name, price, availability",
schema=Product,
)
print(result.json()) Output
```json
[
{ "name": "Wireless Earbuds Pro", "price": 89.99, "in_stock": true },
{ "name": "USB-C Hub 7-in-1", "price": 39.50, "in_stock": true },
{ "name": "Mechanical Keyboard", "price": 149.00, "in_stock": false }
]
```
One LLM call to a structured Pydantic schema, returns typed JSON — perfect for RAG pipelines. Benchmarks
GitHub stars 95.5k — github.com/firecrawl/firecrawl, March 2026
Output formats Markdown, HTML, JSON, PDF, screenshots
JS rendering Built-in Playwright fallback for SPA / dynamic sites
License AGPL-3.0 (self-host OK; SaaS resellers restricted)
Pricing
Free self-host; cloud from free tier
Underlying models
Self-hosting
Yes — Firecrawl can be self-hosted under the AGPL-3.0 license. This gives you full control over data and deployment.
Should you pick this?
Pick it if You're building a RAG pipeline or research agent that needs to ingest web pages reliably — Firecrawl is the de facto choice and the SDK is genuinely one-line.
Skip it if You need browser automation (clicking, filling forms) — for that, Playwright or Browser Use are the right layer. Firecrawl can be combined with either.