エラー応答形式
すべてのエラーは、オプションの Agent-First hints を含む一貫した JSON 形式で返されます:message, type, code, param)は常に含まれます。ヒント系フィールド(did_you_mean, suggestions, hint, retryable, retry_after, balance_usd, estimated_cost_usd)は、AIエージェントの自己修正のための任意の拡張です。詳細は Agent-First API guide を参照してください。
OpenAI互換のエンドポイントはLemonDataの安定したゲートウェイエラータイプを使用します。Anthropic互換およびGemini互換のエンドポイントは、それぞれネイティブのエラー系列とレスポンス形式を使用します。
HTTP ステータスコード
| コード | 説明 |
|---|---|
| 400 | Bad Request - 無効なパラメータ |
| 401 | Unauthorized - 無効または欠落したAPIキー |
| 402 | Payment Required - 残高不足 |
| 403 | Forbidden - アクセス拒否またはモデルが許可されていない |
| 404 | Not Found - モデルまたはリソースが見つからない |
| 413 | Payload Too Large - 入力またはファイルサイズが超過 |
| 429 | Too Many Requests - レート制限超過 |
| 500 | Internal Server Error - 内部サーバーエラー |
| 502 | Bad Gateway - 上流プロバイダエラー |
| 503 | Service Unavailable - サービス一時的に利用不可 |
| 504 | Gateway Timeout - リクエストがタイムアウト |
エラータイプ
認証エラー (401)
| タイプ | コード | 説明 |
|---|---|---|
invalid_api_key | invalid_api_key | API key is missing or invalid |
expired_api_key | expired_api_key | API key has been revoked |
支払いエラー (402)
| タイプ | コード | 説明 |
|---|---|---|
insufficient_balance | insufficient_balance | アカウント残高が不足しています(OpenAI互換エンドポイント) |
insufficient_balance_error | insufficient_balance | アカウント残高が不足しています(Anthropic互換エンドポイント) |
quota_exceeded | quota_exceeded | APIキーの使用上限に達しました |
アクセスエラー (403)
| タイプ | コード | 説明 |
|---|---|---|
access_denied | access_denied | リソースへのアクセスが拒否されました |
access_denied | model_not_allowed | このAPIキーではモデルが許可されていません |
バリデーションエラー (400)
| タイプ | 説明 |
|---|---|
invalid_request_error | リクエストパラメータが無効です |
context_length_exceeded | モデルに対して入力が長すぎます |
model_not_found | 要求したモデルは現在のパブリック契約で利用できません |
model_not_foundを返します。
レート制限エラー (429)
当該レート制限を超えた場合:Retry-Afterヘッダーとretry_afterフィールドは、いずれも再試行するまで待つ秒数を示します。
ペイロードが大きすぎる (413)
入力またはファイルサイズが制限を超えた場合:- 画像ファイルが大きすぎる(最大20MB)
- 音声ファイルが大きすぎる(最大25MB)
- 入力テキストがモデルのコンテキスト長を超えている
上流エラー (502, 503)
| タイプ | 説明 |
|---|---|
upstream_error | プロバイダがエラーを返しました |
all_channels_failed | 利用可能なプロバイダがありません |
timeout_error | リクエストがタイムアウトしました |
Pythonでのエラー処理
JavaScriptでのエラー処理
ベストプラクティス
指数バックオフを実装する
指数バックオフを実装する
レート制限にかかった場合、再試行の間隔を徐々に長くしてください:
タイムアウトを設定する
タイムアウトを設定する
ハングするリクエストを避けるために、常に適切なタイムアウトを設定してください:
デバッグのためにエラーをログする
デバッグのためにエラーをログする
サポートのためにリクエストIDを含む完全なエラー応答をログに記録してください:
モデル固有のエラーを処理する
モデル固有のエラーを処理する
一部のモデルには特定の要件(例:最大トークン数、画像フォーマット)があります。
リクエストを行う前に入力を検証してください。