Claude Rate Limits APIで組織・ワークスペースのレート制限を確認する
Rate Limits APIで組織とワークスペースのレート制限を読み取る実装をcurlで解説します。レスポンス構造とワークスペースの継承ルールも扱います。
Rate Limits APIで何が取得できるか
Rate Limits APIは、組織とワークスペースに設定されているレート制限をプログラムから読み取るAPIです。Claude Consoleの「Rate limits」設定画面に表示されている値と同じ情報を、コードから取得できます。
Rate Limits APIとは、/v1/organizations/rate_limits と /v1/organizations/workspaces/{workspace_id}/rate_limits という2つのエンドポイントの総称です。前者は組織全体に設定されたレート制限を、後者は特定のワークスペースに設定された上書き値を返します。どちらも読み取り専用で、値を書き換えるエンドポイントは存在しません。
用途は主に3つです。ゲートウェイやプロキシが持つレート制限の設定値を、起動時や定期実行で最新化する。Usage and Cost APIで取得した実際の消費量と突き合わせ、閾値に近づいたら通知する内部アラートを組む。プロビジョニング自動化が意図した上書き値どおりにワークスペースが設定されているかを監査する。
事前準備 — 必要な権限
Rate Limits APIを呼ぶには、Admin APIキー、org:admin スコープを持つOAuthトークン、またはワークスペースにスコープされていない個人・サービスアカウントキーのいずれかが必要です。ワークスペースAPIキーでは呼び出せません。Admin APIキーの作成手順とスコープ選択はClaude Admin APIキーの取得方法とスコープ選択で扱っています。
キーは環境変数 ANTHROPIC_API_KEY から読み込む前提のSDKクライアントを使うか、x-api-key ヘッダーに直接渡します。以降の例はcurlで統一します。
組織のレート制限を取得する
GET /v1/organizations/rate_limits は、組織レベルでMessages APIとその周辺リソースに設定されているレート制限を一覧で返します。Managed Agentsのような別プロダクトの制限は含まれません。
curl "https://api.anthropic.com/v1/organizations/rate_limits" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"レスポンスは「レート制限グループ」の配列です。モデルは複数のバージョンが1つのグループに束ねられ、同じ上限を共有します。バッチAPI・Files API・Token Counting API・Skills・Web検索ツールなど、モデル以外のリソースもそれぞれ独立したグループとして返ってきます。各グループの limits 配列には requests_per_minute や input_tokens_per_minute のようなリミッター種別ごとの値が並びます。
{
"data": [
{
"type": "rate_limit",
"group_type": "model_group",
"models": ["claude-opus-5"],
"limits": [
{ "type": "requests_per_minute", "value": 4000 },
{ "type": "input_tokens_per_minute", "value": 10000000 },
{ "type": "output_tokens_per_minute", "value": 800000 }
]
}
],
"next_page": null
}特定モデルの上限だけ知りたい場合は model クエリパラメーターにモデルIDまたはエイリアスを渡します。この絞り込みは組織エンドポイント専用で、ワークスペースエンドポイントには実装されていません。一致するモデルが無ければ404が返ります。
ワークスペースのレート制限を取得する
GET /v1/organizations/workspaces/{workspace_id}/rate_limits は、単一のワークスペースに設定された上書き値だけを返します。ここが組織エンドポイントとの最大の違いです。
curl "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/rate_limits" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"レスポンスに含まれない項目は、すべて組織レベルの値を継承していると解釈します。data に登場しないグループはそのグループ自体に上書きが無いという意味で、無制限という意味ではありません。グループは登場していても特定のリミッター種別が limits[] に無ければ、そのリミッターだけ組織値を継承します。
{
"data": [
{
"type": "workspace_rate_limit",
"group_type": "model_group",
"models": ["claude-opus-5"],
"limits": [
{ "type": "requests_per_minute", "value": 1000, "org_limit": 4000 },
{ "type": "input_tokens_per_minute", "value": 500000, "org_limit": 10000000 }
]
}
],
"next_page": null
}各リミッターには上書き値の value に加えて、組織側の値である org_limit も同じレコード内に入っています。差分を見るためにわざわざ組織エンドポイントを二重に呼ぶ必要はありません。ワークスペースIDが分からない場合はList Workspacesエンドポイントで一覧を取得するか、Claude Consoleのワークスペース設定画面で確認します。
group_typeで絞り込む
両エンドポイントとも group_type クエリパラメーターで、特定カテゴリーだけに絞り込めます。指定できる値は model_group / batch / token_count / files / skills / web_search の6種類です。
curl "https://api.anthropic.com/v1/organizations/rate_limits?group_type=batch" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"ページネーションは page パラメーターと next_page フィールドで扱いますが、現状はレスポンスが常に単一ページに収まり next_page は null です。将来件数が増えた場合に備え、next_page をループする実装にしておくと変更なしで追随できます。
RPM・ITPM・OTPMとは何か
レスポンスの limits 配列に並ぶ type は、リクエスト数(RPM)・入力トークン数(ITPM)・出力トークン数(OTPM)という3種類のリミッターを指します。モデルクラスごとにこの3種が個別に管理され、いずれか1つでも超えると429エラーになります。
見落としやすいのがキャッシュを考慮したITPMです。ほとんどのClaudeモデルでは、プロンプトキャッシュがヒットした入力トークンはITPMの消費に数えません。カウントされるのは未キャッシュの入力トークンだけです。Rate Limits APIが返す value はあくまで上限の設定値であり、キャッシュ活用によって実際にどこまで消費を抑えられるかは別問題です。上限を頻繁に使い切っている場合、値を引き上げる前にキャッシュヒット率を見直す余地がないか確認する価値があります。
Rate Limits APIとレスポンスヘッダーの違い
Rate Limits APIと、Messages APIの各レスポンスに付く anthropic-ratelimit-* ヘッダーは、似ているようで役割が異なります。Rate Limits APIは組織・ワークスペースに設定されている上限値そのものを返す設定情報です。一方レスポンスヘッダーは、直近のリクエストを起点にした残り消費量をリアルタイムで返します。
構成管理や監査にはRate Limits APIを、個々のリクエストが今どれだけ枠を消費したかの追跡にはレスポンスヘッダーを使う、という役割分担です。ワークスペース単位のトークン上限を超えた場合、anthropic-ratelimit-tokens-* ヘッダーにはそのワークスペースの値が入り、ワークスペース側の制限が適用されていなければ組織全体の合計値が入ります。どのワークスペースに対して計測されたリクエストかは anthropic-workspace-id ヘッダーで確認できます。両方を組み合わせることで、「設定はいくつか」と「今どれだけ使ったか」の両面を追えます。
公式SDKで呼び出す場合
curlの代わりに公式SDKを使う場合、Python・TypeScript・C#・Go・Javaでは list() がイテレーターを返すため、ページ送りを自前で書く必要はありません。PHP・Ruby・curlは1ページずつ読む実装です。以下はPythonでの組織レート制限の取得例です。
client = anthropic.Anthropic()
rate_limits = client.beta.organization.rate_limits.list()
for group in rate_limits:
models = f" ({', '.join(group.models)})" if group.models else ""
print(f"{group.group_type}{models}")
for limit in group.limits:
print(f" {limit.type}: {limit.value}")ワークスペース側は client.beta.organization.workspaces.rate_limits.list(workspace_id) という形でワークスペースIDを引数に渡します。エンドポイント名がSDK側では organization.rate_limits と organization.workspaces.rate_limits に分かれている点は、curlでパス構造を直接見るよりもコード上で意識しやすい設計です。ゲートウェイやプロキシの起動処理に組み込む場合、この2つの呼び出しを起動シーケンスの一部にしておけば、Anthropic側が上限値を調整してもハードコードした値とのズレが起きません。
どんなときにこのAPIを使うか
| 用途 | 使う場面 | 具体例 |
|---|---|---|
| ゲートウェイの設定同期 | 使う場面制限値をハードコードせず起動時・定期実行で最新化したい | 具体例自社プロキシがAnthropicの制限値変更に追随する |
| 内部アラート | 使う場面消費量と設定値を突き合わせて閾値超過を検知したい | 具体例Usage and Cost APIの実測値と組み合わせて監視する |
| ワークスペース構成の監査 | 使う場面プロビジョニング自動化の意図どおりに設定されているか確認したい | 具体例各ワークスペースの上書き値を棚卸しする |
| Consoleでの手動設定の事前確認 | 使う場面設定変更前に現在値を確認したい | 具体例Console UIでの設定手順と組み合わせて使う |
Managed Agentsの制限はこのAPIに含まれない
組織エンドポイントが返すのは、あくまでMessages APIとその周辺リソース(バッチ・Files・Token Counting・Skills・Web検索)の制限です。Claude Managed Agentsのセッション・エージェント・環境まわりのエンドポイントには、別枠のレート制限がかかりますが、Rate Limits APIのレスポンスには含まれません。Managed Agentsの制限は作成系エンドポイントが1分あたり300リクエスト、参照系エンドポイントが1分あたり1,200リクエストという固定値で、Consoleでの調整対象でもAPIでの読み取り対象でもなく、リファレンスドキュメントに直接記載されています。両方の製品を併用している場合、「読み取れる制限」と「固定値で決まっている制限」が別系統だという前提を持っておくと、監視ダッシュボードを作る際に取りこぼしを防げます。
よくあるつまずき
- 値を更新しようとして404 / 405になる: Rate Limits APIは読み取り専用です。制限値を変更したい場合はClaude Consoleのワークスペース設定画面「Rate limits」タブから行います。APIには書き込みエンドポイントがありません
- デフォルトワークスペースのレスポンスが空: デフォルトワークスペースにはレート制限の上書きを設定できない仕様のため、そもそもエントリーが存在しません。組織エンドポイントの値がそのまま適用されます
- ワークスペースキーで403になる: ワークスペースにスコープされたAPIキーはこのエンドポイントを呼べません。Admin APIキーか、ワークスペースにスコープされていない個人・サービスアカウントキーを使います
modelパラメーターがワークスペースエンドポイントで無視される: このパラメーターは組織エンドポイント専用です。ワークスペース側で特定モデルだけ見たい場合は、レスポンス全体を取得してからクライアント側で絞り込みます
まとめ
Rate Limits APIは組織とワークスペース、2つのエンドポイントで構成された読み取り専用のAPIです。組織エンドポイントは全体の設定値を、ワークスペースエンドポイントは上書き分だけを返し、両者を突き合わせることで実効的な制限値が分かります。値の変更はConsole側の役割で、APIの守備範囲には含まれません。ゲートウェイの設定同期や内部アラート、ワークスペース構成の監査など、既存の制限値をコードから継続的に確認したい場面で使うAPIです。