概要
API の利用にはレート制限が適用されます。レート制限は、一定期間内のリクエスト数、トークン数、その他の使用量を制限するものです。
429 レスポンスは、一時的なレート制限、前払い残高の不足、または支出上限や使用量上限への到達を示す場合があります。再試行や請求設定の変更を行う前に、エラーの詳細を確認してください。
原因の特定
エラーメッセージを確認し、error.code がある場合はその値も確認してください。請求関連のエラーでも、error.type の値には、より広い分類を示す insufficient_quota が使われる場合があります。
| エラーまたはコード | 意味 | 対処方法 |
| リクエスト数またはトークン数のレート制限に到達 | リクエストが、適用されるレート制限を超えています。 | リクエストの送信間隔を調整し、以下の再試行のガイダンスに従ってください。 |
| credit_balance_exhausted | 組織の前払いクレジットが残っていません。 | API の請求設定でクレジットを追加してください。 |
| organization_usage_limit_exceeded | 組織が、OpenAI によって設定された使用量上限に達しています。 | 承認済みの使用量上限の引き上げを申請してください。 |
| organization_spend_limit_exceeded | 組織が、強制適用される支出上限に達しています。 | 上限を引き上げるか解除するか、毎月のリセットを待ってください。 |
| project_spend_limit_exceeded | プロジェクトが、強制適用される支出上限に達しています。 | プロジェクトの上限を引き上げるか解除するか、毎月のリセットを待ってください。 |
請求、支出、利用枠に関するエラーは、再試行しても利用できるようにはなりません。まず、エラーで示された残高や上限の問題に対処してください。強制適用される支出上限の変更が反映されるまでには、時間がかかる場合があります。
支出上限を変更するには、該当する組織またはプロジェクトの設定を管理する権限が必要です。アクセス権限がない場合は、その設定を管理している担当者に依頼してください。
前払いクレジットの購入については、API の前払い請求の設定と管理をご覧ください。
各種の支出管理機能については、API 支出上限ガイドをご覧ください。
適用されるレート制限の確認
組織の制限ページで、現在の利用ティアと上限を確認してください。
レート制限は、組織レベルとプロジェクトレベルで適用される場合があります。ユーザー個人に割り当てられる利用枠ではありません。制限はモデルによっても異なり、一部のモデルファミリーでは上限を共有しています。
エラーがどの制限を示しているか確認してください。たとえば、1 分あたりのリクエスト数と 1 分あたりのトークン数には、それぞれ別の上限があります。一方の上限を下回っていても、もう一方の上限に達することがあります。
画像生成 API の制限の確認
画像生成 API のレート制限は、モデルと利用ティアによって異なります。モデルのページで使用するモデルを選択すると、その制限を確認できます。
セットアップ手順については、画像生成の開発者ガイドをご覧ください。利用ティアの詳細については、API レート制限ガイドをご覧ください。
リクエストで使用する組織の確認
複数の組織に所属している場合は、リクエストで意図した組織とプロジェクトが使用されていることを確認してください。
API キーでデフォルトの組織を使用している場合は、デフォルトの組織設定を確認してください。組織によって、請求の取り決めや利用ティアが異なる場合があります。
一時的なレート制限エラーの軽減
リクエストの送信間隔の調整と集中の回避
大量のリクエストを一度に送信せず、時間を分散して送信してください。
レート制限は、表示されている時間単位よりも短い期間で適用される場合があります。たとえば、1 分あたり 60 リクエストという制限が、1 秒単位でも適用される場合があります。そのため、平均使用量が 1 分あたりの上限を下回っているように見えても、短時間にリクエストが集中するとエラーが発生することがあります。
長いプロンプトや、必要以上に大きく設定された出力トークン数の上限も、トークンのレート制限エラーの原因となる場合があります。
待機時間を設けた再試行
一時的なレート制限エラーには、次のように対処してください。
Retry-After レスポンスヘッダーがあるか確認してください。
ヘッダーに有効な待機時間が指定されている場合は、少なくともその時間が経過してから再試行してください。
ヘッダーがない場合や無効な場合は、ジッター付きの指数バックオフを使用してください。試行が失敗するたびに待機時間を延ばし、ランダムな短い待機時間を加えます。
再試行の回数と、再試行に費やす合計時間の両方に上限を設けてください。
OpenAI の公式 SDK には、対象となるレート制限エラーを自動で再試行する機能がすでに組み込まれており、Retry-After がある場合はその指定に従います。別の再試行ループを追加する前に、これらの自動再試行を考慮してください。
失敗したリクエストも、1 分あたりの上限にカウントされます。同じリクエストを送信し続けると、問題が長引く可能性があります。
実装方法や例については、API レート制限ガイドをご覧ください。サードパーティ製の再試行ライブラリをアプリケーションで使用する前に、その内容を確認してください。
プロンプトと出力サイズの見直し
プロンプトから不要な指示や例、重複するコンテキストを削除してください。修正したプロンプトをテストし、必要な結果が引き続き得られることを確認してください。
使用するエンドポイントとモデルがサポートする、次の出力トークン数パラメーターを使用してください。
Chat Completions では max_completion_tokens を使用します。
Responses では max_output_tokens を使用します。
リクエストに必要な量を大幅に上回る上限は設定しないでください。これらのパラメーターには、表示される出力だけでなく推論トークンも含まれます。リーズニングモデルを使用する場合は、両方に必要な量を確保してください。
利用ティアの確認
リクエストの集中を抑え、トークン使用量を見直してもエラーが続く場合は、制限ページで上限を引き上げる方法を確認してください。
組織の有料利用ティアは、クレジットの累計購入額が Build、Launch、Grow の各基準額に達すると、自動的にアップグレードされます。通常、上位のティアほどレート制限の上限が高くなります。各ティアの要件については、API レート制限ガイドをご覧ください。
承認済みの月間使用量上限は、リクエスト数やトークン数のレート制限とは別のものです。一方が引き上げられても、もう一方も変更されたとは限りません。
問題が解消しない場合
問い合わせ前の準備
エラーメッセージの正確な内容、エラーコード(ある場合)、関連するリクエスト ID、エラーの発生時刻とタイムゾーン、アカウントに表示されている該当の上限を用意してください。すでに試した対処方法も記録してください。
OpenAI サポートへの問い合わせ
エラーで示された上限を確認しても問題を解決できない場合は、ヘルプセンターから OpenAI サポートにお問い合わせください。API キーやその他の認証用の機密情報は含めないでください。
