Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

アカウント単位のレート制限

最終更新 Markdown で表示Agent セットアップ

デフォルトでは、GraphQL Analytics API はユーザー単位または API トークン単位でレート制限を適用します。ゾーンやアカウントが増えると、分析トラフィックはすべて、その 1 つの認証情報あたりの枠を奪い合います。

アカウント単位のレート制限は、代わりにアカウント単位とゾーン単位で制限を適用します。各アカウントと各ゾーンに独立した枠があるため、1 人のユーザーまたは 1 つのトークンが複数リソースを同時にクエリしても、共有枠を使い果たしません。複数のゾーンまたはアカウントの分析をクエリする場合は、このモデルをおすすめします。

メリット

  • 規模に合わせて伸びます。 スループットは、1 つの認証情報あたりの上限ではなく、クエリするアカウント数とゾーン数に応じて増えます。
  • Enterprise 向けの枠が大きいです。 Enterprise のお客様は、アカウントあたり(15 rps)とゾーンあたり(10 rps)のデフォルト枠が大きくなります。
  • 上限の引き上げがしやすいです。 余裕が必要ならご連絡ください。必要な上限引き上げに対応できます。

アカウント単位のレート制限を有効にする

既存の GraphQL API エンドポイント(https://api.cloudflare.com/client/v4/graphql)へのリクエストに、次の HTTP ヘッダーを付けます。

X-Rate-Limit-Type: account-based

エンドポイントの URL と認証情報はそのままです。このヘッダーがないリクエストは、従来どおりユーザー単位 / トークン単位の制限を使うため、段階的に導入できます。

制限

対象 デフォルト制限
各アカウント 1 秒あたり 1 リクエスト(5 分間で 300 リクエスト)
各ゾーン 1 秒あたり 1 リクエスト(5 分間で 300 リクエスト)

accounts ブロック 1 つは、参照しているアカウントに対して 1 リクエストとして数えます。zones ブロック 1 つは、参照しているゾーンに対して 1 リクエストとして数えます。zones ブロックが accounts ブロックの内側にある場合は、そのアカウントに対して数えます。

制限はリソース単位なので、1 人のユーザーまたは 1 つのトークンが使える合計スループットは、クエリするアカウントとゾーンの数に応じて増えます。

クエリの要件

ほとんどのクエリはそのまま使えます。調整が必要なのは、最上位(viewer)でゾーンの一覧または範囲を選ぶクエリだけです。そうしたゾーンは、1 つの accounts ブロックの内側に入れてください。調整後のクエリは、どちらのレート制限モデルでも有効です。

単一ゾーンのクエリ — 変更不要です。

{
  viewer {
    zones(filter: { zoneTag: "<ZONE_TAG>" }) {
      # ...
    }
  }
}

単一アカウントのクエリ — 変更不要です。

{
  viewer {
    accounts(filter: { accountTag: "<ACCOUNT_TAG>" }) {
      # ...
    }
  }
}

ゾーンの一覧または範囲をクエリする場合 — 所有アカウントの内側に入れます。

# Not supported: a list of zones at the viewer level
{
  viewer {
    zones(filter: { zoneTag_in: ["<ZONE_A>", "<ZONE_B>"] }) {
      # ...
    }
  }
}

# Supported: the same zones nested inside their account
{
  viewer {
    accounts(filter: { accountTag: "<ACCOUNT_TAG>" }) {
      zones(filter: { zoneTag_in: ["<ZONE_A>", "<ZONE_B>"] }) {
        # ...
      }
    }
  }
}

zoneTag_gt などの範囲フィルターも同じです。クエリの意味は変わりません。ゾーンを所有するアカウントタグが必要なだけです。このタグはすでに持っているはずです。

制限の引き上げを依頼する

アカウントあたりまたはゾーンあたりのデフォルトスループットより多く必要な場合は、Cloudflare のアカウントチームに連絡し、クエリする特定のアカウントとゾーンの引き上げを依頼してください。このモデルでは、引き上げはリソース単位で適用され、エンジニアリングリリースを待たずにすぐ反映されます。

レート制限エラー

制限を超えると、API は extensions.codebudget のエラーを返し、制限されたアカウントまたはゾーンを示します。

{
  "data": null,
  "errors": [
    {
      "extensions": { "code": "budget", "timestamp": "2026-01-01T01:01:01Z" },
      "message": "Account <ACCOUNT_TAG> has exceeded its rate limit. Please try again after 5 minutes. Refer to this page for more details about rate limits: https://developers.cloudflare.com/analytics/graphql-api/limits/",
      "path": null
    }
  ]
}

同等のゾーンエラーは Zone <ZONE_TAG> has exceeded its rate limit です。5 分間のウィンドウのあと再試行するか、トラフィックをリソースに分散するか、制限の引き上げを依頼してください。

役に立ちましたか?