Firecrawl

Listed at https://firecrawl.dev

Overall Rank #42 ⭐ Consider
❌ No mainland China direct endpoint. Firecrawl is headquartered in San Francisco (Y Combinator W23 batch) with a single-region API base URL at https://api.firecrawl.dev; the billing and rate-limits docs do not list any Asia-Pacific or China routing layer. China production traffic requires a proxy or transit, with typical 200-400 ms transpacific first-byte latency. The Free tier's 1,000 credits work behind a proxy for evaluation, but stable production traffic should either run a self-hosted Firecrawl deployment (Docker / Kubernetes) or sit behind a corporate proxy. | 🌍 International

💰 Token Pricing

TypePriceNote
Input 纯 credit-based 按 endpoint 与特性消耗,每月按 plan 重置额度;额外 credit 按 $5 一档购买(每档 1k–5k credits 不等)。从 firecrawl.dev/pricing 与 docs.firecrawl.dev/billing.md 验证(2026-08-29):Free 1k/月 $0;Hobby 5k/月 $19(年付 $16);Standard 100k/月 $83(年付 $99);Growth 500k/月 $333(年付 $399);Scale 1M/月 $599;Enterprise Custom。Credit 单价:Scrape / Crawl / Map 1 cr/page、Search 2 cr/10 results、Monitor 1 cr/page/check、Interact 2–7 cr/browser-minute。Batch Scrape / Extract 按子操作同价。Agent 5 daily runs free,超量动态计费。 per million tokens
Output 无独立 output 维度——Firecrawl 输出的是 scraped markdown / HTML / JSON 内容,计费仅按输入端的 credit 消耗与并发浏览器占用。出站数据本身不另收费;唯一例外是 Search 在 ZDR(zero-data-retention)企业档下按企业价另议。 per million tokens
Cache Read无 token 级 cache。Firecrawl 自带页面层 maxAge 缓存(默认 2 天 = 172800000 ms,命中率高的页面秒级返回),仅对新鲜 scrape 调用扣 1 credit;`maxAge: 0` 强制刷新,`storeInCache: false` 不入库。Discounted
💡 Free Credits: Permanent Free tier: 1,000 credits per month with no credit card required, full access to Scrape / Crawl / Map / Search / Batch Scrape / JSON mode and every other endpoint; 2 concurrent browsers and a 50,000 max queued jobs ceiling. Designed for evaluation and low-volume use; credits reset at the start of each month and do not roll over. Agent's 5-daily-free runs apply across every plan, including Free.

🤖 Supported Models (10)

Scrape (v2 /scrape) — convert any URL into clean markdown / HTML / structured JSON via the JSON-mode schema option; 1 credit per pageCrawl (v2 /crawl) — recursively crawl a website and return content for every linked page; 1 credit per page scrapedMap (v2 /map) — return every URL on a website without scraping content; 1 credit per callSearch (v2 /search) — search the web and optionally scrape results; 2 credits per 10 results (rounded up)Batch Scrape (/v2/batch/scrape) — scrape an explicit list of URLs in one concurrent job (sync + async modes); 1 credit per URLInteract (/v2/interact) — interactive browser sandbox with Playwright code or natural-language prompts; 2 credits/minute (Playwright) or 7 credits/minute (prompt-driven); 1-minute minimumMonitor (/v2/monitor) — schedule recurring page / website / web-scale checks and notify by webhook, email, or Slack; 1 credit per page per checkAgent (/v2/agent) — autonomous web research agent with optional JSON schema; 5 daily runs free, dynamic usage-based pricing beyondExtract (/v2/extract) — LLM-driven structured extraction across many URLs and URL patterns (batch sibling of JSON mode)JSON mode — embed `formats: [{type: "json", schema: {...}}]` directly in v2 /scrape to extract structured data with an OpenAI-compatible JSON schema

✨ Pros

  • v2 API covers nine endpoints in one stack — Scrape / Crawl / Map / Search / Batch Scrape / Extract / Interact / Monitor / Agent — no need to assemble multiple scraping tools
  • JSON mode (`formats: [{type: "json", schema: {...}}]`) returns OpenAI-format structured data on a single scrape call, eliminating a second parsing step
  • maxAge page cache defaults to 2 days: cache hits return in milliseconds (~10x speedup measured); `maxAge: 0` forces a fresh scrape, `storeInCache: false` skips persisting the result
  • Interact browser sandbox: dual Playwright-code or natural-language-prompt modes at 2–7 credits/minute with a 1-minute minimum
  • Monitor supports three target types — Page (known URL diffs), Website (scheduled full crawl), Web-scale (always-on search for new results) — with webhook + email + Slack notifications
  • Agent autonomous research: 5 daily runs free, then dynamic usage-based pricing; supports JSON schema output and composes with Extract
  • Self-hostable under AGPL-3.0: official Docker / Kubernetes images let enterprises avoid mainland-China latency and compliance gaps
  • MCP server support: the firecrawl-mcp-server exposes Scrape / Search / Parse keyless endpoints, with an official SKILL.md for one-line Claude Code / Cursor integration
  • Permanent Free tier with no credit card: 1,000 credits/month + 5 daily Agent runs — the lowest evaluation barrier among mainstream web-scraping APIs

⚠️ Cons

  • ×No mainland China endpoint: api.firecrawl.dev is single-region with 200-400 ms transpacific latency; stable production traffic should self-host
  • ×No token-level cache: only the page-level maxAge cache applies; high-frequency same-URL updates need manual maxAge + storeInCache management
  • ×Output not rate-limited but Input charges credits: Search bills 4 credits for 11 results (rounded up to 2-credit units), so high-frequency search accumulates costs fast
  • ×Free tier stops at 1k credits/month: tightly coupled to project timelines, month-end burst traffic can hit 429
  • ×Interact browser charges a 1-minute minimum: sub-minute probes still bill a full minute, hard to compress during debug
  • ×Monitor and Agent pricing is dynamic: monitor frequency and agent task volume directly drive credit consumption with no fixed cap
  • ×Self-hosted edition is AGPL-3.0: commercial forks or redistribution must open-source the fork; closed-source commercial usage needs the hosted edition or a separate commercial license
  • ×No affiliate program yet: apirank has no Firecrawl affiliate link live; sign up via the homepage
  • ×Not a general-purpose LLM API: Firecrawl is a scraping / crawling platform, not a chat completions / responses API; sits in a different lane than OpenAI / Anthropic

🎯 Best For

RAG engineers who need to turn entire sites or large URL batches into clean markdown; agent teams building web-scale monitors for compliance, pricing, news, hiring, or product-page diffs; product teams driving browsers via natural-language prompts for end-to-end web tests, form fills, or login-session interactions; agent developers who want to scrape the current page from inside Claude Code / Cursor / Windsurf via firecrawl-mcp-server; enterprises constrained by mainland-China latency or compliance (self-host the Firecrawl Docker / Kubernetes image); evaluation or personal projects (Free tier, 1k credits/month + 5 daily Agent runs, no credit card).

💰 Pricing & Plans

PlanMonthly CreditsConcurrent BrowsersMonthly Price (Monthly)Monthly Price (Yearly)Extra Credit Pack
Free1,0002$0— (no purchase)
Hobby5,0005$19/mo$16/mo$5 / 1,000 credits
Standard100,00025$99/mo (~$83 effective)$83/mo$5 / 2,000 credits
Growth500,00050$399/mo (~$333 effective)$333/mo$5 / 2,500 credits
Scale1,000,000100$599/mo$599/mo$5 / 5,000 credits
EnterpriseCustom100+Contact salesContact salesCustom + bulk discounts + ZDR Search
Credit cost — Scrape / Crawl / Map1 credit / page or callall plans
Credit cost — Batch Scrape / Extract1 credit / URLall plans
Credit cost — Search2 credits / 10 results (rounded up)all plans (ZDR custom for Enterprise)
Credit cost — Interact (Playwright code)2 credits / browser minute1-minute minimum
Credit cost — Interact (prompt-driven)7 credits / browser minute1-minute minimum
Credit cost — Monitor1 credit / page / checkall plans
Agent daily free runs5 / day, then dynamicapplies to every plan including Free
maxAge page cachedefault 2 days (172800000 ms)free on every plan

🔧 API & Developer Experience

  • API Style: REST + SDK wrappers; v2 endpoints live at https://api.firecrawl.dev/v2 (with backward-compatible /v1 surface still served). Official Python SDK `firecrawl` (PyPI), Node SDK `firecrawl-js` (npm), and a hosted MCP server `firecrawl-mcp-server` exposing Scrape / Search / Parse for Claude Code / Cursor / Windsurf. SDKs wrap the raw HTTP endpoints so most callers never touch curl.
  • Endpoints: POST /v2/scrape (single URL with formats array), POST /v2/crawl (recursively crawl a site with page limits, paths include/exclude, maxDepth), POST /v2/map (list every URL on a site), POST /v2/search (web search + optional scrape), POST /v2/batch/scrape (explicit URL list, sync + async modes), POST /v2/extract (LLM-driven extraction across many URLs / URL patterns), POST /v2/interact (browser sandbox with code or prompt), POST /v2/monitor (scheduled checks), POST /v2/agent (autonomous research), GET /v2/crawl/:id + /v2/batch/scrape/:id (status + results), GET /v2/usage (credit consumption), GET /v2/queue/status (concurrency headroom).
  • Auth: Bearer token (single `Authorization: Bearer fc-XXX` header) issued from the Firecrawl dashboard at firecrawl.dev/dashboard/api-keys. Team-scoped: all keys in one team share the same concurrent-browser limit and monthly credit pool. Enterprise adds optional IP restrictions (allowlist of CIDR ranges) and per-key endpoint / output-format restrictions, both enforced server-side.
  • JSON Mode (structured extraction): v2 API change: the v1 `jsonOptions` parameter is gone. Embed the schema directly in the formats array: `formats: [{type: "json", schema: {type: "object", properties: {...}, required: [...]}}]`. The OpenAI schema is used verbatim, so any JSON schema generated for an OpenAI tool call works without rewriting. Returns `{success: true, data: {...}}` where `data` already conforms to the schema; no second LLM call required.
  • Batch Scrape & Async: POST /v2/batch/scrape accepts a list of URLs and returns `{id, urls, status}`. Poll /v2/batch/scrape/:id for `{status, completed, total, data: [...]}`. Async mode streams results via webhook when the job finishes; sync mode blocks until the job completes (subject to the timeout parameter, max 48h in the concurrency queue). All scrape options (formats, JSON schema, headers, maxAge, onlyMainContent) pass through to each URL.
  • Interact (Browser Sandbox): POST /v2/interact accepts either `{url, code: "playwright code..."}` for code-driven sessions (2 credits/minute) or `{url, prompt: "click login, fill email, click submit"}` for prompt-driven sessions (7 credits/minute). 1-minute minimum on every session; billed per browser-minute. Returns `{success, code, execution_logs, interactive_screenshot, captures: [...]}`. Useful for login-walled scraping, JS-rendered SPAs, form submissions.
  • maxAge Page Cache: Set `maxAge` (milliseconds) on any scrape call to control cache freshness. Default 172800000 ms (2 days); cache hits return in milliseconds instead of seconds (~10x speedup). `maxAge: 0` forces fresh scrape (bypasses cache, slower). `storeInCache: false` returns the page but does not persist it to the cache (useful for one-off scrapes that should not influence other callers).
  • Monitor (Scheduled Checks): Three target types: `/monitor` for known URLs (single-page diff), `/monitor` for entire websites (scheduled full crawl), `/monitor` for web-scale (always-on search). Configure schedule (cron), optional plain-language goal, and notification channels (webhook, email, Slack). Credit cost is 1 credit / page / check. Bounty program (5,000 credits) rewards feedback on government / legal / regulatory / public-record sources.
  • Agent: POST /v2/agent with `{prompt, urls?, schema?}` runs an autonomous research agent that browses, searches, and synthesizes. 5 daily runs free on every plan including Free; usage-based pricing beyond. Supports JSON schema output and composes with Extract for multi-URL structured research. Useful for `find all products that match X and return price / SKU / stock` workflows that span multiple sites.
  • MCP Server: `npx -y firecrawl-mcp-server` exposes Scrape / Search / Parse to Claude Code / Cursor / Windsurf as native MCP tools. Hosted MCP keyless endpoint at `https://api.firecrawl.dev/mcp/sse` allows Scrape / Search / Parse without an API key (low rate limits). Full MCP server with all tools requires an account connection or API key. SKILL.md onboarding at firecrawl.dev/agent-onboarding/SKILL.md; WorkOS ID-JAG auth path for agent platforms that can mint one.
  • SDKs & Self-Hosting: Official Python (`pip install firecrawl`), Node (`npm install firecrawl`), Go (community), Rust (community). Self-hosted edition under AGPL-3.0 license: official Docker image + Kubernetes manifests at github.com/firecrawl/firecrawl, with Bring-Your-Own-Database (Postgres / Redis) and Bring-Your-Own-Queue support. Enterprise commercial license available for closed-source forks; pricing on contact.
  • Rate Limits & Concurrency: Per-team rate limits (requests/minute) cap request volume; concurrent-browser limits (2 / 5 / 25 / 50 / 100+ by plan) cap parallel jobs. Exceeding either returns 429. `GET /v2/queue/status` returns current availability before sending work. Max queued jobs = 50,000 on Free/Hobby/Standard, 100,000 on Growth, 200,000+ on Scale/Enterprise. Jobs in the queue wait up to 48h before timing out.

🕸️ Web Scraping at Production Scale

Firecrawl positions itself as the scraping layer for the agent era. Where raw HTML scraping breaks on JS-rendered SPAs, login-walled pages, and bot detection, Firecrawl bundles nine v2 endpoints behind one credit system: Scrape, Crawl, Map, Search, Batch Scrape, Extract, Interact for Playwright code or prompts, Monitor, and Agent. The v2 JSON mode collapses two-step workflows into one call by embedding an OpenAI schema in the formats array. The self-hosted AGPL-3.0 build gives enterprises a clean path around mainland-China latency. Firecrawl's hosted MCP server exposes Scrape / Search / Parse as native tools for Claude Code / Cursor / Windsurf — the first scraping tool designed for in-agent invocation.

🌐 Regional Availability & Latency

Firecrawl's hosted API runs from a single-region base URL at https://api.firecrawl.dev (US, San Francisco) with no documented Asia-Pacific or mainland China routing layer. North American and European production traffic sees single-digit tens of ms first-byte latency; mainland China requires a proxy or transit, with typical 200-400 ms transpacific first-byte latency. For enterprises with mainland China latency or data-residency requirements, the self-hosted AGPL-3.0 Docker / Kubernetes build runs entirely on the customer's infrastructure and removes the transpacific round trip. No ICP-licensed mainland China hosted endpoint as of August 2026, but the MCP server at api.firecrawl.dev/mcp/sse serves Scrape / Search / Parse keyless endpoints globally for evaluation. Agent-friendly onboarding at firecrawl.dev/agent-onboarding/SKILL.md handles CLI / browser auth, API key setup, and capability summary.