Cookieを使用しています. Cookieとブラウザストレージは、ログイン状態の維持と設定の保存に使われます。許可いただいた場合は、サイトの利用状況も計測します。はいつでも変更できます。詳しくはCookieポリシーをご覧ください。

エラー

アカウント

エラー

api14 が返す OpenAI 互換のエラー形式と、ゲートウェイのエラーコードの一覧です。上流プロバイダー由来のエラー、コード別の対処方法、SDK で APIError や RateLimitError を処理するコード例を紹介します。message は英語の説明文なので、分岐には code を使います。

エラーは OpenAI のエラー形式を使うため、公式 SDK は通常の例外(APIError、RateLimitError、AuthenticationError など)に変換します。分岐には code を使ってください。message は人間向けの英語の説明です。

{
  "error": {
    "message": "This request may cost up to $0.0123 but your balance is $0.0040. Add funds at /pricing.",
    "type": "insufficient_quota",
    "code": "insufficient_balance"
  }
}

失敗したリクエストには課金されません。 4xx または 5xx のステータスのレスポンスは、いずれも無料です。

ゲートウェイのエラーコード

ステータスcodetype意味
400model_requiredinvalid_request_errormodel フィールドがない。
400invalid_jsoninvalid_request_errorボディが JSON オブジェクトではない。
400invalid_bodyinvalid_request_errormultipart ボディを読み取れなかった。
400max_tokens_too_largeinvalid_request_errorプレイグラウンドの試用リクエストが、多すぎる出力トークンを要求した。
401invalid_api_keyauthentication_errorキーがない、形式が正しくない、または失効している。
402insufficient_balanceinsufficient_quotaUSD 残高が $0、またはリクエストの想定最大料金(入力、出力の上限、画像、動画の長さ)を下回っている。リクエストは送信されません。
403model_not_allowedpermission_errorキーのモデル許可リストにこのモデルが含まれていない。
403plan_requiredpermission_errorプランにこのモデルカテゴリが含まれていない。
404model_not_foundnot_found_errorモデル ID が不明、無効化、または削除されている。
404not_foundnot_found_error不明なエンドポイント、または自分のものではない動画ジョブや生成。
413payload_too_largeinvalid_request_errorリクエストボディがサイズ上限(デフォルトは 25 MB)を超えている。
429rate_limitedrate_limit_error毎分のリクエスト数を超えた。Retry-After: 60 が付与されます。
409idempotency_conflictapi_errorこの Idempotency-Key のリクエストはすでに送信済み。別のリクエストを送るには新しいキーを使ってください。レート制限を参照してください。
429daily_limit_reachedrate_limit_errorキーが 1 日の USD 利用上限に達した。
403site_not_allowedpermission_errorウィジェットのみ: ページのサイトが許可したウィジェットサイトに含まれていない。ウィジェットを参照してください。
429widget_daily_limitrate_limit_errorウィジェットのみ: ウィジェット、またはすべてのウィジェットの合計が 1 日の USD 利用上限に達した。
429visitor_daily_limitrate_limit_errorウィジェットのみ: この訪問者が、ウィジェットの設定で指定した 1 日のリクエスト上限に達した。
502upstream_unavailableapi_error上流のプロバイダーに接続できなかった。
4xx/502content_unavailable状況による動画のコンテンツをまだ取得できなかった(ステータスは上流に準じ、なければ 502)。
503maintenanceservice_unavailableメンテナンスモード。生成エンドポイントは停止中ですが、GET エンドポイントは引き続き動作します。
503not_configuredservice_unavailableゲートウェイがまだ設定されていない。

上流のエラー

上流のプロバイダーが返すエラー(特定のモデルに対する無効なパラメーター、コンテキスト長の超過、コンテンツポリシーによる拒否、プロバイダー自身の 429 など)は、元のステータスコードと同じ { error: {... } } 形式でそのまま返されます。

対処方法

ステータス再試行対処
400しないリクエストボディを修正する。
401しないキーと Authorization: Bearer ヘッダーを確認する。認証を参照してください。
402しない残高を追加するか、自動チャージを有効にする。
403しない許可されたモデルを使うか、キーの許可リストを編集するか、プランをアップグレードする。
404しないモデルページでモデル ID を確認する。
413しないより小さいボディを送るか、base64 の代わりに URL でファイルを渡す。
429後でrate_limited: Retry-After の時間だけ待つ。daily_limit_reached: 次の UTC 日まで待つか、キーの上限を引き上げる。レート制限を参照してください。
502するバックオフを入れて再試行するか、モデルのフォールバックを追加する。
503する後で再試行する。

コードでのエラー処理

import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://api14.com/api/v1', apiKey: process.env.API14_API_KEY })

try {
  await client.chat.completions.create({ model: 'openai/gpt-5-mini', messages: [{ role: 'user', content: 'Hi' }] })
} catch (err) {
  if (err instanceof OpenAI.APIError) {
    console.error(err.status, err.code, err.message)
    if (err.code === 'insufficient_balance') {
      // prompt the user to add funds
    }
  } else {
    throw err
  }
}
from openai import OpenAI, APIStatusError

client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...")

try:
    client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
except APIStatusError as e:
    print(e.status_code, e.code, e.message)

ストリームの開始後に発生したエラーは、ストリームの中で届きます。ストリーミングを参照してください。