
Firecrawl Crawl
CertifiedCrawl a website with Firecrawl
Firecrawl Crawl
Crawl a website with Firecrawl
Starts a Firecrawl crawl from a URL, waits for it to finish and stores every crawled page as one row of an ION file in the internal storage. Firecrawl keeps crawl results for a limited time, so they are downloaded as soon as the crawl completes. If the task is killed, times out or fails while waiting, the crawl is cancelled on the Firecrawl side so it stops consuming credits.
type: io.kestra.plugin.firecrawl.CrawlExamples
Crawl the documentation pages of a site to markdown.
id: firecrawl_crawl_docs
namespace: company.team
tasks:
- id: crawl_docs
type: io.kestra.plugin.firecrawl.Crawl
apiKey: "{{ secret('FIRECRAWL_API_KEY') }}"
url: https://example.com/docs
limit: 50
includePaths:
- /docs/.*
- id: log_count
type: io.kestra.plugin.core.log.Log
message: "Crawled {{ outputs.crawl_docs.pagesCount }} pages into {{ outputs.crawl_docs.uri }}"
Crawl a site with a slower polling frequency and a maximum duration.
id: firecrawl_crawl_with_timeout
namespace: company.team
tasks:
- id: crawl_site
type: io.kestra.plugin.firecrawl.Crawl
apiKey: "{{ secret('FIRECRAWL_API_KEY') }}"
url: https://example.com
limit: 200
maxDiscoveryDepth: 3
onlyMainContent: true
pollFrequency: PT10S
maxDuration: PT30M
Properties
apiKey *string
Firecrawl API key
API key sent as a bearer token on every request; store it as a Kestra secret.
url *string
Start URL
Absolute URL the crawl starts from.
allowExternalLinks booleanstring
Allow external links
When true, the crawl follows links to other domains.
allowSubdomains booleanstring
Allow subdomains
When true, the crawl follows links to subdomains of the start URL.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150baseUrl string
Firecrawl API base URL
Base URL of the Firecrawl API without the version suffix. Defaults to https://api.firecrawl.dev; set it to target a self-hosted Firecrawl instance.
crawlEntireDomain booleanstring
Crawl the entire domain
When true, the crawl can follow links to sibling and parent paths instead of only deeper paths.
excludePaths array
Paths to exclude
Regular expressions matched against URL paths; matching pages are skipped.
excludeTags array
HTML tags to exclude
CSS selectors or tags that must be removed from the scraped content.
formats array
["markdown"]Output formats
Formats requested for each page, for example markdown, html, rawHtml, links or summary. Defaults to markdown.
includePaths array
Paths to include
Regular expressions matched against URL paths; only matching pages are crawled.
includeTags array
HTML tags to include
CSS selectors or tags that must be kept in the scraped content.
limit integerstring
100Page limit
Maximum number of pages to crawl, at least 1. Defaults to 100.
maxDiscoveryDepth integerstring
Maximum discovery depth
Maximum number of link hops from the start URL, at least 0.
maxDuration string
PT1HMaximum wait duration
Maximum total time to wait for the crawl to finish, must be positive. When it is exceeded the crawl is cancelled on the Firecrawl side and the task fails. Defaults to 60 minutes.
onlyMainContent booleanstring
Only main content
When true, Firecrawl strips headers, navigation and footers and keeps only the main content of each page.
pollFrequency string
PT5SPoll frequency
Interval between two status checks of the crawl, at least 1 second. Each status check returns the pages crawled so far, so keep it moderate for large crawls. Defaults to 5 seconds.
requestTimeout string
Per-page request timeout
Maximum time Firecrawl spends scraping a single page. This is distinct from the task-level timeout.
waitFor string
Wait before scraping
Time to wait for dynamic content to load before each page is scraped.
Outputs
crawlId string
Firecrawl crawl ID
creditsUsed integer
Credits used by the crawl
pagesCount integer
Number of crawled pages
status string
Final crawl status
uri string
uriCrawled pages URI
ION file in the internal storage containing one row per crawled page.
Metrics
credits counter
creditFirecrawl credits used by the crawl, when reported by the API
pages counter
pageNumber of pages crawled and stored