このガイドでは、API と公式 Python ライブラリ で発生するエラーコードの概要を説明します。概要に記載した各エラーコードの詳細と対処方法は、個別のセクションで解説します。
コード
概要
400 - service_tier 引数が無効
原因: リクエストで指定したサービスティア、または自動的に選択されたサービスティアが、プロジェクトで許可されていません。 対処方法: service_tier にプロジェクトで許可されているティアを指定するか、プロジェクト設定 で許可するサービスティアを変更してください。
401 - 認証情報が無効
原因: 認証情報が無効です。 対処方法: 正しい API キー を使用し、正しい組織からリクエストを送信していることを確認してください。
401 - 指定した API キーが正しくない
原因: リクエストに使用した API キーが正しくありません。 対処方法: API キーが正しいことを確認してください。ブラウザのキャッシュをクリアするか、新しい API キーを生成 してください。
401 - API の利用には組織への所属が必要
原因: アカウントが組織に所属していません。 対処方法: 新しい組織への追加を希望する場合は OpenAI にお問い合わせください。既存の組織に参加する場合は、組織の管理者に組織への招待 を依頼してください。
401 - 許可されていない IP アドレス
原因: リクエストの送信元 IP アドレスが、プロジェクトまたは組織の IP 許可リストに含まれていません。 対処方法: 許可されている IP アドレスからリクエストを送信するか、IP 許可リストの設定 を更新してください。
403 - サポート対象外の国・地域
原因: サポート対象外の国または地域から API にアクセスしています。 対処方法: 詳細はサポート対象の国と地域 を参照してください。
429 - クレジット残高なし
コード: credit_balance_exhausted 原因: 組織の前払いクレジットを使い切りました。 対処方法: API の利用を続けるには、クレジットを追加 してください。
429 - リクエストのレート制限に到達
原因: リクエストの送信頻度が高すぎます。 対処方法: リクエストの送信間隔を調整し、Retry-After ヘッダーがある場合はその指示に従ってください。レート制限ガイド を参照してください。
429 - リクエスト頻度の急増
種類: rate_limit_error コード: slow_down 原因: リクエストの送信頻度が急激に増加しました。 対処方法: Retry-After ヘッダーがある場合はその指示に従ってください。リクエストの送信頻度を下げてから、徐々に上げてください。
429 - 組織の支出上限に到達
コード: organization_spend_limit_exceeded 原因: 組織に設定されている支出上限に達しました。 対処方法: 組織の支出上限 を引き上げるか、解除してください。
429 - プロジェクトの支出上限に到達
コード: project_spend_limit_exceeded 原因: プロジェクトに設定されている支出上限に達しました。 対処方法: プロジェクト設定 で支出上限を引き上げるか、解除してください。
429 - 組織の利用上限に到達
コード: organization_usage_limit_exceeded 原因: OpenAI が組織に割り当てた利用上限に達しました。 対処方法: 利用上限の引き上げ を申請するか、サポートにお問い合わせ ください。
500 - リクエスト処理中のサーバーエラー
原因: OpenAI のサーバーで問題が発生しました。 対処方法: 少し待ってからリクエストを再試行し、問題が続く場合はお問い合わせください。ステータスページ も確認してください。
503 - モデルの一時的な過負荷
種類: service_unavailable_error コード: server_is_overloaded 原因: リクエストしたモデルが一時的に過負荷になっています。 対処方法: Retry-After ヘッダーがある場合はその指示に従ってから、リクエストを再試行してください。
請求に関するエラーでは、error.code を確認して具体的な原因を特定してください。より大まかな分類を示す error.type は、引き続き insufficient_quota となる場合があります。
請求、支出、利用枠に関するエラーが発生した場合、リクエストを再試行しても API へのアクセスは復旧しません。次のリクエストを送信する前に、該当するクレジットを追加するか、上限を変更してください。
Responses API の WebSocket モード を使用している場合は、次のエラーも発生することがあります。
previous_response_not_found:利用可能な状態情報から previous_response_id に対応するレスポンスを特定できません。入力コンテキスト全体を指定し、previous_response_id を null に設定して再試行してください。
websocket_connection_limit_reached:接続時間が上限の 60 分に達しました。新しい WebSocket 接続を開いて処理を続けてください。
400 - service_tier 引数が無効 リクエストで明示的または自動的に選択されたサービスティアがプロジェクトで許可されていない場合、API は「Invalid service_tier argument: The requested service tier is not allowed for this project.」というメッセージを invalid_request_error として返し、error.param に service_tier を設定します。
プロジェクトの制限は default、flex、priority のサービスティアに適用されます。fast サービスティアは priority として扱われます。service_tier を省略した場合や auto に設定した場合も、許可されていないティアが選択されると、このエラーが返ることがあります。スケールティアは、このプロジェクトポリシーの対象外です。
次の手順で対処してください。
プロジェクト設定 と組織設定 で、許可されているサービスティアを確認してください。組織で禁止されているティアは、プロジェクトでも有効にできません。
service_tier に、プロジェクトで許可されているティアを指定してください。
リクエストで auto を指定しているか、service_tier を省略している場合は、自動的に選択されるティアを許可するようにプロジェクト設定を更新してください。
401 - 認証情報が無効 このエラーは、認証情報が無効であることを示します。考えられる原因は次のとおりです。
失効した API キーを使用している
リクエスト元の組織またはプロジェクトに割り当てられたものとは異なる API キーを使用している
使用している API キーに、対象のエンドポイントを呼び出すための権限がない
次の手順で対処してください。
401 - 指定した API キーが正しくない このエラーは、リクエストで使用している API キーが正しくないことを示します。考えられる原因は次のとおりです。
API キーに入力ミスや余分なスペースがある
別の組織またはプロジェクトの API キーを使用している
削除または無効化された API キーを使用している
失効した古い API キーがローカルのキャッシュに残っている
次の手順で対処してください。
ブラウザのキャッシュと Cookie をクリアしてから、もう一度試してください。
リクエストヘッダーで正しい API キーを使用していることを確認してください。
API キーが正しいかどうかわからない場合は、新しいキーを生成 できます。コードベース内の古い API キーを新しいキーに置き換え、API キーを安全に扱うためのベストプラクティス に従ってください。
401 - API の利用には組織への所属が必要 このエラーは、アカウントが組織に所属していないことを示します。考えられる原因は次のとおりです。
以前の組織から脱退したか、メンバーから削除された
以前のプロジェクトから脱退したか、メンバーから削除された
所属していた組織が削除された
次の手順で対処してください。
以前の組織から脱退したか、メンバーから削除された場合は、新しい組織を申請するか、既存の組織に招待してもらってください。
新しい組織を申請するには、help.openai.com からお問い合わせください。
既存の組織のオーナーは、チームページ からメンバーを組織に招待できます。また、設定ページ から新しいプロジェクトを作成できます。
以前のプロジェクトから脱退したか、メンバーから削除された場合は、組織またはプロジェクトのオーナーに再追加を依頼するか、新しいプロジェクトを作成してください。
429 - クレジット残高なし credit_balance_exhausted エラーは、組織の前払いクレジットを使い切ったことを示します。
API の利用を再開するには、請求設定でクレジットを追加 してください。
429 - リクエストのレート制限に到達 このエラーは、割り当てられた API のレート制限に達したことを示します。短時間に送信したトークン数またはリクエスト数が多すぎて、許容されるリクエスト数を超えています。考えられる原因は次のとおりです。
ループやスクリプトからリクエストを頻繁に、または並行して送信している
他のユーザーやアプリケーションと API キーを共有している
レート制限の上限が低い無料プランを使用している
プロジェクトに設定された上限に達した
次の手順で対処してください。
リクエストの送信間隔を調整し、不要な呼び出しや重複する呼び出しを避けてください。
Retry-After ヘッダーがある場合は、指定された時間以上待ってから再試行してください。ヘッダーがない場合は、ジッター付きの指数バックオフを使用し、再試行回数に上限を設けてください。サーバーが長い待機時間を指定した場合の SDK の動作は、バージョンや設定によって異なります。詳細はレート制限ガイド を参照してください。
他のユーザーと同じ組織を利用している場合、レート制限はユーザー単位ではなく組織単位で適用されます。他のチームメンバーの利用分も合算されるため、チーム全体の使用状況を確認してください。
無料プランや下位プランを利用している場合は、レート制限の上限がより高い従量課金プランへのアップグレードを検討してください。各プランの制限はレート制限ガイド で比較できます。
プロジェクトのレート制限の上限を引き上げるには、組織のオーナーに連絡してください。
429 - リクエスト頻度の急増 429 レスポンスで種類が rate_limit_error、コードが slow_down の場合、リクエストの送信頻度がサービスで安全に処理できるペースを超えて増加したことを示します。1 分あたりのリクエスト数とトークン数がどちらも上限内であっても発生することがあります。
目安として、1 分あたりの入力トークン数(TPM)が 100 万に達したら、その後の増加率は 15 分ごとに最大 50% に抑えてください。トラフィックの増加率に制限がかかるタイミングは、モデルやトラフィックの状況によって異なります。
次の手順で対処してください。
Retry-After ヘッダーがある場合は、指定された時間以上待ってから再試行してください。ヘッダーがない場合は、再試行の間隔を延ばし、さらに短いランダムな待機時間を加えてください。
リクエストの送信頻度を下げてから、徐々に上げてください。
トラフィックを安定させると、slow_down エラーが再発しにくくなります。
従量課金のトラフィックが増加率の制限に頻繁に達するエンタープライズのお客様は、対象モデルの処理容量をより確実に見込めるスケールティア をご検討ください。GPT-5.6 以降のモデルについては、Reserved Tier を参照してください。これらのオプションを利用しても、上記の復旧手順は必要です。引き続き、Retry-After がある場合はその指示に従い、トラフィックを徐々に増やしてください。
429 - 組織の支出上限に到達 organization_spend_limit_exceeded エラーは、組織に設定されている月間の支出上限 に達したことを示します。この上限は、組織内の全プロジェクトの API トラフィックに適用されます。
API の利用を再開するには、組織の上限設定 で上限を引き上げるか、解除してください。設定を変更しない場合は、月間上限がリセットされると利用できるようになります。
429 - プロジェクトの支出上限に到達 project_spend_limit_exceeded エラーは、プロジェクトに設定されている月間の支出上限 に達したことを示します。他のプロジェクトでは、そのプロジェクト自体の上限にも組織の上限にも達していなければ、引き続き API を利用できます。
API の利用を再開するには、プロジェクト設定 で上限を引き上げるか、解除してください。設定を変更しない場合は、月間上限がリセットされると利用できるようになります。
429 - 組織の利用上限に到達 organization_usage_limit_exceeded エラーは、OpenAI が組織に割り当てた月間の利用上限 に達したことを示します。この上限は、組織やプロジェクトで設定する支出上限とは別に適用されます。
API の利用を再開するには、利用上限の引き上げ を申請するか、サポートにお問い合わせ ください。
503 - モデルの一時的な過負荷 503 レスポンスで種類が service_unavailable_error、コードが server_is_overloaded の場合、リクエストしたモデルに、その時点でリクエストを処理するだけの空き容量がないことを示します。
Retry-After ヘッダーがある場合は、指定された時間以上待ってから再試行してください。ヘッダーがない場合は、再試行の間隔を延ばしてください。エラーが続く場合は、ステータスページ で障害が発生していないか確認してください。
Python ライブラリが送出する例外は、RateLimitError が 429 レスポンスに、InternalServerError が 503 レスポンスに対応します。これまでレート制限と過負荷への対処でどちらか一方の例外だけを捕捉していた場合は、両方を処理し、error.code を確認してください。たとえば、動画の処理が過負荷になった場合、現在は 503 が返りますが、以前は 429 が返っていました。エンドポイントごとの変更点は移行ガイド を参照してください。
種類
概要
APIConnectionError
原因: OpenAI のサービスへの接続に問題があります。 対処方法: ネットワーク設定、プロキシ設定、SSL 証明書、ファイアウォールのルールを確認してください。
APITimeoutError
原因: リクエストがタイムアウトしました。 対処方法: 少し待ってからリクエストを再試行し、問題が続く場合はお問い合わせください。
AuthenticationError
原因: API キーまたはトークンが無効、期限切れ、または失効済みです。 対処方法: API キーまたはトークンが正しく、有効であることを確認してください。必要に応じて、アカウントのダッシュボードから新しいものを生成してください。
BadRequestError
原因: リクエストの形式が正しくないか、トークンや入力などの必須パラメータが不足しています。 対処方法: エラーメッセージで具体的な問題を確認してください。呼び出している API メソッドのドキュメント を参照し、必要なパラメータをすべて正しく送信していることを確認してください。リクエストデータのエンコーディング、形式、サイズの確認が必要な場合もあります。
ConflictError
原因: 別のリクエストによってリソースが更新されました。 対処方法: 他のリクエストが同じリソースを更新しようとしていないことを確認し、更新を再試行してください。
InternalServerError
原因: OpenAI 側で問題が発生しました。 対処方法: 少し待ってからリクエストを再試行し、問題が続く場合はお問い合わせください。
NotFoundError
原因: リクエストしたリソースが存在しません。 対処方法: 正しいリソース識別子を指定していることを確認してください。
PermissionDeniedError
原因: リクエストしたリソースへのアクセス権がありません。 対処方法: 正しい API キー、組織 ID、リソース ID を使用していることを確認してください。
RateLimitError
原因: 割り当てられたレート制限に達したか、トラフィックを急激に増やしすぎました。 対処方法: リクエストの送信間隔を調整してください。再試行する際は、再試行回数の上限を守り、Retry-After がある場合はその指示に従ってください。詳細はレート制限ガイド を参照してください。
UnprocessableEntityError
原因: リクエストの形式は正しいものの、処理できませんでした。 対処方法: リクエストを再試行してください。
APIConnectionError APIConnectionError は、リクエストが OpenAI のサーバーに届かなかったか、安全な接続を確立できなかったことを示します。ネットワークの問題、プロキシ設定、SSL 証明書、ファイアウォールのルールなどが原因として考えられます。
APIConnectionError が発生した場合は、次の手順を試してください。
ネットワーク設定を確認し、インターネット接続が安定していて十分な速度があることを確認してください。必要に応じて、別のネットワークや有線接続に切り替えるか、帯域を使用するデバイスやアプリケーションの数を減らしてください。
プロキシ設定が OpenAI のサービスに対応していることを確認してください。必要に応じて、設定を更新するか、別のプロキシを使用するか、プロキシを経由せずに接続してください。
SSL 証明書が有効かつ最新であることを確認してください。証明書のインストールや更新、別の認証局の使用、SSL 検証の無効化が必要な場合があります。
ファイアウォールのルールを確認し、OpenAI のサービスへの通信がブロックまたはフィルタリングされていないことを確認してください。必要に応じてファイアウォールの設定を変更してください。
コンテナを使用している場合は、通信の送受信に必要な権限がコンテナにあることを確認してください。
問題が続く場合は、「エラーが続く場合の対処方法」を参照してください。
APITimeoutError APITimeoutError は、リクエストの完了までに時間がかかりすぎたため、OpenAI のサーバーが接続を閉じたことを示します。ネットワークの問題、サービスへの負荷の集中、処理に時間がかかる複雑なリクエストなどが原因として考えられます。
APITimeoutError が発生した場合は、次の手順を試してください。
数秒待ってからリクエストを再試行してください。ネットワークの混雑やサービスの負荷が軽減され、2 回目の試行で成功することがあります。
ネットワーク設定を確認し、インターネット接続が安定していて十分な速度があることを確認してください。必要に応じて、別のネットワークや有線接続に切り替えるか、帯域を使用するデバイスやアプリケーションの数を減らしてください。
問題が続く場合は、「エラーが続く場合の対処方法」を参照してください。
AuthenticationError AuthenticationError は、API キーまたはトークンが無効、期限切れ、または失効済みであることを示します。入力ミス、形式の誤り、セキュリティ侵害などが原因として考えられます。
AuthenticationError が発生した場合は、次の手順を試してください。
API キーまたはトークンが正しく、有効であることを確認してください。必要に応じて、API キーのダッシュボードから新しいキーを生成するか、余分なスペースや文字が含まれていないことを確認してください。キーやトークンが複数ある場合は、別のものを試してください。
指定された形式に従っていることを確認してください。
BadRequestError BadRequestError(旧 InvalidRequestError)は、リクエストの形式が正しくないか、トークンや入力などの必須パラメータが不足していることを示します。入力ミス、形式の誤り、コードのロジックの誤りなどが原因として考えられます。
BadRequestError が発生した場合は、次の手順を試してください。
エラーメッセージをよく読み、具体的な問題を特定してください。どのパラメータが無効または不足しているか、どのような値や形式が必要かを確認できます。
API リファレンス で呼び出したメソッドを調べ、必要なパラメータをすべて正しく送信していることを確認してください。必要に応じて、パラメータの名前、型、値、形式がドキュメントと一致しているか確認してください。
リクエストデータのエンコーディング、形式、サイズが OpenAI のサービスに対応していることを確認してください。データを UTF-8 でエンコードする、JSON 形式にする、サイズが大きすぎる場合は圧縮するなどの対応が必要になることがあります。
Postman や curl などのツールでリクエストをテストし、想定どおりに動作することを確認してください。必要に応じてコードをデバッグし、リクエストを組み立てるロジックの誤りや不整合を修正してください。
問題が続く場合は、「エラーが続く場合の対処方法」を参照してください。
InternalServerError InternalServerError は、リクエストの処理中に OpenAI 側で問題が発生したことを示します。一時的なエラー、バグ、システム障害などが原因として考えられます。
ご不便をおかけして申し訳ありません。問題の早期解決に取り組んでいます。詳しい状況はシステムのステータスページ で確認できます。
InternalServerError が発生した場合は、次の手順を試してください。
数秒待ってからリクエストを再試行してください。問題がすぐに解消し、2 回目の試行で成功することがあります。
ステータスページで、サービスに影響する障害やメンテナンスが進行中かどうかを確認してください。障害が発生している場合は、最新情報を確認し、解消してからリクエストを再試行してください。
問題が続く場合は、「エラーが続く場合の対処方法」を参照してください。
サポートチームが問題を調査し、できるだけ早くご連絡します。お問い合わせが集中している場合は、回答までに時間がかかることがあります。コミュニティフォーラムに投稿 することもできますが、機密情報は記載しないでください。
RateLimitError RateLimitError は、割り当てられたレート制限に達したことを示します。一定時間内に送信したトークン数またはリクエスト数が多すぎたため、サービスが追加の送信を一時的に制限しています。
OpenAI は、リソースを公平かつ効率的に利用できるようにし、サービスの不正利用や過負荷を防ぐためにレート制限を設けています。
RateLimitError が発生した場合は、次の手順を試してください。
送信するトークン数やリクエスト数を減らすか、送信頻度を下げてください。状況に応じて、リクエストの頻度や量を減らす、トークンをまとめて送信する、Retry-After がない場合は指数バックオフを使用するなどの方法を試してください。詳細はレート制限ガイド を参照してください。
Retry-After がある場合は、指定された時間以上待ってから再試行してください。サーバーが指定した待機時間が Python ライブラリの対応上限を超えると、自動再試行が停止することがあります。アプリケーション側で再試行する場合は、元の待機時間を守り、SDK による再試行も考慮してください。
API の使用統計は、アカウントのダッシュボードでも確認できます。
問題が続く場合は、チャットでサポートチームに連絡 し、次の情報をお知らせください。
使用していたモデル
受信したエラーメッセージとエラーコード
送信したリクエストデータとヘッダー
リクエストのタイムスタンプとタイムゾーン
問題の診断に役立つその他の情報
サポートチームが問題を調査し、できるだけ早くご連絡します。お問い合わせが集中している場合は、回答までに時間がかかることがあります。コミュニティフォーラムに投稿 することもできますが、機密情報は記載しないでください。
API が返すエラーは、プログラムで処理することをおすすめします。次のコード例を参考にしてください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import OpenAI from "openai" ;
const client = new OpenAI ();
try {
const response = await client.responses. create ({
model: "gpt-6-astra" ,
input: "Hello world" ,
});
console. log (response.output_text);
} catch (error) {
if (error instanceof OpenAI . APIConnectionError ) {
console. error ( "Failed to connect to the OpenAI API:" , error.message);
} else if (error instanceof OpenAI . RateLimitError ) {
console. error ( "OpenAI API request exceeded its rate limit:" , error.message);
} else if (error instanceof OpenAI . APIError ) {
console. error ( "OpenAI API returned an error:" , error.status, error.message);
} else {
throw error;
}
} 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import openai
from openai import OpenAI
client = OpenAI()
try:
response = client.responses.create(model="gpt-6-astra", input="Hello world")
except openai.APIConnectionError as e:
print(f"Failed to connect to OpenAI API: {e}")
except openai.RateLimitError as e:
print(f"OpenAI API request exceeded rate limit: {e}")
except openai.APIError as e:
print(f"OpenAI API returned an API Error: {e}")
else:
print(response.output_text) 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package main
import (
"context"
"errors"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/responses"
)
func main() {
client := openai.NewClient()
response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{
Model: "gpt-6-astra",
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("Hello world")},
})
if err != nil {
var apiError *openai.Error
if errors.As(err, &apiError) {
fmt.Println("OpenAI API returned an API error:", apiError)
return
}
fmt.Println("Failed to connect to OpenAI API:", err)
return
}
fmt.Println(response.OutputText())
} 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.errors.OpenAIServiceException;
import com.openai.models.responses.ResponseCreateParams;
try {
var response =
client
.responses()
.create(
ResponseCreateParams.builder().model("gpt-6-astra").input("Say hello.").build());
response.output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(text -> System.out.println(text.text()));
} catch (OpenAIServiceException error) {
System.err.println(error.getMessage());
} 1
2
3
4
5
6
7
8
9 require "openai"
client = OpenAI::Client.new
begin
response = client.responses.create(model: "gpt-6-astra", input: "Say hello.")
puts(response.output_text)
rescue OpenAI::Errors::APIError => error
warn(error.message)
end