エラー
Starmodel ゲートウェイのすべてのエラーは、安定した code を持つ構造化 JSON を返します。人間向けの message ではなく code で分岐してください。
エラー形式
すべてのエラーは同じエンベロープを共有します:
{ "error": { "code": "insufficient_credits", "message": "Insufficient credits. Please top up and try again.", "type": "error" }}Anthropic 互換の /v1/messages エンドポイントは、代わりに Anthropic 独自の形式でエラーを返します——トップレベルの type: "error" と、type と message を持つネストされた error オブジェクトです。
よくあるエラー
| ステータス | コード | 意味 |
|---|---|---|
401 | unauthorized | API キーが欠落・無効、または無効化されています。 |
403 | model_not_allowed | この API キーは要求されたモデルを呼び出す権限がありません。 |
400 | invalid_model | model の値が既知のモデル id ではありません。 |
400 | no_available_channel | 現在このモデルに利用可能な上流チャネルがありません。 |
402 | insufficient_credits | ウォレット残高がリクエストを賄うには不足しています。 |
402 | subscription_quota_exceeded | このサイクルのサブスクリプションのトークン枠を使い切りました。 |
400 | model_pricing_missing | このモデルには公開された販売価格がなく、まだ課金できません。 |
429 | rpm_exceeded | 1 分あたりのリクエスト数上限を超えました。 |
429 | tpm_exceeded | 1 分あたりのトークン数上限を超えました。 |
429 | concurrency_exceeded | 同時リクエストが多すぎます。 |
502 | upstream_error | 上流プロバイダーがエラーを返しました。 |
500 | internal | 予期しないゲートウェイエラー——再試行し、続く場合はサポートに連絡してください。 |
レート制限と再試行
429 レスポンスには Retry-After ヘッダー(秒)が含まれます——その時間だけ待ってから再試行してください。rpm_exceeded / tpm_exceeded は 1 分あたりのリクエスト数 / トークン数の上限、concurrency_exceeded は同時進行中のリクエストが多すぎることを意味します。
課金と価格
402 はウォレット残高が不足していることを意味します——チャージ(insufficient_credits)するか、次のサイクルを待ってください(subscription_quota_exceeded)。400 の model_pricing_* / model_not_billable は、モデルにまだ公開された販売価格がないことを示します。管理者に価格の設定と公開を依頼してください。
エラーの処理
プログラムで分岐するには error.code を読みます——これは安定しています。error.message は人間向けで変わる可能性があります。429 と 502 はバックオフして再試行し、4xx の課金・検証エラーはリクエストを修正せずに再試行しないでください。

