| name | firecrawl-webhooks-events |
| description | Implement Firecrawl webhook event handling for async crawl and batch scrape jobs.
Use when setting up webhook endpoints, handling crawl.page/crawl.completed events,
or processing async job results in real-time.
Trigger with phrases like "firecrawl webhook", "firecrawl events",
"firecrawl webhook signature", "handle firecrawl events", "firecrawl notifications".
|
| allowed-tools | Read, Write, Edit, Bash(curl:*) |
| version | 1.11.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","firecrawl","webhooks"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Firecrawl Webhooks & Events
Overview
Handle Firecrawl webhooks for real-time notifications on async crawl and batch scrape jobs. Instead of polling checkCrawlStatus, configure a webhook URL and Firecrawl will POST events as pages are scraped and jobs complete. Signed with HMAC-SHA256 via X-Firecrawl-Signature.
Webhook Event Types
| Event | Trigger | Payload |
|---|
crawl.started | Crawl job begins | Job ID, config |
crawl.page | Individual page scraped | Page markdown, metadata |
crawl.completed | Full crawl finishes | All pages array |
crawl.failed | Crawl job errors | Error message |
batch_scrape.completed | Batch scrape finishes | All scraped pages |
Instructions
Step 1: Start Crawl with Webhook
import FirecrawlApp from "@mendable/firecrawl-js";
const firecrawl = new FirecrawlApp({
apiKey: process.env.FIRECRAWL_API_KEY!,
});
const job = await firecrawl.asyncCrawlUrl("https://docs.example.com", {
limit: 100,
scrapeOptions: { formats: ["markdown"] },
webhook: "https://api.yourapp.com/webhooks/firecrawl",
});
console.log(`Crawl started: `);
job2 = firecrawl.(, {
: ,
: { : [] },
: {
: ,
: [, ],
: {
: ,
: ,
},
},
});