> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# スクレイピング

> あらゆるURLをクリーンなデータに変換

Firecrawl は Web ページを Markdown に変換し、LLM アプリケーションに最適な形式にします。

* 複雑な処理を管理します: プロキシ、キャッシュ、レート制限、JavaScript でブロックされたコンテンツ
* 動的コンテンツに対応します: 動的な Web サイト、JavaScript でレンダリングされるサイト、PDF、画像
* クリーンな Markdown、構造化データ、スクリーンショット、または HTML を出力します。

詳細は、[Scrape Endpoint APIリファレンス](https://docs.firecrawl.dev/api-reference/endpoint/scrape)を参照してください。

<Card title="Playground で試す" icon="play" href="https://www.firecrawl.dev/playground?endpoint=scrape">
  インタラクティブな Playground でスクレイピングを試せます。コードは不要です。
</Card>

<Note>リクエストが失敗した場合は、エラーコード、原因、対処法、再試行に関するガイダンスの一覧については[Errors](/ja/api-reference/errors)を参照してください。</Note>

<div id="scraping-a-url-with-firecrawl">
  ## FirecrawlでURLをスクレイピングする
</div>

<div id="scrape-endpoint">
  ### /scrape エンドポイント
</div>

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

<div id="installation">
  ### インストール
</div>

<CodeGroup>
  ```python Python theme={null}
  # pip install firecrawl-py

  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です — より高いrate limitsが必要な場合は追加してください:
    # api_key="fc-YOUR-API-KEY",
  )
  ```

  ```js Node theme={null}
  // npm install firecrawl

  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPIキーは不要です — より高いrate limitsのために追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });
  ```

  ```bash CLI theme={null}
  # npmでグローバルにインストール
  npm install -g firecrawl

  # 認証（初回セットアップ）
  firecrawl login
  ```
</CodeGroup>

### 使い方

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始するのにAPI キーは不要です。より高いレート制限のために追加してください：
    # api_key="fc-YOUR-API-KEY",
  )

  # ウェブサイトをスクレイピングする：
  doc = firecrawl.scrape("https://firecrawl.dev", formats=["markdown", "html"])
  print(doc)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始するのにAPIキーは不要です — より高いレート制限のために追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  // ウェブサイトをスクレイピングする:
  const doc = await firecrawl.scrape('https://firecrawl.dev', { formats: ['markdown', 'html'] });
  console.log(doc);
  ```

  ```bash cURL theme={null}
  # 開始にAPI keyは不要です — より高いRate Limitsを利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://firecrawl.dev",
      "formats": ["markdown", "html"]
    }'
  ```

  ```bash CLI theme={null}
  # Scrape a URL and get markdown
  firecrawl https://firecrawl.dev

  # 複数のフォーマットで取得（JSONを返す）
  firecrawl https://firecrawl.dev --format markdown,html,links --pretty
  ```
</CodeGroup>

パラメータの詳細は、[APIリファレンス](https://docs.firecrawl.dev/api-reference/endpoint/scrape)を参照してください。

<Tip>
  **PDFとドキュメント:** `/scrape` は、URLからPDF、DOCX、その他のドキュメント形式を自動検出します。PDFのURLは通常のWebページと同じように渡せます。Firecrawlが解析して、整形されたmarkdownを返します。URLでアクセスできないローカルファイルの場合は、代わりに[`/parse`](/ja/features/parse)を使用してください。

  ```python Python theme={null}
  doc = firecrawl.scrape("https://example.com/report.pdf", formats=["markdown"])
  print(doc.markdown)
  ```
</Tip>

<Info>
  各スクレイピングで1クレジットを消費します。次のオプションには追加クレジットが必要です。JSONモードは1ページあたり追加で4クレジット、questionフォーマットとhighlightsフォーマットは各フォーマットごとに1ページあたり追加で4クレジット、強化プロキシは1ページあたり追加で4クレジット、PIIの秘匿化は1ページあたり追加で4クレジット、PDF解析はPDFの1ページあたり1クレジットを消費し、音声または動画抽出は1ページあたり追加で4クレジットかかります。
</Info>

### レスポンス

SDK はデータオブジェクトを直接返します。cURL は以下のとおり、ペイロードをそのまま返します。

```json theme={null}
{
  "success": true,
  "data" : {
    "markdown": "Launch Week I が開幕！[2日目のリリースを見る 🚀](https://www.firecrawl.dev/blog/launch-week-i-day-2-doubled-rate-limits)[💥 2か月無料をゲット...",
    "html": "<!DOCTYPE html><html lang=\"en\" class=\"light\" style=\"color-scheme: light;\"><body class=\"__variable_36bd41 __variable_d7dc5d font-inter ...",
    "metadata": {
      "title": "ホーム - Firecrawl",
      "description": "Firecrawl は、あらゆるウェブサイトをクリーンな Markdown にクロールして変換します。",
      "language": "en",
      "keywords": "Firecrawl,Markdown,データ,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "あらゆるウェブサイトを LLM で使えるデータに変換。",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl",
      "sourceURL": "https://firecrawl.dev",
      "statusCode": 200,
      "contentType": "text/html"
    }
  }
}
```

<div id="scrape-formats">
  ## スクレイピングのフォーマット
</div>

出力のフォーマットを選択できます。複数の出力フォーマットを指定することも可能です。サポートされているフォーマットは次のとおりです:

* 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` フィールドで返されます

出力のキーは、選択したフォーマットに対応します。

<div id="extract-structured-data">
  ## 構造化データの抽出
</div>

<div id="scrape-with-json-endpoint">
  ### /scrape (json あり) エンドポイント
</div>

スクレイピングしたページから構造化データを抽出するために使用します。

<Tip>
  商品を抽出する場合、商品ページでは [`product` format](#extract-product-data) が構造化された商品フィールド (タイトル、価格、在庫状況、variants) を決定論的に返します。LLM の呼び出しも schema の定義も不要です。カスタムフィールドが必要な場合や、商品ページ以外を対象にする場合は `json` を使用してください。
</Tip>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl
  from pydantic import BaseModel

  app = Firecrawl(
    # 始めるのにAPIキーは不要です — より高いRate Limitsを得るには追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  class CompanyInfo(BaseModel):
      company_mission: str
      supports_sso: bool
      is_open_source: bool
      is_in_yc: bool

  result = app.scrape(
      'https://firecrawl.dev',
      formats=[{
        "type": "json",
        "schema": CompanyInfo.model_json_schema()
      }],
      only_main_content=False,
      timeout=120000
  )

  print(result)
  ```

  ```js Node theme={null}
  import { Firecrawl } from "firecrawl";
  import { z } from "zod";

  const app = new Firecrawl({
    // 始めるのにAPIキーは不要です — より高いレート制限が必要な場合は追加してください:
    // apiKey: "fc-YOUR_API_KEY",
  });

  // Define schema to extract contents into
  const schema = z.object({
    company_mission: z.string(),
    supports_sso: z.boolean(),
    is_open_source: z.boolean(),
    is_in_yc: z.boolean()
  });

  const result = await app.scrape("https://firecrawl.dev", {
    formats: [{
      type: "json",
      schema: schema
    }],
  });

  console.log(result);
  ```

  ```bash cURL theme={null}
  # 開始するにAPIキーは不要です — レート制限を引き上げるには -H "Authorization: Bearer YOUR_API_KEY" を追加してください:
  curl -X POST https://api.firecrawl.dev/v2/scrape \
      -H 'Content-Type: application/json' \
      -d '{
        "url": "https://firecrawl.dev",
        "formats": [ {
          "type": "json",
          "schema": {
            "type": "object",
            "properties": {
              "company_mission": {
                        "type": "string"
              },
              "supports_sso": {
                        "type": "boolean"
              },
              "is_open_source": {
                        "type": "boolean"
              },
              "is_in_yc": {
                        "type": "boolean"
              }
            },
            "required": [
              "company_mission",
              "supports_sso",
              "is_open_source",
              "is_in_yc"
            ]
          }
        } ]
      }'
  ```
</CodeGroup>

出力:

```json JSON theme={null}
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI対応のウェブスクレイピングとデータ抽出",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI対応のウェブスクレイピングとデータ抽出",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI対応のウェブスクレイピングとデータ抽出",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}
```

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

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

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  app = Firecrawl(
    # 始めるのにAPIキーは不要です — レート制限を引き上げるには追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  result = app.scrape(
      'https://firecrawl.dev',
      formats=[{
        "type": "json",
        "prompt": "Extract the company mission from the page."
      }],
      only_main_content=False,
      timeout=120000
  )

  print(result)
  ```

  ```js Node theme={null}
  import { Firecrawl } from "firecrawl";

  const app = new Firecrawl({
    // 開始にAPIキーは不要です — より高いレート制限のために追加してください:
    // apiKey: "fc-YOUR_API_KEY",
  });

  const result = await app.scrape("https://firecrawl.dev", {
    formats: [{
      type: "json",
      prompt: "Extract the company mission from the page."
    }]
  });

  console.log(result);
  ```

  ```bash cURL theme={null}
  # 開始にAPIキーは不要です — より高いレート制限を利用するには -H "Authorization: Bearer YOUR_API_KEY" を追加してください:
  curl -X POST https://api.firecrawl.dev/v2/scrape \
      -H 'Content-Type: application/json' \
      -d '{
        "url": "https://firecrawl.dev",
        "formats": [{
          "type": "json",
          "prompt": "Extract the company mission from the page."
        }]
      }'
  ```
</CodeGroup>

出力:

```json JSON theme={null}
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI搭載のウェブスクレイピングとデータ抽出",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI搭載のウェブスクレイピングとデータ抽出",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI搭載のウェブスクレイピングとデータ抽出",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}
```

<div id="json-format-options">
  ### JSON フォーマットのオプション
</div>

`json` フォーマットを使用する場合は、`formats` 内に以下のパラメータを含むオブジェクトを渡します:

* `schema`: 構造化出力のための JSON Schema。
* `prompt`: スキーマがある場合や、軽い指示で十分な場合に抽出を補助する任意のプロンプト。

<div id="extract-brand-identity">
  ## ブランドアイデンティティの抽出
</div>

<div id="scrape-with-branding-endpoint">
  ### /scrape (ブランディング付き) エンドポイント
</div>

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

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です — より高いレート制限が必要な場合は追加してください:
    # api_key='fc-YOUR_API_KEY',
  )

  result = firecrawl.scrape(
      url='https://firecrawl.dev',
      formats=['branding']
  )

  print(result['branding'])
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPI keyは不要です — より高いrate limitsが必要な場合は追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const result = await firecrawl.scrape('https://firecrawl.dev', {
      formats: ['branding']
  });

  console.log(result.branding);
  ```

  ```bash cURL theme={null}
  # 開始にAPI keyは不要です — より高いrate limitsを利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://firecrawl.dev",
      "formats": ["branding"]
    }'
  ```
</CodeGroup>

### レスポンス

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

```json Output theme={null}
{
  "success": true,
  "data": {
    "branding": {
      "colorScheme": "dark",
      "logo": "https://firecrawl.dev/logo.svg",
      "colors": {
        "primary": "#FF6B35",
        "secondary": "#004E89",
        "accent": "#F77F00",
        "background": "#1A1A1A",
        "textPrimary": "#FFFFFF",
        "textSecondary": "#B0B0B0"
      },
      "fonts": [
        {
          "family": "Inter"
        },
        {
          "family": "Roboto Mono"
        }
      ],
      "typography": {
        "fontFamilies": {
          "primary": "Inter",
          "heading": "Inter",
          "code": "Roboto Mono"
        },
        "fontSizes": {
          "h1": "48px",
          "h2": "36px",
          "h3": "24px",
          "body": "16px"
        },
        "fontWeights": {
          "regular": 400,
          "medium": 500,
          "bold": 700
        }
      },
      "spacing": {
        "baseUnit": 8,
        "borderRadius": "8px"
      },
      "components": {
        "buttonPrimary": {
          "background": "#FF6B35",
          "textColor": "#FFFFFF",
          "borderRadius": "8px"
        },
        "buttonSecondary": {
          "background": "transparent",
          "textColor": "#FF6B35",
          "borderColor": "#FF6B35",
          "borderRadius": "8px"
        }
      },
      "images": {
        "logo": "https://firecrawl.dev/logo.svg",
        "favicon": "https://firecrawl.dev/favicon.ico",
        "ogImage": "https://firecrawl.dev/og-image.png"
      }
    }
  }
}
```

<div id="branding-profile-structure">
  ### ブランディングプロファイルの構造
</div>

`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`: ブランドの特性 (トーン、エネルギー、対象ユーザー)

<div id="combining-with-other-formats">
  ### 他のフォーマットとの併用
</div>

ブランディング用フォーマットを他のフォーマットと組み合わせることで、ページの包括的なデータを取得できます:

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です — レート制限を引き上げるには追加してください:
    # api_key='fc-YOUR_API_KEY',
  )

  result = firecrawl.scrape(
      url='https://firecrawl.dev',
      formats=['markdown', 'branding', 'screenshot']
  )

  print(result['markdown'])
  print(result['branding'])
  print(result['screenshot'])
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 始めるのにAPIキーは不要です — レート制限を引き上げるには追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const result = await firecrawl.scrape('https://firecrawl.dev', {
      formats: ['markdown', 'branding', 'screenshot']
  });

  console.log(result.markdown);
  console.log(result.branding);
  console.log(result.screenshot);
  ```

  ```bash cURL theme={null}
  # 開始するためにAPIキーは不要です — より高いレート制限を利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://firecrawl.dev",
      "formats": ["markdown", "branding", "screenshot"]
    }'
  ```
</CodeGroup>

<div id="extract-product-data">
  ## 商品データを抽出
</div>

`product` フォーマットでは、商品データを**決定論的に**抽出できます。これは [`json` フォーマット](#extract-structured-data) と同様の構造化された出力ですが、LLM の呼び出しやユーザー定義のスキーマは不要で、商品ページ向けに特化しています。これまで `json` スキーマで商品フィールドを取得していた場合は、代わりに `formats: ["product"]` を使ってください。こちらのほうが高速かつ低コストですが、対応は商品に限定されます。

戻り値は、`title`、`brand`、`category`、`description`、`variants` を含む `product` オブジェクトです。各 `variant` には `price`、`original price`、`availability`、`images` が含まれ、価格監視、カタログ取り込み、価格比較ツールに役立ちます。

<div id="scrape-with-product-endpoint">
  ### /scrape (product付き) エンドポイント
</div>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です — より高いrate limitsが必要な場合は追加してください:
    # api_key='fc-YOUR_API_KEY',
  )

  result = firecrawl.scrape(
      url='https://example.com/products/wireless-headphones',
      formats=['product']
  )

  print(result['product'])
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPIキーは不要です — より高いレート制限が必要な場合は追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const result = await firecrawl.scrape('https://example.com/products/wireless-headphones', {
      formats: ['product']
  });

  console.log(result.product);
  ```

  ```bash cURL theme={null}
  # 開始にAPIキーは不要です — より高いレート制限を利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://example.com/products/wireless-headphones",
      "formats": ["product"]
    }'
  ```
</CodeGroup>

### レスポンス

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

```json Output theme={null}
{
  "success": true,
  "data": {
    "product": {
      "title": "Wireless Noise-Cancelling Headphones",
      "brand": "Acme",
      "category": "Electronics > Audio > Headphones",
      "url": "https://example.com/products/wireless-headphones",
      "description": "Over-ear wireless headphones with active noise cancellation, 30-hour battery life, and plush memory-foam ear cushions for all-day comfort.",
      "variants": [
        {
          "id": "wireless-headphones-black",
          "sku": "ACME-WH-BLACK",
          "title": "Wireless Noise-Cancelling Headphones — Black",
          "values": {
            "color": "Black"
          },
          "price": {
            "amount": 199.99,
            "currency": "USD",
            "formatted": "$199.99"
          },
          "sale": {
            "originalPrice": {
              "amount": 249.99,
              "currency": "USD",
              "formatted": "$249.99"
            }
          },
          "availability": {
            "inStock": true,
            "text": "In Stock"
          },
          "images": [
            {
              "url": "https://example.com/images/headphones-black.jpg",
              "alt": "Wireless Noise-Cancelling Headphones — Black"
            }
          ]
        }
      ]
    }
  }
}
```

<div id="product-object-structure">
  ### Product オブジェクトの構造
</div>

`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` テキストが含まれます (任意)

<div id="how-product-extraction-works">
  ### 商品抽出の仕組み
</div>

`product` フォーマットは、ページ上の構造化データから決定論的に商品を抽出します。LLM は関与しません。複数のソースを、**JSON-LD > schema.org microdata > RDFa > 埋め込み状態 (`__NEXT_DATA__`/Nuxt/Apollo/Redux/Remix) > AliExpress `runParams` > GA4 `dataLayer` > OpenGraph/`<meta>`** の優先順位でマージします。このマージは同一性を考慮して行われるため、異なる商品のフィールドが混在することはありません。通貨は、ページ上のソースに含まれている場合にのみ返されます。

<Note>
  商品抽出はフェイルクローズです。あいまいなページでは商品は返されず、OpenGraph のような弱いソースは価格が存在する場合にのみ利用されます。抽出可能な商品がないページでは、レスポンスには `product` オブジェクトが含まれず、`warning` が追加されます (例: "No product found...") 。
</Note>

<Note>
  **セルフホスティング:** `product` フォーマットは専用の商品抽出サービスによって提供されます。Firecrawl Cloud ではそのまま利用できます。セルフホストする場合は、そのサービスを指すように `PRODUCT_EXTRACTION_SERVICE_URL` を設定してください。未設定の場合、`product` フォーマットをリクエストすると `warning` が返され、商品は返されません (音声/動画フォーマットが各サービスで採用しているのと同じパターンです) 。
</Note>

### 他のフォーマットと組み合わせる

productフォーマットは他のフォーマットと組み合わせることで、網羅的なページデータを取得できます。

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です。より高いレート制限が必要な場合は追加してください:
    # api_key='fc-YOUR_API_KEY',
  )

  result = firecrawl.scrape(
      url='https://example.com/products/wireless-headphones',
      formats=['markdown', 'product']
  )

  print(result['markdown'])
  print(result['product'])
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPIキーは不要です — より高いrate limitsが必要な場合は追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const result = await firecrawl.scrape('https://example.com/products/wireless-headphones', {
      formats: ['markdown', 'product']
  });

  console.log(result.markdown);
  console.log(result.product);
  ```

  ```bash cURL theme={null}
  # 開始するにAPIキーは不要です — より高いレート制限を利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://example.com/products/wireless-headphones",
      "formats": ["markdown", "product"]
    }'
  ```
</CodeGroup>

<div id="audio-extraction">
  ## 音声抽出
</div>

`audio` フォーマットでは、対応する Web サイト (YouTube など) から音声を MP3 ファイルとして抽出し、署名付きの Google Cloud Storage URL を返します。これは、音声処理パイプラインや文字起こしサービス、ポッドキャスト向けツールの構築に役立ちます。

<Info>
  音声抽出のコストは 1 ページあたり 5 クレジットです (基本 1 + 追加 4) 。
</Info>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPI keyは不要です — より高いrate limitsのために追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  doc = firecrawl.scrape("https://www.youtube.com/watch?v=dQw4w9WgXcQ", formats=["audio"])
  print(doc.audio)  # MP3ファイルへの署名付きGCS URL
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPIキーは不要です — レート制限を引き上げるには追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const doc = await firecrawl.scrape('https://www.youtube.com/watch?v=dQw4w9WgXcQ', {
    formats: ['audio']
  });

  console.log(doc.audio); // Signed GCS URL to the MP3 file
  ```

  ```bash cURL theme={null}
  # 始めるのにAPI keyは不要です — より高いrate limitsを利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "formats": ["audio"]
    }'
  ```
</CodeGroup>

<div id="video-extraction">
  ## 動画抽出
</div>

`video` フォーマットでは、対応している Web サイト (例: YouTube) から最高画質の動画を抽出し、署名付きの Google Cloud Storage URL を返します。これは、動画処理パイプラインやモデレーションツール、メディアアーカイブ用ワークフローの構築に役立ちます。

<Info>
  動画抽出のコストは 1 ページあたり 5 クレジットです (基本 1 + 追加 4) 。
</Info>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPI keyは不要です — より高いRate Limitsのために追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  doc = firecrawl.scrape("https://www.youtube.com/watch?v=dQw4w9WgXcQ", formats=["video"])
  print(doc.video)  # 動画ファイルへの署名付きGCS URL
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPI keyは不要です — より高いRate Limitsのために追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const doc = await firecrawl.scrape('https://www.youtube.com/watch?v=dQw4w9WgXcQ', {
    formats: ['video']
  });

  console.log(doc.video); // 動画ファイルへの署名付きGCS URL
  ```

  ```bash cURL theme={null}
  # 始めるにはAPI keyは不要です — より高いrate limitsを利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "formats": ["video"]
    }'
  ```
</CodeGroup>

<span id="question-format" />

<div id="question-format">
  ## 質問フォーマット
</div>

`question` フォーマットを使うと、ページについて自然言語で質問できます。Firecrawl は、レスポンスの `answer` フィールドに回答を返します。

<Info>
  `question` フォーマットのコストは、1 ページあたり 5 クレジットです (基本 1 + LLM 呼び出しの追加 4) 。
</Info>

フォーマットオブジェクト内のオプション:

* `question` (`type: "question"` の場合は必須) : 回答する質問。最大 10,000 文字。

`question` は他のフォーマットと組み合わせることもできます。たとえば、`markdown` と `question` を一緒にリクエストすると、1 回の呼び出しでページの内容と回答を取得できます。

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です。より高いRate Limitsが必要な場合は追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  doc = firecrawl.scrape(
      "https://firecrawl.dev",
      formats=[{"type": "question", "question": "What is Firecrawl?"}],
  )
  print(doc.answer)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPI keyは不要です — より高いRate Limitsのために追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const doc = await firecrawl.scrape('https://firecrawl.dev', {
    formats: [{ type: 'question', question: 'What is Firecrawl?' }],
  });

  console.log(doc.answer);
  ```

  ```bash cURL theme={null}
  # 開始するにはAPI keyは不要です — より高いRate Limitsを利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://firecrawl.dev",
      "formats": [
        { "type": "question", "question": "What is Firecrawl?" }
      ]
    }'
  ```
</CodeGroup>

`question` フォーマットは、`scrapeOptions` を介して `/search` でも利用でき、各検索結果に対して同じ抽出を実行します。

<span id="highlights-format" />

<div id="highlights-format">
  ## Highlights フォーマット
</div>

ページから関連するソーステキストを見つけるには、`highlights` フォーマットを使用します。Firecrawl は、選択されたテキストをレスポンスの `highlights` フィールドに返します。

<Info>
  `highlights` フォーマットのコストは 1 ページあたり 5 クレジット です (基本 1 + LLM 呼び出しの追加 4) 。
</Info>

フォーマットオブジェクト内のオプション:

* `query` (`type: "highlights"` の場合は必須) : ソーステキストを選択するためのリクエスト。最大 10,000 文字。

`highlights` は他のフォーマットと組み合わせることもできます。たとえば、`markdown` と `highlights` を一緒にリクエストすると、ページコンテンツとソーステキストを 1 回の呼び出しで取得できます。

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPI keyは不要です — より高いRate Limitsが必要な場合は追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  doc = firecrawl.scrape(
      "https://firecrawl.dev",
      formats=[{"type": "highlights", "query": "What is Firecrawl?"}],
  )
  print(doc.highlights)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始するためにAPI keyは不要です — より高いRate Limitsが必要な場合は追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const doc = await firecrawl.scrape('https://firecrawl.dev', {
    formats: [{ type: 'highlights', query: 'What is Firecrawl?' }],
  });

  console.log(doc.highlights);
  ```

  ```bash cURL theme={null}
  # 開始するにはAPI keyは不要です — より高いRate Limitsを利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://firecrawl.dev",
      "formats": [
        { "type": "highlights", "query": "What is Firecrawl?" }
      ]
    }'
  ```
</CodeGroup>

`highlights` フォーマットは、`scrapeOptions` を介して `/search` でも利用でき、各 search result に対して同じ extraction を実行します。

<div id="pii-redaction">
  ## PII のリダクション
</div>

返される `markdown` に含まれる個人を特定できる情報をリダクションするには、`redactPII: true` を設定します。`markdown` フィールドには、リダクション後の結果が含まれます。

SDK、cURL、CLI、MCP の例については、[PII Redaction](/ja/features/pii-redaction) を参照してください。

<div id="interacting-with-the-page-with-actions">
  ## アクションを使ってページとやり取りする
</div>

Firecrawl を使うと、スクレイピングの前に Web ページ上でさまざまなアクションを実行できます。これは、動的コンテンツとのインタラクション、ページ遷移、ユーザー操作が必要なコンテンツへのアクセスに特に有効です。

<Tip>
  **アクションよりも [Interact](/ja/features/interact) を推奨します。スクレイピングしたページを操作するための、より新しく強力な方法です。**

  Interact は、呼び出しをまたいで維持されるステートフルなブラウザセッションとして動作するため、次のいずれかを使ってページを段階的に操作できます。

  * **自然言語**: 柔軟で非決定的なフロー向け。例: *「『wireless headphones』を検索し、評価 4 以上かつ 200 ドル未満に絞り込んで、結果を返す」*。
  * **Playwright または agent-browser code**: 決定的な手順向け。例: `await page.click('#export')`.

  Interact は、プロファイル、永続セッション、ライブで埋め込み可能なブラウザビュー (エンドユーザー自身がブラウザを操作できるインタラクティブモードを含む) にも対応しています。
</Tip>

以下は、アクションを使って google.com に移動し、Firecrawl を検索し、最初の結果をクリックしてスクリーンショットを取得する例です。

ページの読み込み時間を確保するため、他のアクションの前後には基本的に `wait` アクションを使用することが重要です。

<div id="example">
  ### 例
</div>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です — より高いレート制限が必要な場合は追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  doc = firecrawl.scrape(
      url="https://example.com/login",
      formats=["markdown"],
      actions=[
          {"type": "write", "text": "john@example.com"},
          {"type": "press", "key": "Tab"},
          {"type": "write", "text": "secret"},
          {"type": "click", "selector": 'button[type="submit"]'},
          {"type": "wait", "milliseconds": 1500},
          {"type": "screenshot", "full_page": True},
      ],
  )

  print(doc.markdown, doc.screenshot)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPIキーは不要です — レート制限を引き上げるには追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const doc = await firecrawl.scrape('https://example.com/login', {
    formats: ['markdown'],
    actions: [
      { type: 'write', text: 'john@example.com' },
      { type: 'press', key: 'Tab' },
      { type: 'write', text: 'secret' },
      { type: 'click', selector: 'button[type="submit"]' },
      { type: 'wait', milliseconds: 1500 },
      { type: 'screenshot', fullPage: true },
    ],
  });

  console.log(doc.markdown, doc.screenshot);
  ```

  ```bash cURL theme={null}
  # 開始にAPIキーは不要です — より高いレート制限を利用するには -H "Authorization: Bearer YOUR_API_KEY" を追加してください:
  curl -X POST https://api.firecrawl.dev/v2/scrape \
      -H 'Content-Type: application/json' \
      -d '{
        "url": "https://example.com/login",
        "formats": ["markdown"],
        "actions": [
          { "type": "write", "text": "john@example.com" },
          { "type": "press", "key": "Tab" },
          { "type": "write", "text": "secret" },
          { "type": "click", "selector": "button[type=\"submit\"]" },
          { "type": "wait", "milliseconds": 1500 },
          { "type": "screenshot", "fullPage": true },
        ],
    }'
  ```
</CodeGroup>

<div id="output">
  ### 出力
</div>

<CodeGroup>
  ```json JSON theme={null}
  {
    "success": true,
    "data": {
      "markdown": "初のローンチウィークが終了しました！ [まとめを見る 🚀](blog/firecrawl-launch-week-1-recap)...",
      "actions": {
        "screenshots": [
          "https://alttmdsdujxrfnakrkyi.supabase.co/storage/v1/object/public/media/screenshot-75ef2d87-31e0-4349-a478-fb432a29e241.png"
        ],
        "scrapes": [
          {
            "url": "https://www.firecrawl.dev/",
            "html": "<html><body><h1>Firecrawl</h1></body></html>"
          }
        ]
      },
      "metadata": {
        "title": "ホーム - Firecrawl",
        "description": "Firecrawlは、あらゆるウェブサイトをクリーンなMarkdownに変換します。",
        "language": "en",
        "keywords": "Firecrawl,Markdown,データ,Mendable,Langchain",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "あらゆるウェブサイトをLLM対応のデータに変換。",
        "ogUrl": "https://www.firecrawl.dev/",
        "ogImage": "https://www.firecrawl.dev/og.png?123",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "http://google.com",
        "statusCode": 200
      }
    }
  }
  ```
</CodeGroup>

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

<div id="location-and-language">
  ## ロケーションと言語
</div>

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

<div id="how-it-works">
  ### 仕組み
</div>

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

<div id="usage">
  ### 使い方
</div>

場所と言語の設定を使うには、リクエストボディに `location` オブジェクトを含め、次のプロパティを指定します:

* `country`: ISO 3166-1 alpha-2 の国コード (例: 'US', 'AU', 'DE', 'JP') 。既定値は 'US'。
* `languages`: 優先度順に並べた、リクエストで使用する希望言語およびロケールの配列。既定値は指定した location の言語。

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # 開始にAPIキーは不要です — レート制限を引き上げるには追加してください:
    # api_key="fc-YOUR-API-KEY",
  )

  doc = firecrawl.scrape('https://example.com',
      formats=['markdown'],
      location={
          'country': 'US',
          'languages': ['en']
      }
  )

  print(doc)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // 開始にAPIキーは不要です — レート制限を引き上げるには追加してください:
    // apiKey: "fc-YOUR-API-KEY",
  });

  const doc = await firecrawl.scrape('https://example.com', {
    formats: ['markdown'],
    location: { country: 'US', languages: ['en'] },
  });

  console.log(doc.metadata);
  ```

  ```bash cURL theme={null}
  # 開始するにはAPIキーは不要です — より高いレート制限を利用するには -H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  curl -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://example.com",
      "formats": ["markdown"],
      "location": { "country": "US", "languages": ["en"] }
    }'
  ```
</CodeGroup>

対応している地域の詳細は、[Proxies ドキュメント](/ja/features/proxies)を参照してください。

<div id="caching-and-maxage">
  ## キャッシュと maxAge
</div>

リクエストを高速化するため、Firecrawl は最近のコピーがある場合、デフォルトでキャッシュから結果を返します。

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

例 (常に最新コンテンツを取得) :

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl
  firecrawl = Firecrawl(api_key='fc-YOUR_API_KEY')

  doc = firecrawl.scrape(url='https://example.com', max_age=0, formats=['markdown'])
  print(doc)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

  const doc = await firecrawl.scrape('https://example.com', { maxAge: 0, formats: ['markdown'] });
  console.log(doc);
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://example.com",
      "maxAge": 0,
      "formats": ["markdown"]
    }'
  ```
</CodeGroup>

例 (10分のキャッシュウィンドウを使用) :

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl
  firecrawl = Firecrawl(api_key='fc-YOUR_API_KEY')

  doc = firecrawl.scrape(url='https://example.com', max_age=600000, formats=['markdown', 'html'])
  print(doc)
  ```

  ```js Node theme={null}

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

  const doc = await firecrawl.scrape('https://example.com', { maxAge: 600000, formats: ['markdown', 'html'] });
  console.log(doc);
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://example.com",
      "maxAge": 600000,
      "formats": ["markdown", "html"]
    }'
  ```
</CodeGroup>

<div id="batch-scraping-multiple-urls">
  ## 複数のURLのバッチスクレイピング
</div>

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

<div id="how-it-works">
  ### 仕組み
</div>

これは `/crawl` エンドポイントの動作に非常によく似ています。バッチスクレイプのジョブを送信し、進行状況を確認するためのジョブIDを返します。

SDK は同期型と非同期型の2つのメソッドを提供します。同期型はバッチスクレイプジョブの結果を返し、非同期型はバッチスクレイプのステータス確認に使えるジョブIDを返します。

<div id="usage">
  ### 使い方
</div>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

  job = firecrawl.batch_scrape([
      "https://firecrawl.dev",
      "https://docs.firecrawl.dev",
  ], formats=["markdown"], poll_interval=2, wait_timeout=120)

  print(job)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

  const job = await firecrawl.batchScrape([
    'https://firecrawl.dev',
    'https://docs.firecrawl.dev',
  ], { options: { formats: ['markdown'] }, pollInterval: 2, timeout: 120 });

  console.log(job);
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.firecrawl.dev/v2/batch/scrape" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "urls": ["https://firecrawl.dev", "https://docs.firecrawl.dev"],
      "formats": ["markdown"]
    }'
  ```
</CodeGroup>

<div id="response">
  ### Response
</div>

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

<div id="synchronous">
  #### 同期処理
</div>

```json 完了 theme={null}
{
  "status": "completed",
  "total": 36,
  "completed": 36,
  "creditsUsed": 36,
  "expiresAt": "2024-00-00T00:00:00.000Z",
  "next": "https://api.firecrawl.dev/v2/batch/scrape/123-456-789?skip=26",
  "data": [
    {
      "markdown": "[Firecrawl Docs のホームページ![light logo](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...",
      "html": "<!DOCTYPE html><html lang=\"en\" class=\"js-focus-visible lg:[--scroll-mt:9.5rem]\" data-js-focus-visible=\"\">...",
      "metadata": {
        "title": "Groq Llama 3 で「ウェブサイトと会話できる」機能を構築する | Firecrawl",
        "language": "en",
        "sourceURL": "https://docs.firecrawl.dev/learn/rag-llama3",
        "description": "Firecrawl、Groq Llama 3、LangChain を使って「自分のウェブサイトと会話できる」ボットを構築する方法を学びます。",
        "ogLocaleAlternate": [],
        "statusCode": 200
      }
    },
    ...
  ]
}
```

<div id="asynchronous">
  #### 非同期
</div>

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

```json theme={null}
{
  "success": true,
  "id": "123-456-789",
  "url": "https://api.firecrawl.dev/v2/batch/scrape/123-456-789"
}
```

<div id="enhanced-mode">
  ## 強化モード
</div>

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

[強化モード](/ja/features/enhanced-mode)について詳しくはこちら。

<div id="zero-data-retention-zdr">
  ## ゼロデータ保持 (ZDR)
</div>

Firecrawl は、厳格なデータ取り扱い要件を持つチーム向けに、ゼロデータ保持 (ZDR) をサポートしています。有効にすると、Firecrawl はページのコンテンツや抽出されたデータを、request の存続期間を超えて保持しません。

ZDR を有効にするには、request で `zeroDataRetention: true` を設定します。

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/scrape \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"],
    "zeroDataRetention": true
  }'
```

ZDR は Enterprise プランで利用でき、チームで有効化する必要があります。利用を開始するには、[firecrawl.dev/enterprise](https://www.firecrawl.dev/enterprise) をご覧ください。

ZDR では、基本のスクレイピングコストに加えて、**1ページあたり追加で1クレジット**が発生します。

<Note>
  ZDR モードではスクリーンショットは利用できません。スクリーンショットでは永続ストレージへのアップロードが必要になるため、ZDR の保証とは両立しません。`zeroDataRetention: true` と `screenshot` 形式の両方を含むリクエストはエラーを返します。
</Note>

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