- サイトマップとリンクの再帰的なたどりによってページを検出
- パスのフィルタリング、深さ制限、サブドメインや外部リンクの制御をサポート
- ポーリング、WebSocket、または Webhook で結果を返す
Playground で試す
インタラクティブな Playground でクロールをテストできます。コードは不要です。
インストール
基本的な使い方
POST /v2/crawl を呼び出し、クロールジョブを送信します。このエンドポイントは、結果をポーリングするために使用するジョブ ID を返します。
クロールされたページ 1 件ごとに 1 クレジットを消費します。デフォルトのクロール
limit は 10,000 ページです。クレジット消費を抑えるには、limit: 100 のように、クロール対象を 100 ページに制限するなど、より小さい limit を設定してください。特定のオプションには追加クレジットが必要です。JSONモードはページごとに追加で 4 クレジット、拡張プロキシはページごとに追加で 4 クレジット、PDF 解析は PDF のページごとに 1 クレジットを消費します。スクレイプオプション
scrapeOptions (JS) / scrape_options (Python) 経由で crawl でも利用できます。これらはクローラーがスクレイプするすべてのページに適用されます (フォーマット、プロキシ、キャッシュ、アクション、ロケーション、タグを含む) 。
クロールステータスの確認
ジョブの結果は、完了後24時間は API 経由で取得できます。この期間を過ぎても、activity logs からクロール履歴と結果を参照できます。
クロール結果の
data 配列に含まれているページは、対象サイトが 404 のような HTTP エラーを返した場合でも、Firecrawl がスクレイピングに成功したページです。metadata.statusCode フィールドには、対象サイトから返された HTTP ステータスコードが含まれます。Firecrawl 自体がスクレイピングに失敗したページ (ネットワークエラー、タイムアウト、robots.txt によるブロックなど) を取得するには、専用の Get Crawl Errors エンドポイント (GET /crawl/{id}/errors) を使用してください。レスポンスの処理
next URLパラメータが付与されます。次の10MBのデータを取得するには、このURLにリクエストしてください。next パラメータがない場合は、クロールデータの終端を示します。
skip と next のパラメータが関係するのは、API を直接呼び出す場合のみです。
SDK を使用している場合は、ページネーションは自動的に処理され、すべての
結果が一度に返されます。SDK メソッド
クロールして待つ
crawl メソッドはクロールの完了を待機し、完全なレスポンスを返します。ページネーションを自動処理します。ほとんどのユースケースで推奨されます。
開始して後で確認
startCrawl / start_crawl メソッドは即時にクロール ID を返します。その後、ステータスを手動でポーリングして確認します。これは、長時間のクロールや独自のポーリングロジックに有用です。
WebSocket によるリアルタイム結果
Webhooks
cURL
イベントタイプ
| Event | Description |
|---|---|
crawl.started | クロールが開始されたときに発火します |
crawl.page | スクレイプに成功した各ページごとに発火します |
crawl.completed | クロールが完了したときに発火します |
crawl.failed | クロール中にエラーが発生した場合に発火します |
ペイロード
Webhook シグネチャの検証
X-Firecrawl-Signature ヘッダーが含まれます。Webhook が正当で改ざんされていないことを確認するために、必ずこのシグネチャを検証してください。
- アカウント設定の Advanced タブ から webhook secret を取得する
X-Firecrawl-Signatureヘッダーからシグネチャを取得する- 取得した secret を使い、生のリクエストボディに対して HMAC-SHA256 を計算する
- タイミング攻撃耐性のある関数を使って、計算結果とヘッダーのシグネチャを比較する
設定リファレンス
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | (required) | クロール開始元の URL |
limit | integer | 10000 | クロールするページの最大数 |
maxDiscoveryDepth | integer | (none) | URL 内の / セグメント数ではなく、リンクの発見ホップ数に基づくルート URL からの最大深度。ページ上で新しい URL が見つかるたびに、その URL には発見元のページより 1 つ深い深度が割り当てられます。ルートサイトおよびサイトマップに含まれるページの発見深度は 0 です。最大深度のページもスクレイプされますが、そのページ上のリンクはたどりません。 |
includePaths | string[] | (none) | 含める URL パスの正規表現パターン。一致するパスのみをクロールします。 |
excludePaths | string[] | (none) | クロール対象から除外する URL パスの正規表現パターン |
regexOnFullURL | boolean | false | includePaths/excludePaths を、パスのみではなく完全な URL (クエリパラメータを含む) に対して照合します |
crawlEntireDomain | boolean | false | 子パスだけでなく、同一ドメイン内の兄弟 URL や親 URL への内部リンクもたどります |
allowSubdomains | boolean | false | メインドメインのサブドメインへのリンクもたどります |
allowExternalLinks | boolean | false | 外部サイトへのリンクもたどります |
sitemap | string | "include" | サイトマップの扱い: "include" (デフォルト) 、"skip"、または "only" |
ignoreQueryParameters | boolean | false | クエリパラメータが異なっていても、同じパスの再スクレイピングを避けます |
delay | number | (none) | レート制限を順守するためのスクレイプ間の遅延 (秒) |
maxConcurrency | integer | (none) | 同時スクレイプの最大数。デフォルトでは、チームの同時実行数上限が使用されます。 |
scrapeOptions | object | (none) | すべてのスクレイプ対象ページに適用されるオプション (フォーマット、プロキシ、キャッシュ、アクションなど) |
webhook | object | (none) | リアルタイム通知用の Webhook 設定 |
prompt | string | (none) | クロールオプションを生成するための自然言語プロンプト。明示的に設定したパラメータは、生成された対応項目より優先されます。 |
重要な詳細
- サイトマップによる検出: デフォルトでは、クローラーは URL を検出するためにウェブサイトのサイトマップを含めます (
sitemap: "include") 。sitemap: "skip"を設定すると、ルート URL から HTML リンクを通じて到達できるページのみが検出されます。HTML から直接リンクされていない PDF などのアセットや、サイトマップには記載されていても深い階層にあるページは見逃されます。最大限の網羅性を得るには、デフォルト設定のままにしてください。 - クレジット使用量: クロールした各ページにつき 1 クレジットかかります。JSONモードではページごとに 4 クレジット、enhanced proxy ではページごとに 4 クレジットが追加され、PDF の解析には PDF 1 ページごとに 1 クレジットかかります。
- 結果の有効期限: ジョブの結果は、完了後 24 時間は API 経由で利用できます。その後は、アクティビティログで結果を確認してください。
- クロールエラー:
data配列には、Firecrawl が正常にスクレイピングしたページが含まれます。ネットワークエラー、タイムアウト、または robots.txt によるブロックで失敗したページを取得するには、Get Crawl Errors エンドポイントを使用します。 - 非決定的な結果: 同じ設定で実行しても、クロール結果は実行ごとに異なる場合があります。ページは並行してスクレイピングされるため、リンクが検出される順序はネットワークのタイミングや、どのページの読み込みが先に完了するかに左右されます。そのため、深さの境界付近ではサイト内の異なる分岐が異なる程度まで探索されることがあり、特に
maxDiscoveryDepthの値が大きい場合に顕著です。より決定的な結果を得るには、maxConcurrencyを1に設定するか、サイトに包括的なサイトマップがある場合はsitemap: "only"を使用してください。

