Firecrawl Crawl
Crawl an entire website as an asynchronous job — submit, then poll the job for status and results.
url. Because a full traversal can take a while, Crawl runs as an asynchronous job: you submit the job and then poll it for status and results.
Lifecycle
- Submit —
POST /apis/v1/firecrawl/crawlwith the crawl body and a requiredIdempotency-Keyheader. On success you get back202 Accepted, aLocationheader pointing at the job resource (/apis/v1/firecrawl/crawl/{jobId}), and a job object whosestatusstarts asqueued. - Poll —
GET /apis/v1/firecrawl/crawl/{jobId}and repeat untilstatusis terminal:completed,failed, orcancelled. Whencompleted, the crawled pages are inoutput. - List —
GET /apis/v1/firecrawl/crawl(optionallimit,status,cursorquery params) to page through your crawl jobs. - Cancel —
POST /apis/v1/firecrawl/crawl/{jobId}/cancelto request cancellation.
url must be HTTPS and not a PDF, and limit (1 to 1000) bounds the number of pages. Billing is metered per Firecrawl credit — 1 credit per page crawled — so total cost scales with the pages actually processed. To scrape a known set of URLs instead of following links, use post_firecrawl-batch-scrape.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Unique key (1 to 191 characters) that makes the submit idempotent. Re-submitting with the same key returns the original job.
191Body
The HTTPS root URL to crawl. PDF URLs are not supported.
"https://docs.firecrawl.dev"
Maximum number of pages to crawl.
1 <= x <= 100050
Only crawl URLs whose path matches one of these patterns.
20256Skip URLs whose path matches one of these patterns.
20256Maximum link-discovery depth from the root URL.
0 <= x <= 10How the site's sitemap is used during discovery.
skip, include, only Treat URLs that differ only by query string as the same page.
Crawl the whole domain rather than only the subtree under the root URL.
Follow links to external domains.
Follow links into subdomains of the root domain.
Delay in seconds between requests (0 to 30).
0 <= x <= 30Maximum number of concurrent page fetches (1 to 20).
1 <= x <= 20Per-page scrape options applied while crawling. On the metered profile output is always markdown.
Response
Crawl job accepted. The Location header points at the job resource; poll it until terminal.
An asynchronous integration job. Returned by the submit call (HTTP 202) and by the poll/detail call. Poll the job by its id until status is a terminal value (completed, failed, or cancelled).
Unique AIsa job identifier. Use it to poll, list, or cancel the job.
"iaj_01HZY8Q2M4K7N9V3T6W1X0B2C3"
Always "integration_async_job".
"integration_async_job"
The submit endpoint this job belongs to.
"/apis/v1/firecrawl/crawl"
Customer-facing lifecycle status. queued and running are non-terminal; completed, failed, and cancelled are terminal.
queued, running, completed, failed, cancelled When the job was accepted.
When the job reached a terminal status. Null while the job is still queued or running.
Job result payload. Present only once status is completed. For crawl this is the array of scraped pages; for batch scrape it is the array of scraped documents.
True when the result has been retained past its retention window and is no longer retrievable.
Present when status is failed. Null otherwise.