GPT API レート制限:ティア、利用上限、Apidog でのテスト方法

Ashley Innocent

Ashley Innocent

13 5月 2026

GPT API レート制限:ティア、利用上限、Apidog でのテスト方法

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

GPT APIを呼び出す関数をリリースしました。ステージングでは問題なく動作していました。しかし、本番環境で最初の数百人のユーザーがアクセスした途端、ログは429 Too Many Requestsで埋め尽くされました。今、あなたは推測しています。これは1分あたりのリクエスト数なのか、1分あたりのトークン数なのか、それとも日ごとの上限なのか?まだティア1のままなのか?先週切り替えたモデルは、古いモデルよりも厳しい制限があったのか?

💡
この記事では、現在のすべてのGPTモデルに関するこれらの疑問に答え、いくつかのAPIコールとApidogでの小規模な負荷テストを使用して、ライブ制限を確認する方法を示します。レート制限の問題を疑うたびに実行できる繰り返し可能なワークフローと、チームで再利用できる保存可能なリクエストコレクションを作成できます。

以前にOpenAIを扱ったことがあるなら、新しいモデルが登場するたびにレート制限の話が複雑になっていることをご存知でしょう。GPT-5.5はGPT-4.1とは異なる制限があり、画像モデルはテキストモデルとは異なるカウント方法がされ、支出が増えるにつれて利用ティアは静かに変化します。Apidogは、各リクエストのレスポンスヘッダーを検査し、同時トラフィックをシミュレートし、コードをリリースする前にどの制限に抵触しているかを正確に確認できる単一のワークスペースを提供します。まだApidogをお持ちでない場合はダウンロードしてください。以下のワークフローは無料プランで動作します。

ボタン

実際に重要な4つの制限

OpenAIは、すべてのGPT APIキーにいくつかのレート制限を適用しています。本番環境のアプリケーションでは、以下の4つの制限がすべて適用されていることを確認できます。

リクエストが拒否されると、APIはHTTP 429と次のようなJSONボディを返します。

{
 "error": {
 "message": "Rate limit reached for gpt-5.5 in organization org-abc on tokens per min (TPM): Limit 30000, Used 28432, Requested 3120.",
 "type": "tokens",
 "param": null,
 "code": "rate_limit_exceeded"
 }
}

ボディには、どの制限(tokensrequests、またはtokens_usage_based)を超過したかが示されていることに注意してください。これは、何か問題が発生したときに最初に読むべき情報です。TPMによるエラーはRPMによるエラーとは異なり、その修正方法も異なります。429は一概に429ではありません。

HTTPレベルでの429の意味について、エンドツーエンドのリファレンスは、MDNの429ドキュメントおよびRFC 6585仕様を参照してください。再試行ヘッダーとティアの移動に関するOpenAI固有の動作については、OpenAIが公式のレート制限ページを公開していますので、ブックマークすることをお勧めします。

ティアの仕組みと、なぜ昇格し続けるのか(または停滞するのか)

GPT APIキーはOpenAIの利用ティアに属しています。ティアによって、RPMとTPMの上限の実際の数値が決まります。ティアは、アカウントの総支出と初回支払からの期間という2つの要因に基づいて昇格します。無料からティア5まで6つのティアがあり、テキストモデルのおおよその形は次のようになります。

ティア 支払い条件 待機期間 テキスト RPM テキスト TPM
無料 なし なし 3 40k
1 $5支払い済み なし 500 30k–200k (モデルによる)
2 $50支払い済み 7日 5,000 450k
3 $100支払い済み 7日 5,000 1M
4 $250支払い済み 14日 10,000 2M
5 $1,000支払い済み 30日 10,000 2M+

上記の数値は例示であり、正確な上限は時間とともに変化し、モデルによって異なります。ワークロードの規模を決定する前に、ダッシュボードから直接、あるいはより良い方法として、自身のAPIレスポンスヘッダー(後述)からライブの制限を確認してください。

2つの実用的な意味合い:

  1. 支払いを行うと自動的に昇格します。ティアはオプトインではありません。支出がティアのしきい値を超え、待機期間が経過した瞬間から、次のリクエストは新しい上限に対して実行されます。通知も移行ステップもありません。
  2. 降格することもあります。アカウントが長期間非アクティブになったり、支払い方法に問題が生じたりした場合、降格する可能性があります。請求に関する変更があった後は、本番環境でテストしてください。

他のモデルプロバイダーのティアシステムとの比較については、弊社のOpenAI APIユーザーレート制限解説Claude APIレート制限ガイド、およびGrok-3 APIレート制限ガイドをご覧ください。メンタルモデルはプロバイダー間で同じですが、具体的な数値や次元は異なります。

レスポンスヘッダーからライブ制限を読み取る

現在の制限を見つけるためにダッシュボードを掘り下げる必要はありません。すべてのGPT APIレスポンスはヘッダーにそれらを含んでいます。次の4つを探してください。

通常、x-ratelimit-reset-requestsx-ratelimit-reset-tokensも含まれており、これらはバケットが補充されるまでの人間が読める形式の期間(例:6s1m30s)を示しています。

これらを読み取る最も簡単な方法は、単一のチャット補完リクエストを送信し、ヘッダーが返ってくるのを確認し、自分が思っているティアにいることを確認することです。Apidogを使えば、これはワンクリックで可能です。

ステップ1: ApidogでGPTリクエストを設定する

Apidogを開き、新しいプロジェクトを作成し、その中に新しいリクエストを追加します。

メソッド: POST URL: https://api.openai.com/v1/chat/completions

Headersタブで:

キー
Authorization Bearer {{OPENAI_API_KEY}}
Content-Type application/json

二重波括弧の構文はApidogの環境変数から情報を取得するため、キーがリクエスト自体の中に存在することはありません。環境設定の下で一度変数を設定し、環境を切り替えることで個人キーとチームキーを切り替えれば、残りのコレクションは自動的に取得されます。OpenAIが請求の属性付けのために含めることができる組織IDとプロジェクトIDにも同じ方法が適用できます。

Bodyタブで、JSONを選択し、以下を貼り付けます。

{
 "model": "gpt-5.5",
 "messages": [
 {"role": "user", "content": "ping"}
 ],
 "max_tokens": 10
}

送信ボタンを押します。通常通り補完が返ってくるはずです。次に、レスポンスパネルのHeadersタブをクリックし、x-ratelimit-*の行までスクロールします。その4つの数値が現在の真の制限です。それらをスクリーンショットに撮ってください。これらがテストのベースラインとなります。

チャット補完リクエストの設定についてさらに詳しく知りたい場合は、弊社のApidogでChatGPT APIをテストする方法ガイドで、認証、ストリーミング、ツールコールについてエンドツーエンドで解説しています。

ステップ2: 意図的なバーストで制限を確認する

ヘッダーを読めば上限はわかりますが、1つのリクエストを送信しただけでは、上限に達したときの挙動については何も証明できません。ヘッダーに記載されている通りに実際にスロットリングがかかることを確認するには、小規模なバーストテストが必要です。

Apidogには、同じリクエストをN回同時に実行できるテストランナーが付属しています。保存したリクエストを開き、送信ボタンの横にあるドロップダウンをクリックして、「Run in Test Scenario」を選択します。以下を設定します。

実行します。2つの有用な結果が考えられます。

  1. バーストが終了する前に、いくつかのリクエストが429を返します。これは良いことです。レスポンスヘッダーからの上限とアカウントの状態が同期していることを確認できます。
  2. 50回すべて成功し、ヘッダーにはremaining-requestsが期待通りに減少していることが示されます。あなたのRPMは思っていたよりも高いということです。レスポンスパネルで正確な値を確認してください。

Apidogのテストランナーは各レスポンスを記録するため、ステータスコードでソートし、すべての429エラーを1つのビューにまとめることができます。429の行をクリックしてそのボディを読んでください。messageフィールドは、RPM、TPM、または日ごとの上限のいずれに抵触したかを示します。これが、本番コードで規模を決定する際の基準となる次元です。

制限に達した後の対処法に関する入門書として、レート制限超過ガイドは、遭遇する可能性のあるすべての429の表面について詳しく説明しています。

ステップ3: RPMによる超過とTPMによる超過を区別する

上記の最初のバーストは、各リクエストが小さいためRPMを測定します。TPMを調査するには、リクエストの数を減らしつつ、それぞれのサイズを大きくする必要があります。messagesがはるかに大きなペイロードを運ぶようにリクエストボディを編集してください。

{
 "model": "gpt-5.5",
 "messages": [
 {"role": "system", "content": "<ここに3,000トークン分のコンテキスト>"},
 {"role": "user", "content": "上記を1つの文に要約してください。"}
 ],
 "max_tokens": 200
}

今度は、同時実行数5で20回程度の繰り返しで別のシナリオを実行します。TPM上限が30kのティア1の場合、リクエスト制限に達するよりもはるか前にトークン制限に抵触するでしょう。

この区別は重要です。なぜなら修正方法が異なるからです。実際のワークロードが多くの小さなリクエストを送信する場合、RPMを修正します。つまり、キューイング、バッチ処理、または分散処理を行います。もし少ないながらも大きなリクエストを送信する場合、TPMを修正します。つまり、システムプロンプトを削減したり、prompt_cacheメカニズムでコンテキストをキャッシュしたり、リクエストを分割したりします。

ステップ4: 同時接続ユーザーをシミュレートする

バーストテストは、あなた自身の限界を測定します。本番環境のトラフィックは異なります。多くのユーザー、さまざまなリクエストサイズ、安定したベースラインの上に発生するバースト。

Apidogで、リクエストの3つまたは4つのバリエーション(小、中、大)を、繰り返し間にランダムな待機時間を入れてループするテストシナリオを作成します。ランナーはJavaScriptの事前および事後リクエストスクリプトをサポートしているため、次のことができます。

シナリオが完了すると、レポートにはステータスコードのヒストグラムが表示されます。このヒストグラムは、ランブックに固定できる最も有用な成果物です。同僚が「レート制限に引っかかってる?」と尋ねた瞬間、それを再実行して比較できます。

スロットリングされた場合の対処法

どこに壁があるかを測定したら、誠実な3つの選択肢があります。

どちらかを選択する前に、スロットリングとレート制限の違いについて深く掘り下げて知りたい場合は、スロットル vs. レート制限が専門用語を理解する最短経路です。

一般的なGPT 429エラーとその意味

429エラーの3つのタイプで、実際のケースのおよそ90%をカバーします。

よくある質問

ApidogでGPTのレート制限をテストするのに費用はかかりますか? いいえ、かかりません。無料プランで単一リクエストのテストや小規模な同時実行テストが可能です。より大きなテスト負荷、チームワークスペース、またはスケジュール実行が必要な場合にのみ、有料プランが必要です。Apidogの料金で詳細をご確認ください。

実際のトークンを消費せずにレート制限をテストできますか? 部分的には可能です。最も安価なベースラインチェックは、max_tokens: 1と1文字のメッセージを含む単発リクエストです。これは数セントの費用で済み、ヘッダーは完全に返ってきます。バーストテストの場合、実際のトークンを消費しますが、各呼び出しを最小限に抑えることができます。完全にオフラインでリハーサルしたい場合は、Apidogのモックサーバーを使用して429応答の形状をシミュレートし、OpenAIをまったく呼び出さずに再試行ロジックが機能することを証明できます。

ティア1のキーが同僚のティア1のキーよりも遅く感じるのはなぜですか? ティアの上限は組織単位であり、キー単位ではありません。あなたのキーが他のヘビーユーザーと共有されている組織にある場合、彼らのトラフィックと競合しています。Apidogはこれを明確に示すことができます。両方のキーから同じリクエストを並行して実行し、x-ratelimit-remaining-tokensの減少を比較してください。

どのモデルにどの制限があるか、どうすればわかりますか? レスポンスヘッダーを読んでください。ブログ記事(これを含む)の一般的な表を信用しないでください。Apidogから各モデルに安価なリクエストを1つ送信し、ヘッダーを記録してください。同じ名前でも異なるスナップショットバージョン(例:gpt-5.5gpt-5.5-0901)を持つモデルは、異なる上限を持つことがあります。

ストリーミングリクエストは異なるカウント方法になりますか? TPMについては異なります。ストリーミングリクエストはmax_tokensに基づいてトークンを事前に予約するため、実際の完了が短かったとしても、長いmax_tokens値はTPM予算を消費してしまう可能性があります。max_tokensを現実的な最も厳密な上限に下げてください。ApidogでChatGPT APIをテストする方法でストリーミングの動作について解説しています。

Apidogのレート制限テストをチームと共有できますか? はい、できます。共有プロジェクトにリクエストとテストシナリオを保存してください。ワークスペース内の誰でも、環境を切り替えることで自分のキーに対して同じバーストを実行できます。これにより、「私のキーがスロットリングされているのか、それとも彼らのキーがスロットリングされているのか?」という疑問が10秒で解決します。

ボタン

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる