Firecrawl
Web scraping and crawling API built for AI agents — turn any site into clean markdown or structured data.
About
Firecrawl is a web data API and retrieval platform for AI agents: scrape pages to markdown/HTML/structured JSON, crawl whole sites with limits, map URLs, run agent-optimized search, and use LLM extraction with schemas. The official SDKs are TypeScript (@mendable/firecrawl-js) and Python (firecrawl-py), and there is an official MCP server so agents can drive it as a tool.
The core is open source (AGPL-3.0) and self-hostable via Docker Compose, but self-hosting is heavyweight (API + PostgreSQL + Redis + RabbitMQ + Playwright) and ships with auth off for the first run. The managed cloud adds the advanced anti-bot Fire-engine, screenshots, page actions, and agent/browser endpoints that the self-hosted stack lacks.
What it can do
- • Scrape any URL to markdown, HTML, or LLM-extracted structured data (v2 API)
- • Crawl entire sites with depth/limit controls, plus sitemap-style URL mapping
- • Agent-optimized web search with date and file-type filters
- • LLM extraction with zod/JSON schemas, batch scraping, and deep research endpoints
- • Official MCP server (firecrawl/firecrawl-mcp-server) — connect agents in one command
- • Self-hostable OSS core via Docker Compose or Kubernetes/Helm; cloud adds Fire-engine anti-bot, screenshots, and page actions
Setup
- Cloud (fastest): sign up at https://firecrawl.dev and create an API key (keys start with
fc-). - Install an SDK:
npm install @mendable/firecrawl-jsorpip install firecrawl-py. - Scrape a page:
```js
import Firecrawl from '@mendable/firecrawl-js';
const app = new Firecrawl({ apiKey: 'fc-YOUR_API_KEY' });
const res = await app.scrape('https://example.com', { formats: ['markdown'] });
```
- For crawl/extract: use
app.crawl(url, { limit: 100 })andapp.extract({ urls, prompt, schema })— both verified in the official JS SDK README. - Self-host (full control): clone the repo, check out a pinned release (docs verified against
v2.11.162), setPOSTGRES_PASSWORDin.env, rundocker compose up -d, thenPOST http://localhost:3002/v2/scrape. - Do not expose the self-hosted stack publicly without adding auth, network controls, and TLS — the docs' baseline has no authentication.
Prerequisites
Cloud: a Firecrawl API key. Self-host: Git, Docker Engine + Compose v2, curl, and enough RAM/disk for Postgres/Redis/RabbitMQ/Playwright. LLM extraction needs an OpenAI-compatible provider.
Use cases
Works with
Trust score — 9/10
Scored 9/10 (verified tier, metrics-v1). Evidence: 190,797 GitHub stars (log-scaled vs catalog peers); blended with ~5,339,910 monthly package downloads; last push 0d ago; 8 releases/12mo; 576 open issues. Manual review: repo moved mendable→firecrawl org; self-host ships auth-off; cloud-only anti-bot features; P95 latency claims provider-only. License: AGPL-3.0 (OSI; network copyleft).
★ 190,795 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 9.7/10
- Maintenance · recency, releases, issue load
- 9.3/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 8.0/10
- · 190,797 GitHub stars (log-scaled vs catalog peers)
- · blended with ~5,339,910 monthly package downloads
- · last push 0d ago; 8 releases/12mo; 576 open issues
- · manual review: repo moved mendable→firecrawl org; self-host ships auth-off; cloud-only anti-bot features; P95 latency claims provider-only
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.