3行でいうと

  • 上限は「回数」と「トークン量」など複数の物差しで測られ、どれか1つでも超えると429エラーになります。
  • 再試行は、Retry-Afterを最小の待ち時間として守り、ランダムな揺らぎを足して、回数と合計時間に上限を付けます。
  • 429でも、月の支出上限に達した場合は、待っても通りません。再試行してはいけないエラーを見分ける必要があります。

この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書を読んでまとめたものです。数字は2026年10月22日に確認しました。上限は変わることがあります。

先に結論

前提:何の話か

APIは、アプリの中からAIを呼び出す開発者向けの窓口です。トークンは、AIが読み書きする文字の量を数える単位です。レート制限は、短い時間にどれだけ使えるかの上限です。会社が全体の負荷を保ち、利用者が公平に使えるようにするためのものです。

測る物差しは、主に次のものです。

どれか1つでも超えると、制限にかかります。OpenAIは「最初に達したものが効く」と書いています。

429エラーは、HTTPの「Too Many Requests」です。指数バックオフは、再試行の待ち時間を、1秒、2秒、4秒のように倍々に伸ばしていく方式です。ジッターは、その待ち時間にランダムな揺らぎを足すことで、多数のクライアントが同時に再試行して再び詰まるのを避ける工夫です。

3社の上限の考え方

OpenAI Anthropic(Claude) Google(Gemini)
測る物差し RPM、RPD、TPM、TPD、IPM(画像)など RPM、ITPM、OTPM RPM、入力TPM、RPD。一部にIPM、TPD
適用の単位 組織とプロジェクト 組織。ワークスペースごとにより低い上限を設定できる プロジェクト(APIキー単位ではない)
区分の名前 Free、Build、Launch、Grow Start、Build、Scale、Custom Free、Tier 1、Tier 2、Tier 3
区分の上がり方 クレジット購入の累計が基準を超えると自動 利用実績とアカウントの状態に基づき自動 累計の支払額と日数に基づき自動(審査で拒否されることもある)
月の上限 Free 100ドル、Build 500ドル、Launch 5,000ドル、Grow 20万ドル Start 500ドル、Build 1,000ドル、Scale 20万ドル 請求の上限(billing cap)が区分ごと。直近10分間の支出上限もある
日次のリセット 記載を読んでいません 記載を読んでいません RPDは太平洋時間の午前0時にリセット

OpenAI

公式のレート制限の文書によると、次の通りです。

区分 モデル RPM TPM
Build Astra、Sol、Terra 5,000 100万
Build Luna 5,000 200万
Launch Astra、Sol、Terra 10,000 400万
Launch Luna 10,000 1,000万
Grow Astra、Sol、Terra 15,000 4,000万
Grow Luna 30,000 1億8,000万

Anthropic

公式のレート制限の文書によると、次の通りです。

区分 モデル RPM ITPM OTPM
Build Sonnet 5.5、Opus 5.5、Haiku 5.5 5,000 500万 100万
Scale Sonnet 5.5、Opus 5.5、Haiku 5.5 10,000 1,000万 200万
Build Fable 5.x 2,000 150万 30万
Scale Fable 5.x 4,000 400万 80万

Start区分の数字は、この記事では扱いません。Fable 5.xの上限は、Fable 5.1とFable 5を合算し、Mythos 5.1と5は別の合算枠、と脚注にあります。

Google(Gemini)

公式のレート制限の文書によると、次の通りです。

再試行の作法

3社の文書を合わせると、次の考え方になります。

  1. Retry-Afterを守る:このヘッダー(秒数)があれば、それは最小の待ち時間です(OpenAI、Anthropic)。そのうえで、少しランダムな遅れを足す、とOpenAIは書いています。
  2. ヘッダーがなければ、指数バックオフ+ジッター:OpenAIの文書の勧めです。待ち時間を倍々にし、揺らぎを足します。
  3. 回数と合計時間に上限を付ける:OpenAIの文書が、両方に上限を付けるよう書いています。
  4. 再試行してはいけないエラーを見分ける:クォータ、請求、その他、人の対応が要るエラーは再試行しません(OpenAI)。Anthropicの月間支出上限の429(enforced_spend_limit_reached)は、retry-afterが付かず、翌月の1日の午前0時(UTC)まで、またはティアが上がるまで、再試行は失敗し続けます。SDKの自動再試行も同じです。
  5. 失敗した試行も数えられる:OpenAIの文書は、失敗したリクエストも1分あたりの上限に入るので、すぐに連続して再送しても役に立たない、と書いています。
  6. SDKの自動再試行と二重にしない:OpenAIの文書は、自前で再試行するなら、SDKの再試行を切るか、数に入れるように、と書いています。公式SDKは429と503を自動で再試行します。AnthropicのSDKは、既定で2回再試行し、retry-afterを尊重し、max_retriesで設定または無効化できる、と書かれています。

429以外のエラー

待ち時間の例と、同時実行の上限の見積もり(僕らの計算です)

僕らの計算です。公式の数字ではなく、考え方の例です。

待ち時間の例:最初の待ちを1秒、倍率を2、上限を5回とした指数バックオフは、待ち時間が1秒、2秒、4秒、8秒、16秒となり、合計は最大31秒です。ここにジッターを足します。Retry-Afterが20秒と返ったなら、その回は20秒以上待ちます。回数と合計時間の上限は、利用者の待てる時間(チャットなら数十秒、夜間処理ならもっと長い)で決めます。

同時実行の見積もり:1リクエストあたりの入力が4,000トークン、出力が500トークン、1リクエストの処理時間が20秒とします。Anthropic Buildの Sonnet 5.5(RPM 5,000、ITPM 500万、OTPM 100万)の場合、1分あたりに送れる件数は、RPMでは5,000件、ITPMでは500万÷4,000=1,250件、OTPMでは100万÷500=2,000件です。いちばん小さいITPMの1,250件が実質の上限になります。1リクエストが20秒かかるなら、同時に動かす本数は、1,250件×(20秒÷60秒)=約417本が上の目安です。ただし、実際の入力トークンは、キャッシュのヒットで大きく変わります。Anthropicの文書では、キャッシュの読み取りはITPMに数えられないモデルが多いので、同じ前置きをキャッシュしているなら、上限はもっと余裕が出ます。

この見積もりは、トークンバケットの性質(短時間の集中でも当たる)を考えると、そのまま使い切る設計は危険です。余裕を持たせて、上限の7〜8割を目安にする、といった運用が無難だと思います(見立てです)。

選び方・判断の基準

見立てです。設計するときの順番は、次のようなものだと思います。

よくある失敗・つまずき

気をつけること

出典

更新履歴