エラー

Tokener.ai モデル API のエラーレスポンス形式とエラーコード。

更新日 2026-10-27
GitHub で編集

モデル API のすべてのレスポンス(成功・エラーいずれも)には x-request-id と request-id レスポンスヘッダー(req_<32桁の16進文字>)が付与されます。 サポートへ連絡する際はこの値を添えてください。

非ストリーミングのエラー

エラー時は非 2xx の HTTP ステータスと JSON ボディが返ります。形状はリクエ ストのプロトコルに従います。

OpenAI 形式のパス(/models、/models/user、/chat/completions、 /embeddings、/responses):

JSON
{
  "error": {
    "message": "Invalid API key.",
    "type": "authentication_error",
    "param": null,
    "code": "invalid_api_key"
  }
}

Anthropic 形式のパス(/messages):

JSON
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key."
  },
  "request_id": "req_1f2e3d4c5b6a7988a1b2c3d4e5f60718"
}

モデルが識別可能なパラメーターを拒否した場合、HTTP 400 は invalid_request を維持し、 error.param にパラメーター名を設定します。例:

JSON
{
  "error": {
    "message": "Invalid value for parameter 'temperature'.",
    "type": "invalid_request_error",
    "param": "temperature",
    "code": "invalid_request"
  }
}

未対応のフィールドには This model does not support parameter 'store'. を使用します。 使用できない組み合わせには Parameters 'tools' and 'reasoning_effort' cannot be used together with this model. を使用します。 識別できるサンプリング制限では、メッセージに許可条件を示します: Parameter 'temperature' must be 1 unless 'reasoning_effort' is 'none' with this model.。 単一のサンプリングパラメーターが制限される場合、error.param はそのパラメーター名を保持します。Chat の制限が logprobs、top_p、top_logprobs をまとめて列挙する場合、error.param は推論強度のフィールドを示し、メッセージはこの 3 つのパラメーターを列挙します。 識別可能なエラーには、対応する値や修正方法を含める場合があります。例: This model does not support forced 'tool_choice'. Use 'auto'. モデル選択のエラーは model を示します。ツール履歴のエラーは Chat/Messages では messages、Responses では input を示します。形式の種類が拒否された場合、 Chat は response_format、Responses は text.format を示します。 これらのメッセージは拒否の理由を説明し、リクエストのパラメーターは変更しません。 Responses のエラーは reasoning.effort、text.format などの公開フィールド名を使用します。 Anthropic のエラーは error.message にパラメーター名を示し、param は追加しません。 Messages のエラーは識別できるネイティブフィールド(output_config.effort など)を示し、stop を stop_sequences に対応付けます。 拒否された組み合わせに由来が不明な effort フィールドが含まれる場合、組み合わせの競合を説明し、識別できるネイティブの制御パラメーターを示します。effort のフィールドは推測しません。 バックエンドが元の推論フィールドを特定した場合、組み合わせのエラーは両方のネイティブフィールドを示します。 曖昧なフィールドまたは OpenAI 固有のフィールドしか特定できない場合、Invalid request. を維持します。 安全に識別できない場合、param は null、メッセージは Invalid request. のままです。 メッセージにはバックエンドの詳細を含めません。stream:true でもストリーム開始前の拒否は この HTTP 契約を使用し、開始後のエラーは以下の汎用 SSE 契約を維持します。

保存、キャッシュ管理、安全性の帰属に対応しないモデルでは、store、prompt_cache_key、 prompt_cache_retention、safety_identifier を無視する場合があります。応答を保存しないモデルは store:true と store:false の両方を無視します。これらのフィールドは出力内容、形式、ツールの 動作を変更しません。他の未対応の生成制御、不正な値、使用できない組み合わせは引き続き失敗します。 将来追加される未知のフィールドも HTTP 400 を返す場合があります。

ストリーミングのエラー

stream: true でストリーム開始後にエラーが発生した場合、HTTP エラースタ タスではなく 1 つの SSE フレームとしてエラーが届きます。パスにより 3 種類 の形状があります。

/chat/completions(OpenAI Chat Completions):

Text
data: {"error":{"message":"Upstream request failed.","type":"upstream_error","param":null,"code":"provider_error"}}
 

/messages(Anthropic Messages):

Text
event: error
data: {"type":"error","error":{"type":"api_error","message":"Upstream request failed."},"request_id":"req_1f2e3d4c5b6a7988a1b2c3d4e5f60718"}
 

/responses(OpenAI Responses):

Text
event: error
data: {"type":"error","code":"provider_error","message":"Upstream request failed.","param":null}
 

エラーコード

code(OpenAI 形式)と error.type(Anthropic 形式)は安定しており、分岐 条件として安全に使えます。message の文言は安定しておらず、予告なく変わり 得ます。

HTTP ステータスcodeOpenAI typeAnthropic type意味
400invalid_requestinvalid_request_errorinvalid_request_errorリクエストが不正
401invalid_api_keyauthentication_errorauthentication_errorAPI キーが未設定または無効
402insufficient_creditsbilling_errorbilling_errorプリペイド残高が不足
403permission_deniedpermission_errorpermission_errorキーがこのモデル/パスにアクセス権を持たない
404route_not_foundinvalid_request_errornot_found_error未知のパス
404model_not_foundinvalid_request_errornot_found_errorモデル id が存在しない
405method_not_allowedinvalid_request_errorinvalid_request_errorそのパスに対して不正な HTTP メソッド
413request_too_largeinvalid_request_errorrequest_too_largeリクエストボディがサイズ上限を超過
429rate_limit_exceededrate_limit_errorrate_limit_errorリクエストが多すぎる(retry-after ヘッダーを参照)
502provider_errorupstream_errorapi_errorアップストリームのプロバイダー呼び出しが失敗
503overloadedservice_unavailable_erroroverloaded_errorGateway の同時処理上限に到達。後で再試行
503gateway_unavailableservice_unavailable_errorapi_errorアップストリームに到達できない
504upstream_timeouttimeout_errorapi_errorリクエストのアップロードまたはアップストリームの応答がタイムアウト

モデルはトップレベルの model フィールドで選択してください。extra_body.model、 models、route で上流モデルを選択するリクエストは HTTP 400 (invalid_request)を返します。extra_body 内の models と route、 プロバイダーやデプロイの選択フィールド、api_key や extra_headers 内の Authorization などのプロバイダー認証情報、フォールバック一覧にも同じ規則が適用されます。

SDK での実装アドバイス

message ではなく code / error.type と HTTP ステータスで分岐してくだ さい。4xx は基本的にリトライ対象外(429 は retry-after 後にリトライ可) とし、5xx(502/503/504)はバックオフ付きでリトライ可能として扱っ てください。