- 複雑な処理を管理します: プロキシ、キャッシュ、レート制限、JavaScript でブロックされたコンテンツ
- 動的コンテンツに対応します: 動的な Web サイト、JavaScript でレンダリングされるサイト、PDF、画像
- クリーンな Markdown、構造化データ、スクリーンショット、または HTML を出力します。
Playground で試す
インタラクティブな Playground でスクレイピングを試せます。コードは不要です。
リクエストが失敗した場合は、エラーコード、原因、対処法、再試行に関するガイダンスの一覧についてはErrorsを参照してください。
FirecrawlでURLをスクレイピングする
/scrape エンドポイント
インストール
使い方
各スクレイピングで1クレジットを消費します。次のオプションには追加クレジットが必要です。JSONモードは1ページあたり追加で4クレジット、questionフォーマットとhighlightsフォーマットは各フォーマットごとに1ページあたり追加で4クレジット、強化プロキシは1ページあたり追加で4クレジット、PIIの秘匿化は1ページあたり追加で4クレジット、PDF解析はPDFの1ページあたり1クレジットを消費し、音声または動画抽出は1ページあたり追加で4クレジットかかります。
レスポンス
SDK はデータオブジェクトを直接返します。cURL は以下のとおり、ペイロードをそのまま返します。スクレイピングのフォーマット
- Markdown (
markdown) - Summary (
summary) - HTML (
html) - ページの HTML をクリーンアップしたバージョン - Raw HTML (
rawHtml) - ページから取得した未加工の HTML - Screenshot (
screenshot、fullPage、quality、viewportなどのオプションあり) — スクリーンショットの URL は 24 時間後に期限切れになります - Links (
links) - JSON (
json) - 構造化された出力 - Images (
images) - ページ内のすべての画像 URL を抽出 - Branding (
branding) - ブランドアイデンティティとデザインシステムを抽出 - Product (
product) - 商品ページから構造化された商品データ (タイトル、価格、在庫状況、バリアント) を抽出 - Audio (
audio) - 対応している動画 URL (例: YouTube) から MP3 音声を抽出 (署名付き GCS URL を返します。1 時間後に期限切れになります) - Video (
video) - 対応している動画 URL (例: YouTube) から最高品質の動画を抽出 (署名付き GCS URL を返します。1 時間後に期限切れになります) - Query (
query、promptと任意のmodeを使用) - ページについて自然言語で質問できます。回答はanswerフィールドで返されます
構造化データの抽出
/scrape (json あり) エンドポイント
JSON
スキーマなしでの抽出
prompt を渡すだけで、スキーマなしで抽出できます。LLM がデータ構造を決定します。
JSON
JSON フォーマットのオプション
json フォーマットを使用する場合は、formats 内に以下のパラメータを含むオブジェクトを渡します:
schema: 構造化出力のための JSON Schema。prompt: スキーマがある場合や、軽い指示で十分な場合に抽出を補助する任意のプロンプト。
ブランドアイデンティティの抽出
/scrape (ブランディング付き) エンドポイント
レスポンス
ブランディングフォーマットは、以下の構造を持つ包括的なBrandingProfile オブジェクトを返します。
Output
ブランディングプロファイルの構造
branding オブジェクトには次のプロパティが含まれます:
colorScheme: 検出された配色 ("light"または"dark")logo: メインロゴの URLcolors: ブランドカラーを含むオブジェクト:primary,secondary,accent: 主要なブランドカラーbackground,textPrimary,textSecondary: UI カラーlink,success,warning,error: セマンティックカラー
fonts: ページで使用されているフォントファミリーの配列typography: タイポグラフィの詳細情報:fontFamilies: 基本、見出し、コード用のフォントファミリーfontSizes: 見出しと本文のサイズ定義fontWeights: ウェイトの定義 (light、regular、medium、bold)lineHeights: テキスト種別ごとの行の高さ
spacing: 余白とレイアウト情報:baseUnit: 基準となるスペーシング単位 (px)borderRadius: 既定の角丸半径padding,margins: スペーシング値
components: UI コンポーネントのスタイル:buttonPrimary,buttonSecondary: ボタンスタイルinput: 入力フィールドのスタイル
icons: アイコンのスタイル情報images: ブランド画像 (ロゴ、favicon、og:image)animations: アニメーションおよびトランジション設定layout: レイアウト構成 (グリッド、ヘッダー/フッターの高さ)personality: ブランドの特性 (トーン、エネルギー、対象ユーザー)
他のフォーマットとの併用
商品データを抽出
product フォーマットでは、商品データを決定論的に抽出できます。これは json フォーマット と同様の構造化された出力ですが、LLM の呼び出しやユーザー定義のスキーマは不要で、商品ページ向けに特化しています。これまで json スキーマで商品フィールドを取得していた場合は、代わりに formats: ["product"] を使ってください。こちらのほうが高速かつ低コストですが、対応は商品に限定されます。
戻り値は、title、brand、category、description、variants を含む product オブジェクトです。各 variant には price、original price、availability、images が含まれ、価格監視、カタログ取り込み、価格比較ツールに役立ちます。
/scrape (product付き) エンドポイント
レスポンス
productフォーマットでは、以下の構造を持つproduct オブジェクトが返されます。
Output
Product オブジェクトの構造
product オブジェクトには、次のプロパティが含まれます。
title: 商品名brand: ブランド名 (任意)category: 商品カテゴリ (任意)url: 商品の正規 URLdescription: 商品の説明 (任意)variants: 商品バリアントの配列。価格、在庫状況、画像は各バリアントごとに保持されます。SKU が 1 つの商品でも、これらを持つバリアントが必ず 1 つだけ返されます。各バリアントには次が含まれます。id,sku,title: バリアントの識別子とラベル (いずれも任意)values: オプション名から値への map (例:{ "color": "Charcoal" }) (任意)price: 現在の価格オブジェクト (任意) :amount: 数値の価格currency: 通貨コード。ページで取得できた場合にのみ返されます (任意)formatted: ページ上で表示されている価格表記 (任意)
sale: バリアントが割引されている場合にのみ存在します (任意) 。内容:originalPrice: 元の価格 (割引前) 。形式はpriceと同じです
availability: 在庫状況の情報。バリアントには常に含まれます:inStock: バリアントが在庫ありかどうかtext: ページ上の生の在庫状況テキスト (任意)
images: バリアント画像の配列。各画像にはurlと任意のaltテキストが含まれます (任意)
商品抽出の仕組み
product フォーマットは、ページ上の構造化データから決定論的に商品を抽出します。LLM は関与しません。複数のソースを、JSON-LD > schema.org microdata > RDFa > 埋め込み状態 (__NEXT_DATA__/Nuxt/Apollo/Redux/Remix) > AliExpress runParams > GA4 dataLayer > OpenGraph/<meta> の優先順位でマージします。このマージは同一性を考慮して行われるため、異なる商品のフィールドが混在することはありません。通貨は、ページ上のソースに含まれている場合にのみ返されます。
商品抽出はフェイルクローズです。あいまいなページでは商品は返されず、OpenGraph のような弱いソースは価格が存在する場合にのみ利用されます。抽出可能な商品がないページでは、レスポンスには
product オブジェクトが含まれず、warning が追加されます (例: “No product found…”) 。セルフホスティング:
product フォーマットは専用の商品抽出サービスによって提供されます。Firecrawl Cloud ではそのまま利用できます。セルフホストする場合は、そのサービスを指すように PRODUCT_EXTRACTION_SERVICE_URL を設定してください。未設定の場合、product フォーマットをリクエストすると warning が返され、商品は返されません (音声/動画フォーマットが各サービスで採用しているのと同じパターンです) 。他のフォーマットと組み合わせる
productフォーマットは他のフォーマットと組み合わせることで、網羅的なページデータを取得できます。音声抽出
audio フォーマットでは、対応する Web サイト (YouTube など) から音声を MP3 ファイルとして抽出し、署名付きの Google Cloud Storage URL を返します。これは、音声処理パイプラインや文字起こしサービス、ポッドキャスト向けツールの構築に役立ちます。
音声抽出のコストは 1 ページあたり 5 クレジットです (基本 1 + 追加 4) 。
動画抽出
video フォーマットでは、対応している Web サイト (例: YouTube) から最高画質の動画を抽出し、署名付きの Google Cloud Storage URL を返します。これは、動画処理パイプラインやモデレーションツール、メディアアーカイブ用ワークフローの構築に役立ちます。
動画抽出のコストは 1 ページあたり 5 クレジットです (基本 1 + 追加 4) 。
質問フォーマット
question フォーマットを使うと、ページについて自然言語で質問できます。Firecrawl は、レスポンスの answer フィールドに回答を返します。
question フォーマットのコストは、1 ページあたり 5 クレジットです (基本 1 + LLM 呼び出しの追加 4) 。question(type: "question"の場合は必須) : 回答する質問。最大 10,000 文字。
question は他のフォーマットと組み合わせることもできます。たとえば、markdown と question を一緒にリクエストすると、1 回の呼び出しでページの内容と回答を取得できます。
question フォーマットは、scrapeOptions を介して /search でも利用でき、各検索結果に対して同じ抽出を実行します。
Highlights フォーマット
highlights フォーマットを使用します。Firecrawl は、選択されたテキストをレスポンスの highlights フィールドに返します。
highlights フォーマットのコストは 1 ページあたり 5 クレジット です (基本 1 + LLM 呼び出しの追加 4) 。query(type: "highlights"の場合は必須) : ソーステキストを選択するためのリクエスト。最大 10,000 文字。
highlights は他のフォーマットと組み合わせることもできます。たとえば、markdown と highlights を一緒にリクエストすると、ページコンテンツとソーステキストを 1 回の呼び出しで取得できます。
highlights フォーマットは、scrapeOptions を介して /search でも利用でき、各 search result に対して同じ extraction を実行します。
PII のリダクション
markdown に含まれる個人を特定できる情報をリダクションするには、redactPII: true を設定します。markdown フィールドには、リダクション後の結果が含まれます。
SDK、cURL、CLI、MCP の例については、PII Redaction を参照してください。
アクションを使ってページとやり取りする
wait アクションを使用することが重要です。
例
出力
ロケーションと言語
仕組み
使い方
location オブジェクトを含め、次のプロパティを指定します:
country: ISO 3166-1 alpha-2 の国コード (例: ‘US’, ‘AU’, ‘DE’, ‘JP’) 。既定値は ‘US’。languages: 優先度順に並べた、リクエストで使用する希望言語およびロケールの配列。既定値は指定した location の言語。
キャッシュと maxAge
- デフォルトの鮮度ウィンドウ:
maxAge = 172800000ms (2日) 。キャッシュされたページがこの値より新しければ即時に返し、そうでなければスクレイプしてからキャッシュします。 - パフォーマンス: データが厳密な最新性を要さない場合、スクレイプを最大5倍高速化できます。
- 常に最新を取得:
maxAgeを0に設定します。この設定ではキャッシュを完全にバイパスするため、すべてのリクエストがスクレイピングパイプライン全体を通過し、リクエストが完了するまでの時間が長くなり、失敗する可能性も高くなります。すべてのリクエストで厳密な最新性が必須でない場合は、0以外のmaxAgeを使用してください。 - 保存しない: このリクエストの結果を Firecrawl にキャッシュ/保存させたくない場合は、
storeInCacheをfalseに設定します。 - キャッシュのみの参照: 新しいスクレイプを実行せず、キャッシュのみを参照するには
minAgeを設定します。値はミリ秒単位で、キャッシュデータが満たす必要のある最小経過時間を指定します。キャッシュデータが見つからない場合は、エラーコードSCRAPE_NO_CACHED_DATAを伴う404が返されます。経過時間に関係なく任意のキャッシュデータを受け入れるには、minAgeを1に設定します。 - 変更トラッキング:
changeTrackingを含むリクエストはキャッシュをバイパスするため、maxAgeは無視されます。 - クレジット: キャッシュされた結果でも、1ページあたり1クレジットがかかります。キャッシュによって改善されるのは速度であり、クレジット使用量ではありません。
複数のURLのバッチスクレイピング
仕組み
/crawl エンドポイントの動作に非常によく似ています。バッチスクレイプのジョブを送信し、進行状況を確認するためのジョブIDを返します。
SDK は同期型と非同期型の2つのメソッドを提供します。同期型はバッチスクレイプジョブの結果を返し、非同期型はバッチスクレイプのステータス確認に使えるジョブIDを返します。
使い方
Response
同期処理
完了
非同期
/batch/scrape/{id} エンドポイントを呼び出し、バッチスクレイプのステータスを確認できます。 このエンドポイントは、ジョブの実行中、または完了直後に使用することを想定しています。バッチスクレイプのジョブは24時間で有効期限が切れるためです。
強化モード
ゼロデータ保持 (ZDR)
zeroDataRetention: true を設定します。
cURL
ZDR モードではスクリーンショットは利用できません。スクリーンショットでは永続ストレージへのアップロードが必要になるため、ZDR の保証とは両立しません。
zeroDataRetention: true と screenshot 形式の両方を含むリクエストはエラーを返します。Firecrawl API キーが必要な AI エージェントですか?自動オンボーディング手順については、firecrawl.dev/agent-onboarding/SKILL.md を参照してください。

