> ## 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.

# レート制限

> 料金プラン別およびAPIリクエストのレート制限

レート制限は、チームが1分あたりに送信できるリクエスト数を制限し、同時実行数の上限は、並列で実行できるジョブ数を制限します。どちらも料金プランによって設定されており、いずれかを超えると、API は `429` レスポンスを返します。エラーの一覧と、バックオフ付き再試行のスニペットについては、[エラー](/ja/api-reference/errors) を参照してください。

<div id="billing-model">
  ## 課金モデル
</div>

Firecrawl はサブスクリプション型の月額プランを採用しています。完全な従量課金モデルは提供していませんが、**自動チャージ機能** により柔軟にスケールできます。プランに加入すると、クレジット残高が設定したしきい値を下回ったときに自動的に追加クレジットを購入できます。より大きな自動チャージパックほどお得なレートが適用されます。より大きなプランを契約する前に試したい場合は、まず Free または Hobby プランから始めることをおすすめします。

プランのダウングレードは次回更新時に反映されます。残り期間に相当するクレジットは付与されません。

<div id="concurrent-browser-limits">
  ## 同時ブラウザ数の上限
</div>

同時ブラウザ数は、Firecrawl が並列で処理できるページ数を制御します。ご利用プランによって上限が決まり、それを超えたジョブはブラウザが空くまでキューで待機します。

キューで待機している時間もリクエストの [`timeout`](/ja/advanced-scraping-guide#timing-and-cache) パラメータに対してカウントされるため、待ち続けるのではなく早期に失敗させたい場合は、`timeout` を短めに設定できます。作業を送信する前に現在の空き状況を確認するには、[Queue Status](/ja/api-reference/endpoint/queue-status) エンドポイントを呼び出します。同時実行キューで待機しているジョブは、最長 48 時間でタイムアウトします。

<div id="current-plans">
  ### 現在のプラン
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>プラン</th>
        <th style={{ padding: '8px 12px' }}>同時ブラウザ数</th>
        <th style={{ padding: '8px 12px' }}>最大キュー待機ジョブ数</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>2</td>
        <td style={{ padding: '8px 12px' }}>50,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Hobby</td>
        <td style={{ padding: '8px 12px' }}>5</td>
        <td style={{ padding: '8px 12px' }}>50,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Standard</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>100,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Growth</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>200,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Scale / Enterprise</td>
        <td style={{ padding: '8px 12px' }}>150+</td>
        <td style={{ padding: '8px 12px' }}>300,000+</td>
      </tr>
    </tbody>
  </table>
</div>

各チームで、同時実行キューに待機できるジョブ数には上限があります。この上限を超えると、既存のジョブが完了するまで、新しいジョブは `429` ステータスコードで拒否されます。カスタムの同時実行上限が設定された上位プランでは、最大キュー待機ジョブ数は同時実行上限の 2,000 倍で、上限は 2,000,000 です。

より高い同時実行上限が必要な場合は、[Enterprise プランについてお問い合わせください](https://firecrawl.dev/enterprise)。

### Extract プラン (旧プラン)

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>プラン</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>同時ブラウザ数</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>最大キュー待機ジョブ数</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>2</td>
        <td style={{ padding: '8px 12px' }}>50,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Starter</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>100,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Explorer</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>200,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Pro</td>
        <td style={{ padding: '8px 12px' }}>200</td>
        <td style={{ padding: '8px 12px' }}>400,000</td>
      </tr>
    </tbody>
  </table>
</div>

<div id="api-rate-limits">
  ## API のレート制限
</div>

レート制限は 1 分あたりのリクエスト数で測定されており、主な目的は悪用を防ぐことです。適切に設定されていれば、実際のボトルネックとなるのは同時ブラウザ数になります。レート制限はチームごとに適用されるため、同じチームに属するすべての APIキー は同じレート制限カウンターを共有します。

<div id="keyless-no-api-key">
  ### キーレス (APIキー不要)
</div>

公式の Firecrawl クライアント — [MCP server](/ja/mcp-server)、[CLI](/ja/sdks/cli)、または SDK — からのリクエストであれば、scrape、search、Interact、解析 は **APIキーなしで** 利用できます。Research endpoints も、research index が有効になっている Firecrawl Cloud では APIキーなしで利用できます。その他のエンドポイント (クロール、extract、map、バッチスクレイプ など) は、キーなしでは利用できません。

キーレス利用は無料ですが、IP アドレスごとに 1 日あたり **2 つの制限** があり、どちらかを超えると `429` が返されます。

* 1 日あたりの **requests** の上限
* 1 日あたりの **クレジット** の上限。オペレーションごとに消費する クレジット は異なり (たとえば、Interact や JSON extraction は基本的な scrape より多く消費します) 、利用量が多いほど クレジット 上限に早く達します。

[無料の APIキーに登録](https://firecrawl.dev) すると、1,000 クレジット と、追加料金なしでより高い レート制限 を利用できます。設定後は、公式クライアントが自動的にそのキーを使用します。

<div id="current-plans">
  ### 現在のプラン
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>プラン</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/scrape</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/map</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/crawl</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/search</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/agent</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/crawl/status</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/agent/status</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>10</td>
        <td style={{ padding: '8px 12px' }}>10</td>
        <td style={{ padding: '8px 12px' }}>1</td>
        <td style={{ padding: '8px 12px' }}>5</td>
        <td style={{ padding: '8px 12px' }}>10</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>500</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Hobby</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>15</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Standard</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>250</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Growth</td>
        <td style={{ padding: '8px 12px' }}>5000</td>
        <td style={{ padding: '8px 12px' }}>5000</td>
        <td style={{ padding: '8px 12px' }}>250</td>
        <td style={{ padding: '8px 12px' }}>2500</td>
        <td style={{ padding: '8px 12px' }}>1000</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Scale</td>
        <td style={{ padding: '8px 12px' }}>7500</td>
        <td style={{ padding: '8px 12px' }}>7500</td>
        <td style={{ padding: '8px 12px' }}>750</td>
        <td style={{ padding: '8px 12px' }}>7500</td>
        <td style={{ padding: '8px 12px' }}>1000</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>
    </tbody>
  </table>
</div>

これらのレートリミットは、すべてのユーザーがAPIを公平に利用できるようにし、その可用性を確保するために設けられています。より高い上限が必要な場合は、カスタムプランについてご相談いただくために [help@firecrawl.com](mailto:help@firecrawl.com) までお問い合わせください。

<div id="extract-endpoints">
  ### Extract エンドポイント
</div>

Extract エンドポイントには、対応する `/agent` エンドポイントと同じレート制限が適用されます。

<div id="batch-scrape-endpoints">
  ### バッチスクレイプエンドポイント
</div>

バッチスクレイプエンドポイントには、対応する `/crawl` と同じレート制限が適用されます。

<div id="browser-sandbox">
  ### ブラウザサンドボックス
</div>

ブラウザサンドボックスのエンドポイントには、サブスクリプションに応じて変動するプランごとのレート制限があります。

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>プラン</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/interact</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/interact/\{id}/execute</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>2</td>
        <td style={{ padding: '8px 12px' }}>10</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Hobby</td>
        <td style={{ padding: '8px 12px' }}>20</td>
        <td style={{ padding: '8px 12px' }}>100</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Standard</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>500</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Growth</td>
        <td style={{ padding: '8px 12px' }}>1,000</td>
        <td style={{ padding: '8px 12px' }}>5,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Scale</td>
        <td style={{ padding: '8px 12px' }}>1,500</td>
        <td style={{ padding: '8px 12px' }}>7,500</td>
      </tr>
    </tbody>
  </table>
</div>

さらに、各チームのプランによって、同時にアクティブにできるブラウザセッション数が決まります (上記の「同時ブラウザ数の上限」を参照) 。この制限を超えると、既存のセッションが破棄されるまで、新しいセッションのリクエストは `429` ステータスコードを返します。

<div id="fire-1-agent">
  ### FIRE-1 エージェント
</div>

FIRE-1 エージェントを利用するリクエストには、各エンドポイントごとに独立してカウントされる専用のレート制限が設定されています。

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>エンドポイント</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>レート制限 (リクエスト/分) </th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>/scrape</td>
        <td style={{ padding: '8px 12px' }}>10</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>/extract</td>
        <td style={{ padding: '8px 12px' }}>10</td>
      </tr>
    </tbody>
  </table>
</div>

<div id="extract-plans-legacy">
  ### Extract プラン (旧プラン)
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>プラン</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/extract (リクエスト/分) </th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/extract/status (リクエスト/分) </th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Starter</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Explorer</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Pro</td>
        <td style={{ padding: '8px 12px' }}>1000</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>
    </tbody>
  </table>
</div>
