エラー
すべてのエンドポイントは同じ方法で失敗します。HTTPステータスと1つの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で入金して再試行してください。
{ "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)。