エラーレスポンス形式
すべてのエラーは一貫したJSON形式で返されます: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キーが不足しているか無効です |
expired_api_key | expired_api_key | APIキーが失効しています |
支払いエラー (402)
| タイプ | コード | 説明 |
|---|---|---|
insufficient_quota | insufficient_quota | アカウント残高が不足しています |
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 | リクエストされたモデルが存在しません |
レート制限エラー (429)
レート制限を超えた場合:ペイロード過大 (413)
入力またはファイルサイズが制限を超えた場合:- 画像ファイルが大きすぎる(最大 20MB)
- 音声ファイルが大きすぎる(最大 25MB)
- 入力テキストがモデルのコンテキスト長を超えている
アップストリームエラー (502, 503)
| タイプ | 説明 |
|---|---|
upstream_error | プロバイダーがエラーを返しました |
all_channels_failed | 利用可能なプロバイダーがありません |
timeout_error | リクエストがタイムアウトしました |
Pythonでのエラーハンドリング
JavaScriptでのエラーハンドリング
ベストプラクティス
エクスポネンシャルバックオフの実装
エクスポネンシャルバックオフの実装
レート制限が発生した際、リトライの間隔を段階的に長くします:
タイムアウトの設定
タイムアウトの設定
リクエストのハングを避けるため、常に適切なタイムアウトを設定してください:
デバッグ用のエラーログ記録
デバッグ用のエラーログ記録
サポートのために、リクエストIDを含む完全なエラーレスポンスをログに記録します:
モデル固有のエラーの処理
モデル固有のエラーの処理
一部のモデルには特定の要件(最大トークン数、画像形式など)があります。リクエストを行う前に入力を検証してください。