API ドキュメント

エラー処理

失敗の形は 1 種類だけです。

失敗時は HTTP ステータスが 2xx 以外になり、ボディには error オブジェクトが 1 つだけ入ります:

json
{
  "error": {
    "message": "Insufficient credits: this request needs 60 credits. Top up and try again.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_credits"
  }
}

各項目

項目説明
message人が読むための英語の文言。文言は変わりうるので分岐条件にしないこと
type大分類。下表を参照
code具体的な原因。分岐はこの項目で行う
param問題のあるパラメータ名。特定できない場合は null

代表的な code

HTTPcode意味と対応
401missing_api_keyAuthorization ヘッダーが無い、または Bearer sk-xxx 形式でない
401invalid_api_key未知・無効・削除済みのキー。区別できないよう意図的に同一文言
400invalid_requestパラメータの問題。message を参照。prompt が空、image モードで画像が無いなど
402insufficient_creditsクレジット不足。追加購入のうえ、再試行前に /v1/credits を確認
429rate_limit_exceeded呼び出しが多すぎる。バックオフして再試行
429concurrency_limit_reached同時実行数または 1 日の上限に到達。時間をおいて再試行
404not_foundタスクが存在しない、またはこのアカウントのものではない
502generation_failed同期生成ですべての画像が失敗。クレジットは返却済み
504generation_timeout同期生成の待機がタイムアウト。タスクは走り続けクレジットも返らないため、メッセージ内の id で /v1/tasks/{id} から取得する
500internal_errorサーバー側の問題。再試行可。続く場合はご連絡ください
非同期で受理後に生成が失敗した場合、この形にはなりません。HTTP は 200 で、タスクオブジェクトの status が failed、理由は error に入ります。失敗が 502 になるのは同期の画像生成だけです。