- Works like
/crawlbut for an explicit list of URLs - Synchronous and asynchronous modes
- Supports all scrape options including structured extraction
- Configurable concurrency per job
How it works
You can run a batch scrape in two ways:Basic usage
Response
CallingbatchScrape / batch_scrape returns the full results when the batch completes.
Completed
startBatchScrape / start_batch_scrape returns a job ID you can track via getBatchScrapeStatus / get_batch_scrape_status, the API endpoint /batch/scrape/{id}, or webhooks. Job results are available via the API for 24 hours after completion. After this period, you can still view your batch scrape history and results in the activity logs.
Concurrency
By default, a batch scrape job uses your team’s full concurrent browser limit (see Rate Limits). You can lower this per job with themaxConcurrency parameter.
For example, maxConcurrency: 50 limits that job to 50 simultaneous scrapes. Setting this value too low on large batches will significantly slow down processing, so only reduce it if you need to leave capacity for other concurrent jobs.
Structured extraction
You can use batch scrape to extract structured data from every page in the batch. This is useful when you want the same schema applied to a list of URLs.Response
batchScrape / batch_scrape returns full results:
Completed
startBatchScrape / start_batch_scrape returns a job ID:
Webhooks
You can configure webhooks to receive real-time notifications as each URL in your batch is scraped. This lets you process results immediately instead of waiting for the entire batch to complete.cURL
Event types
Payload
Each webhook delivery includes a JSON body with the following structure:Verifying webhook signatures
Every webhook request from Firecrawl includes anX-Firecrawl-Signature header containing an HMAC-SHA256 signature. Always verify this signature to ensure the webhook is authentic and has not been tampered with.
- Get your webhook secret from the Advanced tab of your account settings
- Extract the signature from the
X-Firecrawl-Signatureheader - Compute HMAC-SHA256 of the raw request body using your secret
- Compare with the signature header using a timing-safe function
Are you an AI agent that needs a Firecrawl API key? See firecrawl.dev/agent-onboarding/SKILL.md for automated onboarding instructions.

