新着どんなエージェントもUberLLMにつなぐだけ。1つのキーで全モデル、定価以下で。
UberLLM

エラー

UberLLMはOpenAIスタイルのエラー形式を返すため、既存のエラーハンドリングがそのまま機能します。

{
  "error": {
    "code": "insufficient_credits",
    "message": "Your credit balance is too low to serve this request.",
    "type": "insufficient_credits"
  }
}

Inference surface (/v1/*)

HTTP code 意味 対処法
402 insufficient_credits あなたのプリペイド残高では、リクエストの予約をカバーできません。 Dashboard → Creditsでチャージしてください。
402 key_spend_cap_exceeded このキーは、設定された利用限度額(日次 / 月次 / ライフタイム)に達しました。 キーの上限を引き上げるか削除するか、別のキーを使用してください。
400 invalid_request リクエストボディをパースできませんでした。または、モデルがリクエストを拒否しました(メッセージに理由が記載されています)。 リクエストを修正してください。再試行はされません。
413 request_too_large リクエストボディが10 MBを超えています(多くの場合、base64として送信された画像)。 画像をhttps://リンクとして送信するか、会話を短くしてください。料金は発生していません。
404 model_not_found model idが利用できません。先頭にuberllm/プレフィックスを付けても問題ありません: uberllm/deepseek/deepseek-v4.1-flashはdeepseek/deepseek-v4.1-flashに到達します。 GET /v1/modelsを確認し、idを修正してください。
400 context_length_exceeded プロンプトが、販売元を問わずモデルが受け入れる長さよりも長いです。/v1/chat/completionsでmodelsリストがない場合、代わりに最も近いモデルが応答します(応答のmodelにそのモデル名が記載されます)。このエラーは、どのモデルも受け入れない場合、または/v1/messagesで発生します。メッセージには、両方のサイズと、それを受け入れるモデル名が記載されています。 送信する量を減らすか、メッセージに記載されているモデルを選択してください。料金は発生していません。
400 tools_not_supported リクエストがtoolsを送信していますが、販売元を問わずモデルはそれらを呼び出すことができません。上記と同じ代替ルールが適用されます。メッセージには、呼び出し可能なモデル名が記載されています。 ツールなしで送信するか、メッセージに記載されているモデルを選択してください。料金は発生していません。
400 max_price_exceeded 現在、あなたのprovider.max_price内でこのモデルを販売している人はいません(また、modelsのどのモデルもそれを受け入れることができませんでした)。 max_priceを上げるか、後で試すか、他のモデル名を指定してください。料金は発生していません。
400 unsupported_routing_option UberLLMが適用できないproviderオプションです(メッセージにその名前が記載されています)。 それを省略してください。Models & routingを参照。
400 invalid_metadata metadataは、最大16個のテキスト値のオブジェクトではありません。 タグを修正してください。数値は引用符で囲みます。
400 unknown_capability best-price: / fastest:エイリアスはジョブ名を指定していません。 chat, image, image-edit, text-to-video, image-to-video, music, speech, transcriptionのいずれかを使用してください。
400 wrong_endpoint モデル(またはエイリアス)が、このルートでは実行できないジョブを実行しています。例えば、画像、動画、音楽、音声、または文字起こしモデルが/v1/chat/completionsまたは/v1/messagesに送信された場合、チャットモデルがメディアルートに送信された場合、または音声と文字起こしが入れ替わっている場合です。メッセージには正しいルートが記載されています。何も実行される前に拒否されます。料金は発生せず、Activityには拒否されたものとして表示されます。 メッセージに記載されているルートに送信してください(/v1/models/{id}のendpointsにも記載されています)。
503 no_timing_data モデルを比較するために十分なリクエストが計測される前にfastest:が要求されました。 best-price:を使用するか、モデル名を指定してください。
429 rate_limited このキーは1分あたりのリクエスト制限を超過しました。または、自動リトライ後もマーケットプレイスがレート制限を継続しました。 バックオフしてjitterを加えて再試行してください。キーのレート制限を引き上げてください。
503 no_available_provider 自動リトライ後も、現在そのモデルを提供できる人はいません(販売者がいない、すべての販売者が失敗しているか起動が遅すぎる、またはあなたのproviderオプションでルーティング先が残っていない)、またはbest-price: / fastest:エイリアスが現在利用可能なジョブのモデルを見つけられませんでした。メッセージにはモデル名またはジョブ名が記載されています。これは、販売者自身のプロバイダーアカウントが失敗した場合もカバーします。UberLLMは他の販売者を試行し、あなたのキーが間違っているかのようにその販売者のエラーを渡すことはありません。 しばらくしてから再試行するか、別のモデルを選択してください。料金は発生していません。
503 service_unavailable UberLLM側の一時的な問題です。 数分後に再試行してください。

画像、動画、音楽のリクエストには、独自のコードがいくつか追加されます(image_required、invalid_image_url(画像に繋がらないソース画像リンク)、max_cost_too_low、idempotency_key_reused、artifact_expired)。Make a video or imageを参照してください。

拒否または失敗したチャットリクエストは、送信されたメッセージとともにDashboard → Activityに表示されます。チャット、画像、動画、音楽、音声、文字起こしの応答には、エラーを含め、Activity行と同じidを持つX-Request-Idヘッダーが含まれています。

エラーが返される前に、あなたのためにリトライが行われます。最大4回試行され、最初のコンテンツバイトが送信される前のみです。Models & routingを参照してください。

Reservations and aborts

UberLLMはプロキシ処理の前に推定コストを予約し、その後実際の使用量に基づいて精算します。リクエストがエラーになったり、中断されたり、ストリーム中に接続が切断された場合、未使用の予約は解放されます。実際に生成されたコンテンツに対してのみ課金されます。中断されたストリームは、tokenizerの推定値から調整され、Dashboard → Activityでフラグが立てられます。

レート制限

キーごとのレート制限は、固定ウィンドウで適用されます。推論サービスでは、レート制限のチェックはフェイルクローズされます。つまり、UberLLMがお客様の制限を確認できない場合、リクエストは無制限に処理されるのではなく、拒否されます。キーごとの1分あたりのリクエスト制限は、ダッシュボード → API keysで設定(または引き上げ)してください。

認証されたすべての /v1/* 応答には、キーの現在のウィンドウ情報が含まれています。

ヘッダー 意味
X-RateLimit-Limit このキーが1分間に送信できるリクエスト数
X-RateLimit-Remaining 現在の1分間に残っているリクエスト数
X-RateLimit-Reset ウィンドウがリセットされるタイミング(Unix秒)
Retry-After この制限による 429 の場合:再試行するまでに待つ秒数

X-RateLimit-Remaining が 0 に近づいたら、速度を落としてください。ウィンドウを読み取れない場合、ヘッダーは省略されます。

出品者API (/api/v1/seller/*)

これらは標準的なRESTコードを使用します。

HTTP code 意味
400 invalid_request 検証に失敗しました(例:非HTTPSのendpoint_url、absoluteの価格が不足、multiplierが0 < m ≤ 1.5の範囲外)。メッセージにはフィールド名が示されます。
400 model_not_in_catalog model_idは既知のカタログモデルではありません。
401 unauthorized ダッシュボードJWTが不足しているか無効です。
404 seller_not_found あなたの組織に出品者がいません — まずPOST /api/v1/seller/registerを呼び出してください。
404 offer_not_found あなたの出品者の下にそのIDのオファーはありません。
409 invalid_status_transition 不正なステータス変更 — 例:delistedのオファーを再開する(出品停止は最終状態です)。

注:検証プローブの失敗はエラー応答ではありません。オファーは正常に作成/更新され、status: "paused"と、その理由を説明するlast_probe_errorとともに返されます — エンドポイントを修正し、再プローブするためにactiveにPATCHしてください。Sellers]を参照してください。

認証エラー

HTTP 意味
401 Authorizationヘッダーが不足しているか無効です。推論キーはBearer ull_...です。ダッシュボードエンドポイントはアカウントのJWTを使用します。
403 キーは有効ですが、必要なスコープがありません (例: 推論専用キーがダッシュボードエンドポイントを呼び出す場合)。