このページでは、Firecrawlがエンドポイントに送信する可能性のあるWebhookイベントの種類を網羅します。各イベントタイプは、スクレイピング処理の異なる段階に対応しています。
すべてのWebhookイベントは、次の基本構造に従います。
{
"success": true,
"type": "crawl.page",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [...],
"metadata": {}
}
Field | Type | Description |
---|
success | boolean | 操作が成功したかどうか |
type | string | イベントタイプの識別子 |
id | string | ジョブの一意の識別子 |
data | array | イベント固有のデータ(イベントタイプにより異なる) |
metadata | object | Webhook 設定で指定したカスタムメタデータ |
error | string | エラーメッセージ(success が false の場合に含まれる) |
リンクを辿って複数ページをクロールする処理。
クロールが開始されると送信されます。
{
"success": true,
"type": "crawl.started",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
クロール中にスクレイピングされた各ページごとに送信されます。
{
"success": true,
"type": "crawl.page",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [
{
"markdown": "# 当サイトへようこそ\n\nこれはページの主なコンテンツです...",
"metadata": {
"title": "ページタイトル",
"description": "ページの説明",
"url": "https://example.com/page",
"statusCode": 200,
"contentType": "text/html",
"scrapeId": "550e8400-e29b-41d4-a716-446655440001",
"sourceURL": "https://example.com/page",
"proxyUsed": "basic",
"cacheState": "hit"
"cachedAt": "2025-09-03T21:11:25.636Z",
"creditsUsed": 1
}
}
],
"metadata": {}
}
これはクロール中に最も頻繁に発生するイベントです。スクレイプに成功した各ページごとに、crawl.page
イベントを1件受け取ります。
クロール処理が最後まで正常に完了した際に送信されます。
{
"success": true,
"type": "crawl.completed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
特定の複数のURLをスクレイプする処理。
バッチスクレイプの開始時に送信されます。
{
"success": true,
"type": "batch_scrape.started",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
バッチ内でスクレイプされる各URLごとに送信されます。
{
"success": true,
"type": "batch_scrape.page",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [
{
"markdown": "# 企業ホームページ\n\n当社のウェブサイトへようこそ…",
"metadata": {
"title": "企業名 - ホームページ",
"description": "企業の説明と概要",
"url": "https://example.com",
"statusCode": 200,
"contentType": "text/html",
"scrapeId": "550e8400-e29b-41d4-a716-446655440001",
"sourceURL": "https://example.com",
"proxyUsed": "basic",
"cacheState": "ミス"
"cachedAt": "2025-09-03T23:30:53.434Z",
"creditsUsed": 1
}
}
],
"metadata": {}
}
これはバッチスクレイプ中に最もよく発生するイベントです。スクレイプに成功した各URLごとに
batch_scrape.page
イベントが1件届きます。
バッチスクレイプ処理がすべて完了した時に送信されます。
{
"success": true,
"type": "batch_scrape.completed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
LLM を用いたデータ抽出処理。
抽出処理が開始されると送信されます。
{
"success": true,
"type": "extract.started",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
抽出オペレーションが正常に完了したときに送信されます。
{
"success": true,
"type": "extract.completed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [
{
"success": true,
"data": { "siteName": "Example Site", "category": "Technology" },
"extractId": "550e8400-e29b-41d4-a716-446655440000",
"llmUsage": 0.0020118,
"totalUrlsScraped": 1,
"sources": {
"siteName": ["https://example.com"],
"category": ["https://example.com"]
}
}
],
"metadata": {}
}
抽出処理でエラーが発生したときに送信されます。
{
"success": false,
"type": "extract.failed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"error": "データの抽出に失敗しました:タイムアウトを超過しました"
"metadata": {}
}
Webhook の設定で events
配列を指定すると、受信するイベントを制御できます。
{
"url": "https://your-app.com/webhook",
"events": ["completed", "failed"]
}