Firecrawl API: The Complete 2026 Guide to Endpoints and Pricing
An engineer on a four-person AI team wires the Firecrawl API into a retrieval pipeline on a Tuesday. By Friday it works. Three weeks later the prototype is real, the crawl runs nightly, and the bill has quietly moved from zero to a tier nobody chose on purpose.
That sequence is common, and it is not a complaint about Firecrawl. It is what happens when a good API is easy to start and the cost model only reveals itself under load. This guide is the reference that explains the whole picture before you hit it: every Firecrawl API endpoint, how authentication works, what a credit actually buys, where the rate limits sit, and what real workloads cost once they find their true size.
Every Firecrawl number below was checked directly against firecrawl.dev on May 22, 2026. Pricing pages move, so if you are reading this in a later quarter, click through and confirm. At the end, there is an honest look at a near-identical API that runs at half the price, because the cost question is the one this guide exists to answer.
What is the Firecrawl API?
The Firecrawl API is a REST service that turns web pages into clean, AI-ready data. You send it a URL, it fetches the page, renders any JavaScript, strips the navigation and ads and boilerplate, and returns structured markdown or JSON instead of raw HTML.
That last point is the reason it exists. A retrieval pipeline does not want a 400 KB HTML document full of script tags. It wants the article. Firecrawl does the fetch-render-clean step so your code receives text that is ready to chunk, embed, and store. The same service also crawls entire sites, maps their URL structure, runs web searches, and pulls named fields out of pages.
Firecrawl is one of the cleanest crawler APIs a developer can pick up in an afternoon. The documentation is well organized, the markdown output is genuinely good, and the endpoint design is sensible. It is the obvious first choice for a solo developer building a first RAG project or an internal proof of concept. The questions this guide answers are the ones that come after that first afternoon: how the endpoints fit together, and what the whole thing costs at production scale.
Firecrawl API endpoints at a glance
Firecrawl exposes five core endpoints. Each one solves a distinct shape of problem, and most teams end up using two or three of them together.
| Endpoint | Method | What it does | Typical use |
|---|---|---|---|
| /scrape | POST | One URL to markdown or JSON | Single-page extract for a RAG document |
| /crawl | POST | A whole site, asynchronously | Ingesting an entire docs site |
| /map | POST | A fast list of every URL on a site | Discovery before a selective crawl |
| /search | POST | Web search with full page content | Topic research feeding a model |
| /extract | POST | Structured fields via natural language | Pulling price, author, or specs |
The mental model is a funnel. Use /map to see what a site contains, /crawl to pull a whole section of it, /scrape for one page at a time, /search when you do not have URLs yet, and /extract when you want specific fields rather than the whole page. A documentation-ingestion job typically chains map then crawl. A monitoring job typically schedules scrape. A research agent leans on search.
How does Firecrawl API authentication work?
Firecrawl authenticates every request with a Bearer token in the Authorization header. You get the key from the dashboard after signing up, and it is prefixed with fc- so it is easy to recognize in logs and config.
A scrape call looks like this:
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H "Authorization: Bearer fc-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "formats": ["markdown"]}'
There is no OAuth dance, no token exchange, and no per-request signing. One static key per project, passed on every call. That simplicity is good for getting started and worth a security note: a key that leaks is a key that works, so keep it in a secrets manager rather than committed config, and rotate it if it is ever exposed. Treat the Firecrawl key the way you treat a database password.
How does the Firecrawl credit system work?
A Firecrawl credit is closer to a unit of compute than to a page. A plain scrape of a static page costs one credit. A page that needs full browser rendering, structured extraction, or routing through a tougher fetch path can consume more than one. The exact multiplier depends on the call, and Firecrawl's docs describe it per feature rather than as a flat table.
Three properties of the credit model decide your real bill:
- Credits reset monthly and do not roll over. Budget 100,000 credits, use 30,000 in a slow month, and the other 70,000 are gone on the first. You are buying a monthly ceiling, not a balance.
- One API call is not always one credit. A crawl that touches 5,000 pages with rendering enabled does not cost 5,000 credits if some pages need extra compute. Estimate with a margin.
- Overage is real but priced up. Crossing the cap does not stop your pipeline. It bills additional credits at the overage rate, which is higher per credit than the included allotment.
The practical takeaway: the headline price of a tier tells you the floor, not the bill. The bill is the floor plus whatever rendering and extraction multipliers your specific workload triggers. A team running mostly static documentation pages stays close to one-credit-per-page. A team scraping JavaScript-heavy product pages with structured extraction should plan for noticeably more.
What are the Firecrawl API rate limits?
Firecrawl enforces two limits at once: a rate limit on requests per minute and a concurrency limit on simultaneous in-flight requests. Cross either and the API returns HTTP 429. Both limits scale with the plan tier.
Concurrency is the one that quietly shapes your architecture. The Free tier allows 2 concurrent requests. Hobby allows 5. Standard jumps to 50. For a nightly crawl of 20,000 URLs, concurrency is the difference between a run that finishes during a coffee break and one that runs for hours. If your batch jobs feel slow, concurrency is usually the constraint, not raw speed.
The correct way to handle 429 responses is exponential backoff with jitter: wait, retry, and widen the wait each time. A production integration should treat 429 as normal traffic shaping rather than an error, because at scale you will see it. Build the backoff once and you stop thinking about it.
How do you crawl a whole site with the Firecrawl API?
Crawling a full site is asynchronous. You do not hold one HTTP connection open for the length of a 10,000-page job. Instead you submit the crawl, receive a job ID, and either poll the job status or receive a webhook when it finishes.
The flow has three steps:
- Submit. POST to
/crawlwith the start URL and options such as page limit, include and exclude path patterns, and crawl depth. - Track. Poll the returned job ID, or register a webhook so Firecrawl calls you when the crawl completes.
- Collect. Read the finished dataset of pages, each already converted to markdown or JSON.
This async pattern is correct and it is what every serious crawler API uses. The thing to design for is the webhook side: your endpoint needs to verify the request is genuinely from the crawler, return a fast 2xx, and do the heavy processing after acknowledging. A webhook that does 30 seconds of work before responding will look like a failure to the sender.
The cost question, stated plainly. Firecrawl's API design is sound. The reason teams start shopping around is the rate card. Hobby is $16 a month for 5,000 credits. The next step, Standard, is $83 for 100,000. Most production workloads land between those two, which means paying for Standard credits you do not yet use, or straining against the Hobby ceiling. The rest of this guide looks at an API with the same shape and exactly half the price at every tier.
The crawlcrawl API: the same shape, half the price
crawlcrawl is a crawler API built on the same core idea as Firecrawl: send a URL, get back clean markdown and structured signals, with single-page, whole-site, search, and extraction endpoints. The difference is the bill. Every paid tier is priced at exactly 50% of the matching Firecrawl tier, with the same monthly page allowance and the same concurrency. This section is the honest, detailed look, because a guide about the Firecrawl API should tell you what the realistic alternative actually does.
A request shape you already know
If you have written code against Firecrawl, the crawlcrawl API will feel familiar within minutes. It is a REST API with a Bearer key, JSON request bodies, and markdown-or-JSON responses. A single-page scrape is one POST. A whole-site crawl is one POST that returns a run ID you track asynchronously. The key is prefixed crk- and passed in the Authorization header exactly the way an fc- key is.
curl -X POST https://api.crawlcrawl.com/v1/scan \
-H "Authorization: Bearer crk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
For most teams, moving a working integration across is a change of base URL, key, and a light pass over field names. The conceptual model, fetch then render then clean then return, is identical. Migration is measured in hours, not a sprint.
Pricing: every tier at exactly half
This is the core of it. crawlcrawl mirrors Firecrawl's volume tiers one for one and charges 50% of the price. The page allowances and concurrency match, so the comparison is genuinely apples to apples rather than a repackaged plan ladder.
| Workload | Firecrawl | crawlcrawl | You pay |
|---|---|---|---|
| Free / evaluation | $0 · 1,000 pages | $0 · 1,500 pages | 50% more free pages |
| Entry paid | Hobby $16 · 5,000 | Pro $8 · 5,000 | 50% less |
| Production | Standard $83 · 100,000 | Studio $42 · 100,000 | 50% less |
| Mid-scale | Growth $333 · 500,000 | Agency $167 · 500,000 | 50% less |
| High volume | Scale $599 · 1,000,000 | Scale $300 · 1,000,000 | 50% less |
The number that matters most is the production line. A team running 100,000 pages a month pays $83 on Firecrawl Standard and $42 on crawlcrawl Studio. Over a year that is $996 against $504, a difference of $492 for the same page volume and the same 50 concurrent requests. For a mid-scale team on the 500,000-page tier, the annual gap is $1,992.
Endpoints that map one to one
Every job you do on the Firecrawl API has a direct crawlcrawl equivalent. There is no missing capability to design around.
| Firecrawl | crawlcrawl | Job |
|---|---|---|
| /scrape | POST /v1/scan | One URL to clean markdown |
| /crawl | POST /v1/crawls | A whole site, asynchronous |
| /map | Sitemap-mode crawl | Fast URL discovery |
| /search | POST /v1/cloud/search | Web search with page content |
| /extract | POST /v1/actors/extract-article | Structured fields from a page |
crawlcrawl also ships endpoints that go past the Firecrawl set, included at every paid tier rather than sold as add-ons: a diff endpoint that reports exactly what changed between two crawls of the same site, a link-graph endpoint, an orphan-page finder, and eight content-intelligence actors covering on-page audit, structured-data extraction, render-diff, internal-link mapping, and sitemap audit. A team that adopts crawlcrawl for the price tends to stay for the diff endpoint.
"We index documentation across forty vendor sites every week. crawlcrawl made it boring infrastructure, and that is the highest compliment I can give a tool." — Amit Tanwar, Founder, Networkers Home
Webhooks, idempotency, and scheduled monitors
Production crawling is not a single call, it is a recurring job, so the parts around the crawl matter as much as the crawl itself. crawlcrawl signs every webhook delivery with an HMAC header so your endpoint can verify the request genuinely came from the crawler before acting on it. Webhook events are filterable, so a monitor that only cares about changes can ask for just the change event.
Scheduled crawls are a first-class field, not a cron job you run yourself. You set a schedule on the crawl and crawlcrawl runs it, fires the webhook, and stores the dataset. Paired with the diff endpoint, a daily monitor delivers only the pages that actually changed since yesterday, which is the difference between a content team reviewing 40,000 pages and reviewing the 12 that moved.
Idempotency keys are supported on job submission, so a retry after a network blip does not create a duplicate crawl. These are the details that decide whether a pipeline is calm or noisy at 3 a.m., and they are included at every tier.
What you do not pay extra for
Every paid crawlcrawl tier includes the full feature set with no per-feature surcharge. JavaScript rendering, global routing across 190 or more countries, markdown output, structured-data extraction across schema.org and Open Graph and JSON-LD, HMAC-signed webhooks, scheduled crawls, dataset storage and retrieval, the diff endpoint, the search API, LLMs.txt generation, and all eight actor endpoints are in the box at Pro just as they are at Scale.
That matters for cost predictability. When features are bundled, your monthly bill is the tier price. When features are metered separately, the bill is the tier price plus a variable you discover at the end of the month. crawlcrawl's model is the first kind: pick the page volume you need, and the price on the table is the price you pay.
"We evaluated three crawlers before picking crawlcrawl. Structured-data extraction matters to us because we map customer-owned assets back to their security posture. Scheduled crawls plus webhooks gave us a live asset inventory with zero scripting. It paid for itself in the first month." — Rajesh Meta, Co-founder & CTO, Quick ZTNA
Getting a key and making the first call
Signing up takes the same shape as Firecrawl. Create an account, and a key is issued immediately with no credit card required on the free tier. The free tier is 1,500 pages a month, which is 50% more free volume than Firecrawl's 1,000, enough to run a real evaluation rather than a token one.
From key to first clean page is one curl command. From there the production endpoints, async crawls, webhooks, and scheduled monitors are the same REST surface, documented in full on the API reference. A team evaluating seriously can have a representative workload running the same afternoon they sign up.
Firecrawl API FAQ
Is the Firecrawl API free?
Firecrawl has a free tier with 1,000 credits per month and 2 concurrent requests, no credit card required. It is built for prototyping and evaluation. Any job that recurs daily moves past the free cap quickly, so production use needs a paid tier starting at Hobby ($16 per month). crawlcrawl's free tier is 1,500 pages a month for the same kind of evaluation.
What is the Firecrawl API used for?
It turns web pages into clean, structured data for AI applications. The common jobs are feeding RAG pipelines, extracting structured fields from pages, crawling entire sites for documentation ingestion, and monitoring pages for changes. It returns markdown and JSON rather than raw HTML, which is what makes it useful for model input.
How do I get a Firecrawl API key?
Sign up at firecrawl.dev, open the dashboard, and copy the key from the API Keys section. Firecrawl keys are prefixed fc- and passed in the Authorization header as a Bearer token. crawlcrawl issues a key the same way at signup, prefixed crk-, also with no credit card required on the free tier.
Is web scraping with the Firecrawl API legal?
Crawling publicly accessible pages is generally lawful in most jurisdictions, but it depends on the target site's terms of service, the data you collect, and your location. Respect robots.txt, avoid collecting personal data without a basis, and read each site's terms. The API is a tool; lawful use is the caller's responsibility.
What is the difference between scrape and crawl?
Scrape handles one URL and returns immediately with that page's content. Crawl handles a whole site or section, runs asynchronously, follows links up to a depth or page limit you set, and returns a dataset of many pages. Use scrape for a known page, crawl for a site you want in full.
How do I handle Firecrawl API rate limits?
Firecrawl returns HTTP 429 when you exceed the per-minute rate or the concurrency limit for your tier. Handle it with exponential backoff and jitter: wait, retry, and widen the wait each time. Treat 429 as normal traffic shaping at scale rather than an error condition.
Is there a cheaper alternative to the Firecrawl API?
Yes. crawlcrawl offers a near-identical REST API at exactly half the price on every tier: $8 against Hobby's $16, $42 against Standard's $83, $167 against Growth's $333, and $300 against Scale's $599. Page allowances and concurrency match tier for tier, and migration is usually a few hours of work.
Which crawler API should you choose?
If you are a solo developer wiring up a first RAG weekend project, the Firecrawl free tier is a clean place to start and the docs will not slow you down. If you are evaluating for a team and you expect a recurring production workload, run the same test against the crawlcrawl free tier of 1,500 pages and compare the output and the rate card side by side. If you are already on Firecrawl Standard or above and the bill has become a line item someone asks about, the migration is a few hours and the price is exactly half. If you need a custom volume or a contract, talk to us.
Try the same workload on both. Start free, no credit card, 1,500 pages a month. One command to your first clean page:
curl -X POST https://api.crawlcrawl.com/v1/scan \
-H "Authorization: Bearer crk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
See the full surface on the API reference, the tier table on pricing, or the direct crawlcrawl vs Firecrawl comparison.