コンテンツへスキップ
APIガイド

エラー

Markdownとして表示 更新日

すべてのエンドポイントは同じ方法で失敗します。HTTPステータスと1つのJSONエンベロープが返されます。

JSON
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 5, 10.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 5, 10." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}
フィールド 意味
type エラーの大まかな分類。これに基づいて処理を決めます。
code 正確な理由。安定しており、機械で読み取れます。各コードには以下にセクションがあり、doc_urlから移動できます。
message 人間が読める説明。ログへの記録や開発者への表示に安全です。
param 問題のある入力パラメータまたはヘッダー(存在する場合)。
details 入力エラーの場合に見つかったすべての問題:[{ "param", "message" }]。
request_id 対象となるリクエスト(存在する場合)。

エラーを返す呼び出しには何も課金されません。受理された後に失敗したリクエストはステータスが failedのままとなり、リクエストオブジェクトにerror: { "type", "code", "message" }が含まれ、自動的に返金されます。

種類

種類 HTTPステータス 対処方法
invalid_request 400、413 または 422 リクエストを修正します。同じ呼び出しを再試行しても再び失敗します。
authentication_error 401 Authorization: Bearer <key>に有効なキーを指定します。
permission_error 403 必要なスコープを持つキーを使用します。
not_found 404 モデルIDまたはリクエストIDを確認します。
insufficient_credits 402 API残高をチャージします(エラー内のtop_up_url)。
budget_exceeded 402 キー固有の予算を使い切っています。最終的にはキー所有者に引き上げを依頼してください。
conflict 409 リソースがこの呼び出しを許可する状態ではありません。
rate_limited 429 Retry-After秒待ってから再試行します。
upstream_error 502 モデルのバックエンドが失敗しました。同じIdempotency-Keyで安全に再試行できます。再実行され、課金されていません。
service_unavailable 503 APIが一時停止中か、依存サービスが停止しています。後で再試行します。
internal_error 500 当社側のバグです。再試行し、解消しなければ時刻とrequest_idを添えてサポートへ連絡してください。

コード

invalid_request

形式が正しくない一般的なリクエスト(400)。

invalid_json

本文が有効なJSONではありません(400)。

invalid_body

本文は有効なJSONですがオブジェクトではありません。モデル入力はJSONオブジェクトである必要があります(400)。

body_too_large

本文が16 MBを超えています(413)。大きなファイルをアップロードし、代わりにそのURLを渡してください(ファイルを参照)。

invalid_parameter

クエリパラメータの値が正しくありません。たとえば、limitが1~100の範囲外、waitが数値でない、未知の statusまたはcategory、あるいはstorageがpermanent/temporary以外の場合です(400)。paramに名前が示されます。

invalid_category

GET /openapi.json?category=で存在しないカテゴリを指定しています(400)。GET https://api.doitong.com/v1/categoriesで一覧を取得できます。

invalid_cursor

一覧取得呼び出しのcursorがこの一覧に属していません(400)。カーソルなしで最初からやり直してください。

invalid_idempotency_key

Idempotency-Keyヘッダーが空か、255文字を超えています(400)。

invalid_arguments

MCPツール呼び出しの引数が欠落しているか、形式が正しくありません(MCPのみ)。paramに引数名が示されます。

invalid_input

モデル入力が検証に通りません(422)。未知のパラメータ(メッセージに最も近い有効な名前が示されます)、 必須パラメータの欠落、型の誤り、許可された一覧または範囲外の値、あるいは正規名とネイティブ名の両方が異なる値で指定されています。 paramは最初に問題があるパラメータで、detailsにすべての問題が一覧されます。課金はありません。

unsupported_file

受け付けられない種類のファイルです(422)。たとえば、対応していない拡張子のアップロードや、拡張子と一致しないcontent_typeです。

invalid_webhook_url

webhook_urlが公開されたhttps:// URLではありません(422)。プライベート、ローカル、平文のhttp://アドレスは拒否されます。

missing_api_key

エンドポイントにはAPIキーが必要ですが、送信されていません(401)。

invalid_api_key

キーが不明、無効化済み、または期限切れです(401)。

insufficient_scope

キーにこの呼び出しで必要なスコープがありません(403)。たとえば実行にはmodels:run、リクエストと残高の読み取りにはmodels:readが必要です。 認証を参照してください。

account_disabled

アカウントが閉鎖または停止されています(403)。そのキーは使用できません。

not_found

パスが存在しません(404)。

model_not_found

このIDの公開モデルはありません(404)。GET https://api.doitong.com/v1/modelsでモデルを一覧表示できます。

request_not_found

このIDのリクエストはアカウントに存在しません(404)。他のアカウントのリクエストは決して表示されません。

insufficient_credits

アカウントのAPI残高(APIクレジット、1,000 APIクレジット = $1。Doitongアプリのクレジットではありません)では、この呼び出しの料金を賄えません(402)。 課金前にレスポンスが送信されます。エラーにはtop_up_urlが含まれます。https://doitong.com/developers/dashboard#balanceで入金して再試行してください。

JSON
{ "error": { "type": "insufficient_credits", "code": "insufficient_credits",
             "message": "This request costs 560 API credits ($0.56); the API balance is 120 API credits ($0.12). Top up at https://doitong.com/developers/dashboard#balance",
             "top_up_url": "https://doitong.com/developers/dashboard#balance", "doc_url": "https://doitong.com/developers/docs/errors#insufficient_credits" } }

budget_exceeded

呼び出しによりAPIキー固有のAPIクレジット予算を超過します(402)。予算はキー所有者が設定します。所有者が引き上げるまで再試行しても解決しません。

conflict

呼び出しがリソースの現在の状態と競合しています(409)。

idempotency_mismatch

Idempotency-Keyは異なる本文ですでに使用されています(409)。新しい操作には新しいキーを使用してください。

idempotency_in_progress

同じIdempotency-Keyのリクエストを現在作成中です(409)。少し待って再試行すると取得できます。

request_active

リクエストはまだqueuedまたはrunningのため、削除するファイルがありません(409)。完了後に削除してください。

not_cancelable

リクエストはすでにsucceededまたはfailedで、キャンセルできません(409)。

rate_limited

現在の期間内にキーが多すぎるリクエストを送信しました(429)。X-RateLimit-*およびRetry-Afterヘッダーを確認してください。

too_many_inflight

アカウントにはすでに10件のqueuedまたはrunningリクエストがあります(429)。いずれかが完了してから次を開始してください。

upstream_error

モデルのバックエンドがリクエストを拒否または処理に失敗しました(実行時は502、またはリクエスト上ではこのコードのfailed)。APIクレジットは返金されます。 バックエンド自体が入力を拒否した場合は、代わりにメッセージ付きの422 invalid_inputが返ります。

upstream_lost

モデルのバックエンドがリクエストを認識しなくなったため、結果は届きません。このコード(種類はupstream_error)でfailedになり、返金されます。もう一度実行してください。

timeout

リクエストが制限時間(画像は15分、動画は60分、それ以外は30分)を超えて実行され、停止されました。このコードでfailedになり、返金されます。

service_unavailable

APIが一時停止中か、ファイルアップロードなどの依存サービスが停止しています(503)。後で再試行してください。

internal_error

当社側で問題が発生しました(500)。再試行し、解消しなければサポートへ連絡してください。

charge_failed

内部問題によりアカウントに課金できませんでした(500)。リクエストはfailedになり、何も引き落とされません。再試行してください。

pricing_unavailable

モデルの価格が設定されていないため、現在は価格の提示も実行もできません(500)。