Get notified the moment a crawl, batch scrape, extract, agent job, or monitor check starts, progresses, or finishes. Instead of polling for status, you provide an HTTPS endpoint and Firecrawl delivers events to it in real time.
Supported Operations#
| Operation | Events |
|---|---|
| Crawl | started, page, completed |
| Batch Scrape | started, page, completed |
| Extract | started, completed, failed |
| Agent | started, action, completed, failed, cancelled |
| Monitor | check.completed |
See Event Types for full payload details and examples.
Configuration#
Add a webhook object to your request:
JSON
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Your endpoint URL (HTTPS) |
headers | object | No | Custom headers to include |
metadata | object | No | Custom data included in payloads |
events | array | No | Event types to receive (default: all) |
Usage#
Crawl with Webhook#
cURL
Batch Scrape with Webhook#
cURL
Timeouts & Retries#
Your endpoint must respond with a 2xx status within 10 seconds.
If delivery fails (timeout, non-2xx, or network error), Firecrawl retries automatically:
| Retry | Delay after failure |
|---|---|
| 1st | 1 minute |
| 2nd | 5 minutes |
| 3rd | 15 minutes |
After 3 failed retries, the webhook is marked as failed and no further attempts are made.

