このガイドでは、API と公式 Python ライブラリ で発生する可能性のあるエラーコードの概要を説明します。概要に記載した各エラーコードには個別のセクションがあり、詳しい対処方法を紹介しています。
コード 概要 400 - 無効な service_tier 引数 原因: リクエストで指定された、または設定に基づいて決定されたサービスティアが、プロジェクトで許可されていません。 解決方法: service_tier をプロジェクトで許可されているティアに設定するか、プロジェクト設定 で許可するサービスティアを更新してください。401 - 無効な認証 原因: 認証が無効です。 解決方法: 正しい API キー とリクエスト元の組織を使用していることを確認してください。401 - 指定された API キーが不正 原因: リクエストに使用した API キーが正しくありません。 解決方法: 使用している API キーが正しいことを確認するか、ブラウザのキャッシュを削除するか、新しい API キーを生成 してください。401 - API の利用には組織への所属が必要 原因: アカウントが組織に所属していません。 解決方法: 新しい組織への追加についてお問い合わせいただくか、組織の管理者に組織への招待 を依頼してください。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 キーを使用しています。
このエラーを解決するには、次の手順に従ってください。
リクエストヘッダーで正しい API キーと組織 ID を使用していることを確認してください。API キーと組織 ID はアカウント設定 で確認できます。また、目的のプロジェクトを選択すると、一般設定 でそのプロジェクトに関連するキーを確認できます。
API キーが有効かどうかわからない場合は、新しいキーを生成 できます。リクエストに使用する古い API キーを必ず新しいキーに置き換え、ベストプラクティスガイド に従ってください。
401 - 指定された API キーが不正 このエラーメッセージは、リクエストに使用している API キーが正しくないことを示しています。次のような原因が考えられます。
API キーに入力ミスや余分な空白があります。
別の組織またはプロジェクトに属する API キーを使用しています。
削除済みまたは無効化された API キーを使用しています。
取り消された古い API キーがローカルにキャッシュされている可能性があります。
このエラーを解決するには、次の手順に従ってください。
ブラウザのキャッシュと Cookie を削除してから、もう一度試してください。
リクエストヘッダーで正しい API キーを使用していることを確認してください。
API キーが正しいかどうか不明な場合は、新しいキーを生成 できます。コードベース内の古い API キーを必ず置き換え、ベストプラクティスガイド に従ってください。
401 - API の利用には組織への所属が必要 このエラーメッセージは、アカウントが組織に所属していないことを示します。次のような原因が考えられます。
以前所属していた組織から脱退したか、メンバーから削除されています。
以前所属していたプロジェクトから脱退したか、メンバーから削除されています。
組織が削除されています。
このエラーを解決するには、次の手順に従ってください。
以前所属していた組織から脱退したか、メンバーから削除されている場合は、新しい組織の作成をリクエストするか、既存の組織に招待してもらうことができます。
新しい組織の作成をリクエストするには、help.openai.com からお問い合わせください。
既存の組織のオーナーは、チームページ からあなたを組織に招待したり、設定ページ から新しいプロジェクトを作成したりできます。
以前所属していたプロジェクトから脱退したか、メンバーから削除されている場合は、組織またはプロジェクトのオーナーに、再度追加してもらうか、新しいプロジェクトを作成してもらうよう依頼できます。
429 - クレジット残高の枯渇 credit_balance_exhausted エラーは、組織のプリペイドクレジット残高がなくなったことを示します。
API へのアクセスを復旧するには、請求設定でクレジットを追加 してください。
429 - リクエストのレート制限に到達 このエラーメッセージは、割り当てられた API のレート制限に達したことを示します。短時間に送信したトークンやリクエストが多すぎて、許可されたリクエスト数を超えたことを意味します。次のような原因が考えられます。
リクエストを頻繁に、または同時に送信するループやスクリプトを使用しています。
API キーを他のユーザーやアプリケーションと共有しています。
レート制限の低い無料プランを使用しています。
プロジェクトに設定された上限に達しています。
このエラーを解決するには、次の手順に従ってください。
リクエストの送信間隔を調整し、不要な呼び出しや重複する呼び出しを避けてください。
Retry-After ヘッダーがある場合は、指定された時間以上待ってから再試行してください。ない場合は、ジッターを伴う指数バックオフを使用し、再試行回数を制限してください。サーバーが指定する長い待機時間への SDK の対応は、バージョンや構成によって異なります。詳しくは、レート制限ガイド をご覧ください。
他のユーザーと同じ組織を使用している場合、制限はユーザー単位ではなく組織単位で適用される点に注意してください。チームの他のメンバーの使用量も上限に算入されるため、確認することをおすすめします。
無料プランや下位プランを使用している場合は、レート制限がより高い従量課金プランへのアップグレードを検討してください。各プランの制限は、レート制限ガイド で比較できます。
組織のオーナーに連絡して、プロジェクトのレート制限の引き上げを依頼してください。
429 - リクエスト頻度の抑制が必要 タイプが rate_limit_error、コードが slow_down の 429 レスポンスは、サービスが安全に処理できるペースを超えてリクエスト頻度が増加したことを示します。トラフィックが 1 分あたりのリクエスト数とトークン数の制限内でも発生することがあります。
目安として、トラフィックが 1 分あたり 100 万入力トークン(TPM)に達したら、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 へのアクセスを復旧するには、プロジェクト設定 で上限を引き上げるか、解除してください。変更しない場合は、月間上限のリセット後にアクセスが再開されます。
429 - 組織の使用量の上限に到達 organization_usage_limit_exceeded エラーは、OpenAI が組織に割り当てた月間の使用量の上限 に達したことを示します。この上限は、お客様が設定する組織やプロジェクトの利用額の上限とは別のものです。
API へのアクセスを復旧するには、承認済みの使用量の上限 の引き上げを申請するか、サポートにお問い合わせ ください。
503 - モデルの一時的な過負荷 タイプが service_unavailable_error、コードが server_is_overloaded の 503 レスポンスは、指定されたモデルに、現時点でリクエストを処理するための十分な容量がないことを示します。
Retry-After ヘッダーがある場合は、指定された時間以上待ってから再試行してください。ない場合は、再試行の間隔を延ばしてください。エラーが続く場合は、稼働状況ページ で発生中の障害を確認してください。
Python では、429 レスポンスに対して RateLimitError が、503 レスポンスに対して InternalServerError が発生します。これまでハンドラーでスロットリングと過負荷に対応する際に、どちらか一方の例外クラスのみをキャッチしていた場合は、両方を処理し、error.code を確認してください。たとえば、動画の過負荷では、以前は 429 が返されていましたが、現在は 503 が返されます。エンドポイントごとの変更点については、移行ガイド をご覧ください。
タイプ 概要 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 エラーが発生した場合は、次の手順を試してください。
数秒待ってからリクエストを再試行してください。ネットワークの混雑や OpenAI のサービスへの負荷が軽減され、2 回目の試行でリクエストが成功する場合があります。
ネットワーク設定を確認し、高速で安定したインターネット接続を確保してください。別のネットワークへの切り替え、有線接続の使用、帯域幅を使用するデバイスやアプリケーションの数の削減が必要な場合があります。
問題が解決しない場合は、「解消しないエラー」セクションの対処方法を参照してください。
AuthenticationError AuthenticationError は、API キーまたはトークンが無効、期限切れ、または取り消し済みであることを示します。入力ミス、書式の誤り、セキュリティ侵害などが原因として考えられます。
AuthenticationError が発生した場合は、次の手順を試してください。
API キーまたはトークンを確認し、正しく、有効な状態であることを確認してください。API キーのダッシュボードで新しいキーを生成する、余分なスペースや文字が含まれていないか確認する、複数のキーやトークンがある場合は別のものを使用する、といった対応が必要な場合があります。
正しい書式に従っていることを確認してください。
BadRequestError BadRequestError(旧称:InvalidRequestError)は、リクエストの形式に誤りがあるか、トークンや入力などの必須パラメーターが不足していることを示します。入力ミス、書式の誤り、コード内の論理エラーなどが原因として考えられます。
BadRequestError が発生した場合は、次の手順を試してください。
エラーメッセージを注意深く読み、具体的な誤りを特定してください。通常、エラーメッセージには、どのパラメーターが無効または不足しているか、どのような値や形式が必要かが示されています。
呼び出した API メソッドについて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