デフォルトでは、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.code が budget のエラーを返し、制限されたアカウントまたはゾーンを示します。
{
"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 分間のウィンドウのあと再試行するか、トラフィックをリソースに分散するか、制限の引き上げを依頼してください。