# Extract

> LLM を用いてページから構造化データを抽出する

import ExtractCURL from "/snippets/ja/v2/extract/base/curl.mdx";
import ExtractPython from "/snippets/ja/v2/extract/base/python.mdx";
import ExtractNode from "/snippets/ja/v2/extract/base/js.mdx";
import ExtractOutput from "/snippets/ja/v2/extract/base/output.mdx";
import ExtractNoSchemaCURL from "/snippets/ja/v2/extract/no-schema/curl.mdx";
import ExtractNoSchemaPython from "/snippets/ja/v2/extract/no-schema/python.mdx";
import ExtractNoSchemaJS from "/snippets/ja/v2/extract/no-schema/js.mdx";
import ExtractNoSchemaOutput from "/snippets/ja/v2/extract/no-schema/output.mdx";
import ExtractWebSearchPython from "/snippets/ja/v2/extract/websearch/python.mdx";
import ExtractWebSearchJS from "/snippets/ja/v2/extract/websearch/js.mdx";
import ExtractWebSearchCURL from "/snippets/ja/v2/extract/websearch/curl.mdx";
import ExtractWebSearchOutput from "/snippets/ja/v2/extract/websearch/output.mdx";
import CheckExtractJobCURL from "/snippets/ja/v2/extract/status/curl.mdx";
import CheckExtractJobJS from "/snippets/ja/v2/extract/status/js.mdx";
import CheckExtractJobPython from "/snippets/ja/v2/extract/status/python.mdx";
import ExtractStatusPending from "/snippets/ja/v2/extract/status/pending.mdx";
import ExtractStatusDone from "/snippets/ja/v2/extract/status/completed.mdx";
import ExtractWithoutURLsPython from "/snippets/ja/v2/extract/without-urls/python.mdx";
import ExtractWithoutURLsJS from "/snippets/ja/v2/extract/without-urls/js.mdx";
import ExtractWithoutURLsCURL from "/snippets/ja/v2/extract/without-urls/curl.mdx";

<Note>
  **Agent の紹介: Extract の次世代版**
  `/extract` の後継となる [`/agent`](/ja/features/agent) をリリースしました。より高速かつ信頼性が高く、URL を指定する必要もありません。必要な内容を指示するだけで、AI エージェントがデータの検索と抽出を自動で行います。[今すぐ Agent を試す →](/ja/features/agent)
</Note>

`/extract` エンドポイントは、複数の URL やドメイン全体から構造化データを収集する作業を簡略化します。ワイルドカード (例: `example.com/*`) を含めることもできる URL のリストと、取得したい情報を記述するプロンプトまたはスキーマを指定してください。Firecrawl がクロール、解析、集約の処理を担い、大規模・小規模いずれのデータセットにも対応します。

<Info>課金体系を簡素化し、Extract でも他のエンドポイントと同様にクレジット制を採用しました。各クレジットは 15 トークンに相当します。</Info>

<div id="using-extract">
  ## `/extract` の使用方法
</div>

ワイルドカードを含め、1つまたは複数のURLから構造化データを抽出できます:

* **単一ページ**\
  例: `https://firecrawl.dev/some-page`
* **複数ページ / ドメイン全体**\
  例: `https://firecrawl.dev/*`

`/*` を使用すると、Firecrawl はそのドメイン内で検出できるすべてのURLを自動的にクロールしてパースし、その後、指定されたデータを抽出します。この機能は実験的なものです。問題がある場合は [help@firecrawl.com](mailto:help@firecrawl.com) までメールでご連絡ください。

<div id="example-usage">
  ### 使用例
</div>

<CodeGroup>
  <ExtractPython />

  <ExtractNode />

  <ExtractCURL />
</CodeGroup>

**主要パラメータ:**

* **urls**: 1つ以上のURLを含む配列。広範なクロールのためにワイルドカード (`/*`) に対応。
* **prompt** (スキーマがない場合のみ任意) : 取得したいデータ、またはそのデータの構造化方法を記述する自然言語のプロンプト。
* **schema** (プロンプトがない場合のみ任意) : すでにJSONのレイアウトが分かっている場合に用いる、より厳密な構造定義。
* **enableWebSearch** (任意) : `true` の場合、指定ドメイン外のリンクもたどって抽出を実行。

詳細は [API Reference](https://docs.firecrawl.dev/api-reference/endpoint/extract) を参照してください。

<div id="response-sdks">
  ### レスポンス (SDK) 
</div>

<ExtractOutput />

<div id="job-status-and-completion">
  ## ジョブのステータスと完了
</div>

抽出ジョブを送信すると (API またはスターター メソッド経由) 、ジョブ ID が返されます。この ID で次のことができます:

* ジョブ ステータスの取得: /extract/{ID} エンドポイントにリクエストを送り、ジョブが実行中か完了済みかを確認します。
* 結果を待つ: デフォルトの `extract` メソッド (Python/Node) を使う場合、SDK が完了まで待機して最終結果を返します。
* 開始してポーリング: スタート メソッド (`start_extract` (Python) または `startExtract` (Node) ) を使う場合、SDK はすぐにジョブ ID を返します。進行状況の確認には `get_extract_status` (Python) または `getExtractStatus` (Node) を使用します。

<Note>
  ジョブ結果は、完了から 24 時間のあいだ API 経由で取得できます。この期間を過ぎても、[activity logs](https://www.firecrawl.dev/app/logs) から抽出履歴と結果を確認できます。
</Note>

以下は、Python、Node.js、cURL を使用して抽出ジョブのステータスを確認するコード例です:

<CodeGroup>
  <CheckExtractJobPython />

  <CheckExtractJobJS />

  <CheckExtractJobCURL />
</CodeGroup>

<div id="possible-states">
  ### 取りうる状態
</div>

* **completed**: 抽出が正常に完了しました。
* **processing**: Firecrawl がリクエストを処理中です。
* **failed**: エラーが発生し、データを完全に抽出できませんでした。
* **cancelled**: ユーザーによってジョブがキャンセルされました。

<div id="pending-example">
  #### 処理待ちの例
</div>

<ExtractStatusPending />

<div id="completed-example">
  #### 完成例
</div>

<ExtractStatusDone />

<div id="extracting-without-a-schema">
  ## スキーマなしでの抽出
</div>

厳密な構造を定義したくない場合は、`prompt` を渡すだけで構いません。基盤のモデルが適切な構造を自動で選択するため、探索的または柔軟なリクエストに適しています。

<CodeGroup>
  <ExtractNoSchemaPython />

  <ExtractNoSchemaJS />

  <ExtractNoSchemaCURL />
</CodeGroup>

<ExtractNoSchemaOutput />

<div id="improving-results-with-web-search">
  ## Web検索で結果を向上させる
</div>

リクエストで `enableWebSearch = true` を設定すると、指定したURLの範囲を超えてクロールが拡張されます。これにより、リンク先のページから補助的・関連情報を取得できます。

以下は、ドライブレコーダー (ダッシュカム) に関する情報を抽出し、関連ページのデータで結果を補強する例です:

<CodeGroup>
  <ExtractWebSearchPython />

  <ExtractWebSearchJS />

  <ExtractWebSearchCURL />
</CodeGroup>

<div id="example-response-with-web-search">
  ### ウェブ検索を使った応答例
</div>

<ExtractWebSearchOutput />

この応答には、関連ページから収集した追加のコンテキストが含まれており、より網羅的で正確な情報を提供します。

<div id="extracting-without-urls">
  ## URL なしでの抽出
</div>

`/extract` エンドポイントは、特定の URL を指定せずに、プロンプトを使って構造化データを抽出できるようになりました。リサーチや正確な URL が分からない場合に便利です。現在はアルファ版です。

<CodeGroup>
  <ExtractWithoutURLsPython />

  <ExtractWithoutURLsJS />

  <ExtractWithoutURLsCURL />
</CodeGroup>

<div id="known-limitations-beta">
  ## 既知の制限事項 (ベータ) 
</div>

1. **大規模サイトのカバレッジ**\
   巨大なサイト (例：「Amazonの全商品」) を単一のリクエストで完全にカバーすることは、まだサポートしていません。

2. **複雑な論理クエリ**\
   「2025年の投稿をすべて見つけて」のようなリクエストは、期待するデータを確実にすべて返せない場合があります。より高度なクエリ機能を開発中です。

3. **稀に発生する不一致**\
   特に非常に大規模または動的なサイトでは、実行ごとに結果が異なることがあります。通常は主要な情報を捉えますが、多少のばらつきが生じる可能性があります。

4. **ベータ版の状態**\
   `/extract` はまだベータ版のため、機能やパフォーマンスは今後も進化します。改善のためのバグ報告やフィードバックをお待ちしています。

<div id="using-fire-1">
  ## FIRE-1 の使用
</div>

FIRE-1 は Firecrawl のスクレイピング機能を強化する AI エージェントです。ブラウザのアクションを制御し、複雑なウェブサイト構造を横断して、従来のスクレイピングを超える包括的なデータ抽出を実現します。

複数ページにまたがる遷移や要素とのインタラクションが必要な複雑な抽出タスクには、`/extract` エンドポイントで FIRE-1 エージェントを活用できます。

**例 (cURL) ：**

```bash
curl -X POST https://api.firecrawl.dev/v2/extract \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer YOUR_API_KEY' \
    -d '{
      "urls": ["https://example-forum.com/topic/123"],
      "prompt": "このフォーラムスレッドからすべてのユーザーコメントを抽出してください。",
      "schema": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {"type": "string"},
                "comment_text": {"type": "string"}
              },
              "required": ["author", "comment_text"]
            }
          }
        },
        "required": ["comments"]
      },
      "agent": {
        "model": "FIRE-1"
      }
    }'
```

> FIRE-1 はすでに稼働しており、プレビュー版として利用可能です。

<div id="billing-and-usage-tracking">
  ## 請求と利用状況の追跡
</div>

請求を簡素化し、Extract は他のエンドポイントと同様にクレジット制になりました。1 クレジットは 15 トークンに相当します。

[ダッシュボード](https://www.firecrawl.dev/app/extract)で Extract の利用状況を確認できます。

ご意見やサポートが必要な方は、[help@firecrawl.com](mailto:help@firecrawl.com) までメールでご連絡ください。

> Firecrawl API key が必要な AI エージェントの方は、自動オンボーディング手順について [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) を参照してください。
