API review

Firecrawl API review

Credit-based API that turns any URL or whole site into LLM-ready markdown/JSON: scrape, crawl, map, search, browser interact, file parse, monitors, plus a growing data-provider marketplace (Alexandria). Best for full-site URL inventories.

Verified 25 Oct 2026 · 57 endpoints listed · Official MCP server

What a call costs

The actions you pay for, as Firecrawl prices them in credits.

ActionCostPer
Scrape / crawl page1 creditpage
PDF parsing+1 creditPDF page
JSON (LLM extraction), question/query, highlights, audio, video, PII redaction, prompt-injection check+4 credits eachpage
Zero Data Retention+1 creditpage
Enhanced proxy+0 (1 credit total)page
Map1 credit (per call per billing doc; pricing HTML table says per page; measured per call)call
Search2 credits10 results
Interact2 credits (7 with prompt)browser minute
Show all 14 priced actionsHide the rest
ActionCostPer
Monitor1 credit (+1 per changed page judged; flat 7 for JSON/deterministic-extraction monitors)page per check
Threat protection scan2 creditsURL
LinkedIn profile/company (provider-routed)FullEnrich 5 / Data Legion base 10 / Apollo 30 / Data Legion premium 40 creditsURL
X.com post/profile (Grok API)30 credits (34 with JSON)request
Agent (preview)5 free runs/day, then dynamicrun
Research Index papersfreecall

Pricing, plan by plan

US dollars, as Firecrawl's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

Free tier 1,000 credits/month, no card, no rollover, no pay-as-you-go; keyless tier capped per IP per day

Free

$0

Free

1,000 credits/month (~1,000 pages or 500 searches)

API included
Plan details

No PAYGO: 402 when exhausted

Hobby

$19/mo

billed monthly

$16/mo

billed annually

5,000 credits/month

API included
Plan details

PAYGO 1,000 credits per $5

Standard

$99/mo

billed monthly

$83/mo

billed annually

100,000 credits/month

API included
Plan details

PAYGO 2,000 credits per $5

Growth

$399/mo

billed monthly

$333/mo

billed annually

500,000 credits/month

API included
Plan details

PAYGO 2,500 credits per $5

Scale

$749/mo

billed monthly

$599/mo

billed annually

1,000,000 credits/month (1-month rollover)

API included
Plan details

PAYGO 5,000 credits per $5

Enterprise

Custom quote

Custom credits, ZDR, SSO, SLA, 2-month rollover on annual

API included
Plan details

Custom

Annual billing totals: Hobby $190/yr, Standard $990/yr, Growth $3,990/yr, Scale $7,190/yr (page shows rounded $16/$83/$333/$599 per month). Pay-as-you-go needs a paid plan: $5 increments of 1,000 (Hobby) / 2,000 (Standard) / 2,500 (Growth) / 5,000 (Scale) credits up to a monthly limit you set; bought credits do not expire. 403/404 pages still cost 1 credit (effective 2026-09-04). Prices in USD (page shows a USD selector; no INR shown from our IP).

Rate limits

Per team (shared across keys).

LimitFreeHobbyStandardGrowthScaleKeyless
Limit2 concurrent browsers; /scrape,/map,/search 10/min; /crawl,/agent 2/min; 50,000 max queued5 browsers; 100/min; 20/min; 50,000 queued25 browsers; 500/min; 100/min; 50,000 queued50 browsers; 5,000/min; 1,000/min; 100,000 queued100 browsers; 10,000/min; 2,000/min; 200,000+ queuedSearch, Scrape, Parse (+Interact via SDK/CLI); daily request and credit caps per IP (numbers not published)
More on limitsLess

Two limits: requests/min per endpoint and concurrent browsers (the real bottleneck). Queue waits count against request timeout; queued jobs time out after 48h. Status endpoints (/crawl/status, /agent/status) have far higher limits (Free 500 up to Scale 500,000/min). /interact Free 2 / Hobby 20 / Standard 100 / Growth 1,000 / Scale 1,500 per min; /interact/{id}/execute 10/100/500/5,000/7,500. Docs disagree on whether batch scrape shares the /crawl or the /scrape limit. No rate-limit headers were returned in our live scrape (only X-Response-Time).

How to get an API key

Firecrawl uses API key. The steps below follow Firecrawl's own docs.

  1. Create a Firecrawl account. The Free plan includes API access.
  2. Sign up at firecrawl.dev (free, no card); keyless mode for Search/Scrape/Parse/Interact capped per IP per day
  3. Send it with every request: header: Authorization: Bearer fc-<key>.
  4. Make a first call: Scrape one URL to markdown/HTML/JSON/screenshot etc.; optional actions and LLM extraction. Keep the key in an environment variable, never in the command.
    curl -X POST "https://api.firecrawl.dev/v2/scrape" \
      -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{}'

Where the docs live

WhatWhere
Documentationdocs.firecrawl.dev
API referencedocs.firecrawl.dev/api-reference/v2-introduction
OpenAPI specdocs.firecrawl.dev/api-reference/v2-openapi.json
llms.txtdocs.firecrawl.dev/llms.txt
Changelogfirecrawl.dev/changelog
Base URLhttps://api.firecrawl.dev/v2
MCP serverhttps://mcp.firecrawl.dev/v2/mcp
SDKsPython (firecrawl / firecrawl-py), Node (firecrawl), Go, Rust, Java, Elixir, .NET, PHP, Ruby, CLI

Strengths and limits

Where it fits

  • Full-site URL inventories (/map up to 100,000 URLs for 1 credit)
  • Crawling/scraping company websites to clean markdown for LLM qualification
  • Batch scraping thousands of homepages with webhooks
  • JS-heavy pages needing actions or a live browser (/interact)
  • Change monitoring of pricing/careers pages (/monitor)

Where it falls short

  • Cheap LinkedIn data (LinkedIn URLs are routed to Apollo/Data Legion/FullEnrich at 5-40 credits each)
  • Raw X/Twitter data at scale (Grok-processed, 30 credits per request)
  • Free-tier production work (no pay-as-you-go, hard 402 at 1,000 credits)

Worth knowing

  • Monitors that use JSON / deterministic extraction bill a flat 7 credits per page per check, not 1; judged changed pages add +1. Sources: firecrawl.dev/pricing; docs.firecrawl.dev/features/monitor
  • Pages that return 403/404 are still charged 1 credit; only a scrape with no document is free; check metadata.statusCode and stop retrying blocked URLs.
  • Format surcharges stack: JSON + PII redaction = 9 credits per page.
  • LinkedIn /in/ and /company/ URLs are silently routed to Apollo / Data Legion / FullEnrich and cost 5-40 credits, not 1.
  • x.com URLs go through xAI Grok: 30 credits per request and AI-processed output, not raw HTML.
7 moreShow fewer
  • Conflict in vendor docs: the pricing page HTML (table 'Map 1 / page', 'credit unit = 1 page on scrape, crawl or map') and its FAQ say per page, while the pricing markdown table and billing doc say '1 credit per call'. Our measurement supports per call. Re-checked 2026-10-25.
  • Map: v2 default limit is 5,000, maximum 100,000 (OpenAPI); our rule is always send limit 100000.
  • Crawl with no limit defaults to 10,000 pages; credits are billed as pages finish, so cost can appear minutes or hours later.
  • Free plan has no pay-as-you-go: hard 402 at 1,000 credits. Plan credits do not roll over except Scale (1 month) and annual Enterprise (2 months).
  • Upgrades charge the full new price immediately with no proration and reset the billing cycle.
  • Changed since our 16 Aug 2026 notes: enhanced proxy was 5 credits, now +0 (1 credit); Standard concurrency was 50 browsers, now 25; Growth 100 -> 50.
  • Concurrency, not RPM, is the bottleneck; queue time counts against the request timeout.

Our take

We use Firecrawl for full URL inventories of websites and to scrape a company's homepage when its LinkedIn description is not enough to qualify the company. A map call costs 1 credit however many URLs it returns (24,797 URLs for 1 credit on one site), and the default limit of 100 silently truncates the list, so we always send the maximum limit of 100,000. Before a large scrape we test the proxy mode on 5 pages first; on one job that cut the credit estimate from 24,270 to 8,542, since the enhanced proxy costs 5 credits a page against 1 for basic.

Who should use it

Use Firecrawl for
Full-site URL inventories (/map up to 100,000 URLs for 1 credit)
Look elsewhere for
Cheap LinkedIn data (LinkedIn URLs are routed to Apollo/Data Legion/FullEnrich at 5-40 credits each)

If Firecrawl is not the answer

Other Research and scraping tools in this directory, each with its own review.

Before you build

Four things to settle first, each read off Firecrawl's own pages.

  • Confirm the API is on your planThe Free plan includes API access. Free tier: 1,000 credits/month, no card, no rollover, no pay-as-you-go.
  • Keep the key out of your codeAPI key. It is sent as: header: Authorization: Bearer fc-<key>.
  • Design around the rate limitPer team (shared across keys).
  • Know the catch before you scaleMonitors that use JSON / deterministic extraction bill a flat 7 credits per page per check, not 1; judged changed pages add +1. Sources: firecrawl.dev/pricing; docs.firecrawl.dev/features/monitor

Want us to build it for you?

Tell us what you want Firecrawl to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

Read from firecrawl.dev/pricing, docs.firecrawl.dev/api-reference/v2-introduction and docs.firecrawl.dev/rate-limits. Verified 25 Oct 2026.

All 57 endpointsFor developers: method, path, what it does and what it costs.

Base URL: api.firecrawl.dev/v2

Bulk and async: POST /batch/scrape (async, webhook), /crawl with limit up to 10,000 default; billing is asynchronous as pages complete

Webhooks: Yes: crawl, batch scrape, agent and monitor webhooks (started/page/completed/failed events), signed endpoints

57 endpoints
MethodPathWhat it doesCost
POST/scrapeScrape one URL to markdown/HTML/JSON/screenshot etc.; optional actions and LLM extraction1 credit/page; +1/PDF page; +4 json, question/query, highlights, audio, video, redactPII, checkPromptInjection, lockdown hit; +1 ZDR; enhanced proxy +0; LinkedIn profile/company URLs billed at provider rates (5-40 credits); x.com URLs 30 credits
GETasync/scrape/{jobId}Status of a scrape jobNot stated
POST/scrape/{jobId}/interactInteract with the browser session of a scrape job2 credits/browser minute (7 with prompt), 1-minute minimum
DELETE/scrape/{jobId}/interactStop the interactive browser sessionNot stated
POST/parseUpload and parse a file (PDF, Word, spreadsheet) to markdown/JSON1 credit/page + format surcharges
GET/parse/formatsList supported parse formatsfree
POSTasync/batch/scrapeScrape many URLs asynchronously (webhook optional)scrape cost per page, billed as each page completes
GETasync/batch/scrape/{id}Batch scrape status/resultsfree (polling not charged)
DELETE/batch/scrape/{id}Cancel batch scrapeNot stated
GET/batch/scrape/{id}/errorsBatch scrape errorsNot stated
POSTasync/crawlCrawl a site by following links1 credit/page + scrape option surcharges; default limit 10,000 pages
GETasync/crawl/{id}Crawl status/resultsfree
DELETE/crawl/{id}Cancel crawlNot stated
GET/crawl/{id}/errorsCrawl errorsNot stated
POST/crawl/params-previewPreview crawl params from a natural-language promptNot stated
GET/crawl/activeList active crawls for the teamNot stated
POST/mapList a site's URLs without scraping1 credit per call per billing doc and the pricing markdown; the pricing HTML table now says '1 / page'. Our measurement: 2,836 URLs = 1 credit, so per call. limit default 5,000, max 100,000. Sources: docs.firecrawl.dev/billing; firecrawl.dev/pricing
POSTasync/extractLLM structured extraction across pagesDynamic; shares /agent rate limit
GETasync/extract/{id}Extract job statusNot stated
POSTasync/agentStart autonomous agent data-extraction task (preview)5 free runs/day, then dynamic credits by agent tokens
GET/agentList agent runsNot stated
GETasync/agent/{jobId}Agent job statusNot stated
DELETE/agent/{jobId}Cancel agent jobNot stated
GET/agent/{jobId}/traceAgent execution traceNot stated
GET/agent/{jobId}/snapshots/{snapshotId}Agent output snapshotNot stated
POST/searchWeb search, optionally scraping results2 credits per 10 results (rounded up per 10) + scrape cost per scraped result
POST/search/{jobId}/feedbackFeedback on a search jobNot stated
GET/search/research/papersSearch Research Index papersfree
GET/search/research/papers/{id}Inspect or read a paperfree
GET/search/research/papers/{id}/similarRelated papersfree
GET/search/developerSearch the Developer Index (GET)Not stated
POST/search/developerSearch the Developer IndexNot stated
GET/search/govSearch the Government & Legal Index (GET)Not stated
POST/search/govSearch the Government & Legal IndexNot stated
POST/interactCreate a browser sandbox session2 credits/browser minute code-only, 7 with prompt, +2 for ZDR
GET/interactList interact sessionsNot stated
POST/interact/{sessionId}/executeExecute code in a sessionNot stated
DELETE/interact/{sessionId}Delete a sessionNot stated
POST/monitorCreate a page/site/web monitor with webhook alerts1 credit per page per check (base scrape/crawl); judging adds +1 credit per changed page judged; JSON / deterministic-extraction monitors bill a flat 7 credits per page per check instead (pricing page HTML). Source: docs.firecrawl.dev/billing; docs.firecrawl.dev/features/monitor; firecrawl.dev/pricing
GET/monitorList monitorsNot stated