Data API / Firecrawl / Crawl
Submit an asynchronous crawl job.
Submit an asynchronous website crawl. url, limit and Idempotency-Key are required. HTTP 202 returns a job with its id and status; poll get_firecrawl_crawl_job until completed, failed or cancelled. The Location header identifies the Felo polling resource. Reusing an Idempotency-Key returns the existing job. Set limit to bound the crawl. Job pricing fields are provider metadata, not Felo billing records.
Parameters
header
Idempotency-KeystringRequiredUnique key (1 to 191 characters) that makes the submit idempotent. Re-submitting with the same key returns the original job.
Request body
urlstringRequiredThe HTTPS root URL to crawl. PDF URLs are not supported.
limitintegerRequiredMaximum number of pages to crawl.
includePathsstring[]OptionalOnly crawl URLs whose path matches one of these patterns.
excludePathsstring[]OptionalSkip URLs whose path matches one of these patterns.
maxDiscoveryDepthintegerOptionalMaximum link-discovery depth from the root URL.
sitemapstringOptionalAllowed values: skip · include · only
How the site's sitemap is used during discovery.
ignoreQueryParametersbooleanOptionalTreat URLs that differ only by query string as the same page.
crawlEntireDomainbooleanOptionalCrawl the whole domain rather than only the subtree under the root URL.
allowExternalLinksbooleanOptionalFollow links to external domains.
allowSubdomainsbooleanOptionalFollow links into subdomains of the root domain.
delaynumberOptionalDelay in seconds between requests (0 to 30).
maxConcurrencyintegerOptionalMaximum number of concurrent page fetches (1 to 20).
scrapeOptionsobjectOptionalPer-page scrape options applied while crawling. On the metered profile output is always markdown.
onlyMainContentbooleanOptionalReturn only the main content of each page.
includeTagsstring[]OptionalHTML tags/selectors to keep.
excludeTagsstring[]OptionalHTML tags/selectors to drop.
maxAgeintegerOptionalMaximum acceptable cache age in milliseconds.
minAgeintegerOptionalMinimum cache age in milliseconds before a page is refetched.
timeoutintegerOptionalPer-page timeout in milliseconds.
Example request
curl -X POST "https://openapi.felo.ai/v1/beta/firecrawl/crawl" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Idempotency-Key: <string>" \
-H "Content-Type: application/json" \
-d '{
"url": "<string>",
"limit": 0,
"includePaths": [
"<string>"
],
"excludePaths": [
"<string>"
],
"maxDiscoveryDepth": 0,
"sitemap": "<string>",
"ignoreQueryParameters": false,
"crawlEntireDomain": false
}'Response
Response fields
idstringOptionalJob identifier. Use it with the corresponding Felo polling endpoint.
objectstringOptionalAlways "integration_async_job".
endpointstringOptionalProvider operation identifier stored with the job. This metadata is not a Felo polling URL; use the documented Felo job path or Location header.
statusstringOptionalAllowed values: queued · running · completed · failed · cancelled
Customer-facing lifecycle status. queued and running are non-terminal; completed, failed, and cancelled are terminal.
createdAtstringOptionalWhen the job was accepted.
completedAtOptionalWhen the job reached a terminal status. Null while the job is still queued or running.
pricingobjectOptionalcurrencystringOptionalauthorizedMicrosUSDintegerOptionalProvider authorization metadata in micro-USD. This is not a Felo credit hold or billing record.
finalMicrosUSDOptionalProvider settlement metadata in micro-USD, nullable before settlement. This is not the Felo charge.
billingModestringOptionalProvider job billing mode. Felo charges follow Felo billing records.
outputOptionalJob result payload. Present only once status is completed. For Agent Runs this is the structured research result.
outputExpiredbooleanOptionalTrue when the result has been retained past its retention window and is no longer retrievable.
errorOptionalPresent when status is failed. Null otherwise.