メインコンテンツへスキップ
Firecrawl は Web ページを Markdown に変換し、LLM アプリケーションに最適な形式にします。
  • 複雑な処理を管理します: プロキシ、キャッシュ、レート制限、JavaScript でブロックされたコンテンツ
  • 動的コンテンツに対応します: 動的な Web サイト、JavaScript でレンダリングされるサイト、PDF、画像
  • クリーンな Markdown、構造化データ、スクリーンショット、または HTML を出力します。
詳細は、Scrape Endpoint APIリファレンスを参照してください。

Playground で試す

インタラクティブな Playground でスクレイピングを試せます。コードは不要です。
リクエストが失敗した場合は、エラーコード、原因、対処法、再試行に関するガイダンスの一覧についてはErrorsを参照してください。

FirecrawlでURLをスクレイピングする

/scrape エンドポイント

URL をスクレイピングして、その内容を取得するために使用します。

インストール

使い方

パラメータの詳細は、APIリファレンスを参照してください。
PDFとドキュメント: /scrape は、URLからPDF、DOCX、その他のドキュメント形式を自動検出します。PDFのURLは通常のWebページと同じように渡せます。Firecrawlが解析して、整形されたmarkdownを返します。URLでアクセスできないローカルファイルの場合は、代わりに/parseを使用してください。
Python
各スクレイピングで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 (screenshotfullPagequalityviewport などのオプションあり) — スクリーンショットの 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 (queryprompt と任意の mode を使用) - ページについて自然言語で質問できます。回答は answer フィールドで返されます
出力のキーは、選択したフォーマットに対応します。

構造化データの抽出

/scrape (json あり) エンドポイント

スクレイピングしたページから構造化データを抽出するために使用します。
商品を抽出する場合、商品ページでは product format が構造化された商品フィールド (タイトル、価格、在庫状況、variants) を決定論的に返します。LLM の呼び出しも schema の定義も不要です。カスタムフィールドが必要な場合や、商品ページ以外を対象にする場合は json を使用してください。
出力:
JSON

スキーマなしでの抽出

エンドポイントに prompt を渡すだけで、スキーマなしで抽出できます。LLM がデータ構造を決定します。
出力:
JSON

JSON フォーマットのオプション

json フォーマットを使用する場合は、formats 内に以下のパラメータを含むオブジェクトを渡します:
  • schema: 構造化出力のための JSON Schema。
  • prompt: スキーマがある場合や、軽い指示で十分な場合に抽出を補助する任意のプロンプト。

ブランドアイデンティティの抽出

/scrape (ブランディング付き) エンドポイント

ブランディングフォーマットは、色、フォント、タイポグラフィ、余白・間隔、UIコンポーネントなど、ウェブページからブランドアイデンティティに関する包括的な情報を抽出します。デザインシステムの分析やブランド監視、ウェブサイトのビジュアルアイデンティティを把握する必要があるツールの構築に有用です。

レスポンス

ブランディングフォーマットは、以下の構造を持つ包括的な BrandingProfile オブジェクトを返します。
Output

ブランディングプロファイルの構造

branding オブジェクトには次のプロパティが含まれます:
  • colorScheme: 検出された配色 ("light" または "dark")
  • logo: メインロゴの URL
  • colors: ブランドカラーを含むオブジェクト:
    • 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"] を使ってください。こちらのほうが高速かつ低コストですが、対応は商品に限定されます。 戻り値は、titlebrandcategorydescriptionvariants を含む product オブジェクトです。各 variant には priceoriginal priceavailabilityimages が含まれ、価格監視、カタログ取り込み、価格比較ツールに役立ちます。

/scrape (product付き) エンドポイント

レスポンス

productフォーマットでは、以下の構造を持つ product オブジェクトが返されます。
Output

Product オブジェクトの構造

product オブジェクトには、次のプロパティが含まれます。
  • title: 商品名
  • brand: ブランド名 (任意)
  • category: 商品カテゴリ (任意)
  • url: 商品の正規 URL
  • description: 商品の説明 (任意)
  • 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 は他のフォーマットと組み合わせることもできます。たとえば、markdownquestion を一緒にリクエストすると、1 回の呼び出しでページの内容と回答を取得できます。
question フォーマットは、scrapeOptions を介して /search でも利用でき、各検索結果に対して同じ抽出を実行します。

Highlights フォーマット

ページから関連するソーステキストを見つけるには、highlights フォーマットを使用します。Firecrawl は、選択されたテキストをレスポンスの highlights フィールドに返します。
highlights フォーマットのコストは 1 ページあたり 5 クレジット です (基本 1 + LLM 呼び出しの追加 4) 。
フォーマットオブジェクト内のオプション:
  • query (type: "highlights" の場合は必須) : ソーステキストを選択するためのリクエスト。最大 10,000 文字。
highlights は他のフォーマットと組み合わせることもできます。たとえば、markdownhighlights を一緒にリクエストすると、ページコンテンツとソーステキストを 1 回の呼び出しで取得できます。
highlights フォーマットは、scrapeOptions を介して /search でも利用でき、各 search result に対して同じ extraction を実行します。

PII のリダクション

返される markdown に含まれる個人を特定できる情報をリダクションするには、redactPII: true を設定します。markdown フィールドには、リダクション後の結果が含まれます。 SDK、cURL、CLI、MCP の例については、PII Redaction を参照してください。

アクションを使ってページとやり取りする

Firecrawl を使うと、スクレイピングの前に Web ページ上でさまざまなアクションを実行できます。これは、動的コンテンツとのインタラクション、ページ遷移、ユーザー操作が必要なコンテンツへのアクセスに特に有効です。
アクションよりも Interact を推奨します。スクレイピングしたページを操作するための、より新しく強力な方法です。Interact は、呼び出しをまたいで維持されるステートフルなブラウザセッションとして動作するため、次のいずれかを使ってページを段階的に操作できます。
  • 自然言語: 柔軟で非決定的なフロー向け。例: 「『wireless headphones』を検索し、評価 4 以上かつ 200 ドル未満に絞り込んで、結果を返す」
  • Playwright または agent-browser code: 決定的な手順向け。例: await page.click('#export').
Interact は、プロファイル、永続セッション、ライブで埋め込み可能なブラウザビュー (エンドユーザー自身がブラウザを操作できるインタラクティブモードを含む) にも対応しています。
以下は、アクションを使って google.com に移動し、Firecrawl を検索し、最初の結果をクリックしてスクリーンショットを取得する例です。 ページの読み込み時間を確保するため、他のアクションの前後には基本的に wait アクションを使用することが重要です。

出力

スクレイピング後に、認証済みセッション、複数ステップのナビゲーション、ページのライブビューなど、より高度なブラウザ制御が必要なワークフローでは、アクション 配列を拡張するよりも Interact の利用を推奨します。

ロケーションと言語

ターゲットの地域と言語設定に基づいて関連性の高いコンテンツを得るため、国と言語の優先順を指定します。

仕組み

ロケーション設定を指定すると、Firecrawl は利用可能な場合は適切なプロキシを使用し、対応する言語とタイムゾーンをエミュレートします。指定がない場合、ロケーションのデフォルトは「US」です。

使い方

場所と言語の設定を使うには、リクエストボディに location オブジェクトを含め、次のプロパティを指定します:
  • country: ISO 3166-1 alpha-2 の国コード (例: ‘US’, ‘AU’, ‘DE’, ‘JP’) 。既定値は ‘US’。
  • languages: 優先度順に並べた、リクエストで使用する希望言語およびロケールの配列。既定値は指定した location の言語。
対応している地域の詳細は、Proxies ドキュメントを参照してください。

キャッシュと maxAge

リクエストを高速化するため、Firecrawl は最近のコピーがある場合、デフォルトでキャッシュから結果を返します。
  • デフォルトの鮮度ウィンドウ: maxAge = 172800000 ms (2日) 。キャッシュされたページがこの値より新しければ即時に返し、そうでなければスクレイプしてからキャッシュします。
  • パフォーマンス: データが厳密な最新性を要さない場合、スクレイプを最大5倍高速化できます。
  • 常に最新を取得: maxAge0 に設定します。この設定ではキャッシュを完全にバイパスするため、すべてのリクエストがスクレイピングパイプライン全体を通過し、リクエストが完了するまでの時間が長くなり、失敗する可能性も高くなります。すべてのリクエストで厳密な最新性が必須でない場合は、0以外の maxAge を使用してください。
  • 保存しない: このリクエストの結果を Firecrawl にキャッシュ/保存させたくない場合は、storeInCachefalse に設定します。
  • キャッシュのみの参照: 新しいスクレイプを実行せず、キャッシュのみを参照するには minAge を設定します。値はミリ秒単位で、キャッシュデータが満たす必要のある最小経過時間を指定します。キャッシュデータが見つからない場合は、エラーコード SCRAPE_NO_CACHED_DATA を伴う 404 が返されます。経過時間に関係なく任意のキャッシュデータを受け入れるには、minAge1 に設定します。
  • 変更トラッキング: changeTracking を含むリクエストはキャッシュをバイパスするため、maxAge は無視されます。
  • クレジット: キャッシュされた結果でも、1ページあたり1クレジットがかかります。キャッシュによって改善されるのは速度であり、クレジット使用量ではありません。
例 (常に最新コンテンツを取得) :
例 (10分のキャッシュウィンドウを使用) :

複数のURLのバッチスクレイピング

複数のURLを同時にバッチスクレイピングできるようになりました。開始URLと任意のパラメータを引数として受け取ります。params引数では、出力フォーマットなど、バッチスクレイピングジョブの追加オプションを指定できます。

仕組み

これは /crawl エンドポイントの動作に非常によく似ています。バッチスクレイプのジョブを送信し、進行状況を確認するためのジョブIDを返します。 SDK は同期型と非同期型の2つのメソッドを提供します。同期型はバッチスクレイプジョブの結果を返し、非同期型はバッチスクレイプのステータス確認に使えるジョブIDを返します。

使い方

Response

SDK の同期メソッドを使用している場合は、バッチスクレイプジョブの結果が返ります。同期メソッド以外では、バッチスクレイプのステータス確認に使用できるジョブ ID が返ります。

同期処理

完了

非同期

その後、ジョブIDを使って /batch/scrape/{id} エンドポイントを呼び出し、バッチスクレイプのステータスを確認できます。 このエンドポイントは、ジョブの実行中、または完了直後に使用することを想定しています。バッチスクレイプのジョブは24時間で有効期限が切れるためです。

強化モード

複雑なウェブサイト向けに、Firecrawl はプライバシーを保護しながら成功率を向上させる強化モードを提供しています。 強化モードについて詳しくはこちら。

ゼロデータ保持 (ZDR)

Firecrawl は、厳格なデータ取り扱い要件を持つチーム向けに、ゼロデータ保持 (ZDR) をサポートしています。有効にすると、Firecrawl はページのコンテンツや抽出されたデータを、request の存続期間を超えて保持しません。 ZDR を有効にするには、request で zeroDataRetention: true を設定します。
cURL
ZDR は Enterprise プランで利用でき、チームで有効化する必要があります。利用を開始するには、firecrawl.dev/enterprise をご覧ください。 ZDR では、基本のスクレイピングコストに加えて、1ページあたり追加で1クレジットが発生します。
ZDR モードではスクリーンショットは利用できません。スクリーンショットでは永続ストレージへのアップロードが必要になるため、ZDR の保証とは両立しません。zeroDataRetention: truescreenshot 形式の両方を含むリクエストはエラーを返します。
Firecrawl API キーが必要な AI エージェントですか?自動オンボーディング手順については、firecrawl.dev/agent-onboarding/SKILL.md を参照してください。