コアガイド

APIエラーの処理

エラーコードの読み取り、有効な場合のみの再試行、およびRequest IDの保持

HTTPステータスと code に基づいてエラーを処理してください。message は人間が読むためのものであり、予告なく変更される可能性があります。

Chat CompletionsおよびResponsesは、OpenAI形式の error オブジェクトを使用します。Anthropic MessagesやGeminiは独自の形式のエラーを使用するため、すべてのTokenLab APIに対して単一のパーサーを使用しないでください。

{
  "error": {
    "message": "Human-readable description",
    "type": "error_type",
    "code": "error_code",
    "param": "parameter_name",
    "retryable": true,
    "retry_after": 30
  }
}

TokenLabによって作成されたOpenAI互換エラーでは、message と type のみが常に存在します。その他のフィールドは、関連がある場合にのみ表示されます。

ステータスコード

ステータス意味推奨されるアクション
400フィールド、モデルID、または入力が無効リクエストを修正してください。変更せずに繰り返さないでください
401APIキーがない、無効、期限切れ、または取り消されているキーを置き換えてください
402残高またはAPIキーの制限が低すぎるチャージ、制限の引き上げ、またはリクエストの削減を行ってください
403このキーではリソースやモデルを使用できないキーの権限またはモデルを変更してください
404リソースが存在しない、または利用できないIDおよびそれを作成したAPIキーを確認してください
413リクエストまたはアップロードされたファイルが大きすぎるドキュメント化されたモデルまたはエンドポイントの制限まで入力を削減してください
429リクエスト制限に達したRetry-After を待機してください
500–504サービスの利用不可またはネットワーク障害retryable が true の場合のみ、retry_after と回数制限を守って再試行してください

一般的なエラーコード

コード意味変更すべき点
invalid_api_keyAPI キーがない、無効、停止中、または失効しているAuthorizationヘッダーとキーの値を確認してください
expired_api_keyAPI キーの有効期限が切れている有効なキーを作成または選択してください
insufficient_balanceアカウント残高がリクエストをカバーできない残高を追加、リクエストを削減、または低価格のモデルを選択してください
quota_exceededAPIキーが独自の制限に達したキーの制限を増やすか、別の有効なキーを使用してください
model_not_allowedキーが要求されたモデルを使用できないキーのモデルリストを更新するか、許可されたモデルを選択してください
model_not_foundモデルIDが不明または利用不可/v1/models を読み取り、現在のモデルIDを使用してください
context_length_exceeded入力がモデルの許容範囲を超えている履歴を削除するか、より大きなコンテキストウィンドウを持つモデルを選択してください
rate_limit_exceeded現在のウィンドウでリクエストが多すぎるRetry-After を待機してください
payload_too_largeリクエストボディまたはファイルがエンドポイントの制限を超えている入力を削減または圧縮してください
all_channels_failed選択したモデルではこのリクエストを処理できませんretryable が true の場合のみ、retry_after と回数制限を守って再試行してください
timeout_errorリクエストが時間内に完了しなかった操作の再試行が安全な場合にのみ再試行してください

503 all_channels_failed や 503 delivery_tier_unavailable は、必ずしも一時的な障害を意味しません。選択した Delivery ティアに対象操作を提供する経路がない場合、retryable は false となり、retry_after は返されません。同じリクエストを繰り返さないでください。別のモデルを選ぶ前に、GET /v1/models で操作と Delivery の利用可否を確認してください。名前が似ていても利用できるとは限らず、未確認の代替モデルは表示されません。

一部のOpenAI互換エラーには、オプションの did_you_mean、suggestions、alternatives、hint、retryable、または retry_after フィールドが含まれます。エージェントが対応可能なエラー を参照してください。

リクエストが Official ルートで実行され、上流サービスがリクエスト自体を拒否した場合(受け付けない入力やコンテンツポリシーの判定など)、エラーには upstream も含まれます。message は上流が返した原文で、判明している場合は code と source(上流サービス名)も含まれます。Anthropic Messages と Gemini のエラーは、それぞれの error オブジェクト内に同じフィールドを持ちます。分岐は引き続き code と type で行ってください。upstream.code の値は上流サービスが定義するもので、変わる可能性があります。

再試行の判断

エラー同じリクエストを繰り返すか?
400, 401, 402, 403, 404, 413いいえ。リクエスト、認証情報、残高、権限、または入力を変更してください。
429はい。サーバーから提供された遅延時間後に再試行してください。
500–504retryable が true の場合のみ、retry_after と回数制限を守って再試行してください
レスポンス前に接続が切断された場合による。作成操作の場合は、タスクや副作用が既に存在するか確認してください。
出力後にストリームが中断された完了したレスポンスとは見なさないでください。繰り返すと異なる出力や二重課金が発生する可能性があります。

画像、動画、音楽、3D、およびWorldsの作成については、タスクIDが返されたらすぐに保存してください。作成リクエストがタイムアウトした場合は、別の作成リクエストを送信する前にタスクレコードを確認してください。

Request IDの保持

レスポンスヘッダーには、追跡用のRequest IDが含まれています。エンドポイント、モデル、時刻、および独自のユーザーIDやジョブIDと共に保存してください。非同期作業の場合は、task_id および billing_transaction_id が存在する場合も保存してください。

サポートに連絡する際は、これらのIDと編集済みの例を含めてください。APIキー、管理トークン、プライベートメディア、署名付きURL、または完全なプライベートプロンプトは絶対に送信しないでください。

リクエストから調査、サポートへ

このページの内容