エラー
Scavio APIは標準のHTTPステータスコードを使用し、問題の迅速なデバッグに役立つ構造化されたエラーレスポンスを返します。
エラーレスポンスの形式
JSON
{
"error": {
"code": "error_code_string",
"message": "Human-readable error description"
}
}ステータスコード
| ステータス | コード | 説明 |
|---|---|---|
| 400 | bad_request | リクエストボディが無効、または必須パラメータが不足しています |
| 401 | unauthorized | APIキーが不足しているか無効です |
| 403 | forbidden | APIキーにこのアクションの権限がありません |
| 402 | insufficient_credits | クレジットが残っていません。チャージするかプランをアップグレードしてください。 |
| 429 | rate_limit_exceeded | リクエストが多すぎます。待ってから再試行してください。 |
| 500 | internal_error | サーバーエラー。少し待ってから再試行してください。 |
よくあるエラー
クエリパラメータが不足
400 不正なリクエスト
{
"error": {
"code": "bad_request",
"message": "The 'query' field is required"
}
}無効なsearch_type
400 不正なリクエスト
{
"error": {
"code": "bad_request",
"message": "Invalid search_type. Must be one of: classic, news, maps, images, lens"
}
}無効なAPIキー
401 認証失敗
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key"
}
}クレジット不足
402 支払いが必要
{
"error": {
"code": "insufficient_credits",
"message": "No credits remaining. Please upgrade your plan or purchase additional credits."
}
}レート制限
429 リクエスト過多
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Retry after 30 seconds."
}
}ベストプラクティス
- レスポンスボディを解析する前に、必ずHTTPステータスコードを確認してください
- プログラムによるエラー処理には
error.codeフィールドを使用してください - ログ記録とデバッグには
error.messageフィールドを使用してください - 429および500エラーには指数バックオフによる再試行ロジックを実装してください
- 400または401エラーは再試行しないでください。まずリクエストを修正してください