エラー
すべてのエラーは同じ構造で、変わることのないcodeを持ちます。処理の分岐にはこのコードを使ってください。メッセージは人が読むためのもので、文言が変わることがあります。
{ "error": { "code": "invalid_key", "message": "That API key does not exist." } }
エラーによっては、この2つに加えて追加のフィールドが含まれます。誤っていたパラメーターを示すparameter、待つべき時間を示すretry_after、使い切った利用枠を示すlimitとusedです。
コード一覧
| ステータス | コード | 発生条件 |
|---|---|---|
| 400 | missing_query | queryが空か、指定されていません。 |
| 400 | unknown_format | formatが6種類のいずれでもありません。 |
| 400 | unknown_column | columnsに存在しないフィールドが指定されています。 |
| 400 | format_not_available | 行を返さないリクエストで、フラットな形式が指定されています。 |
| 400 | per_page_too_large | per_pageがプランの行数上限を超えています。上限はエラーに含まれます。 |
| 400 | invalid_json | POSTの本文が有効なJSONではありません。 |
| 401 | missing_key | Authorization: Bearerヘッダーがありません。 |
| 401 | invalid_key | キーに対応するアカウントがありません。 |
| 403 | plan_required | アカウントに有料プランがありません。 |
| 404 | unknown_endpoint | そのパスは存在しません。有効なパスの一覧がエラーに含まれます。 |
| 405 | method_not_allowed | 読み取り専用のAPIです。GETを使うか、JSONの本文をPOSTしてください。 |
| 429 | too_many_requests | 1分あたり10リクエスト(APIとMCPの合計)を超える速さで送信されています。 |
| 429 | quota_exceeded | その日の検索の利用枠を使い切りました。 |
| 429 | snippet_quota_exceeded | その日のスニペットの利用枠を使い切りました。スニペットなしの検索は引き続き行えます。 |
エラーごとの対処方法
- 400 - リクエストに誤りがあり、繰り返しても解決しません。どのパラメーターが原因かは
parameterフィールドでわかります。 - 401、403 - キーまたはプランの問題です。状況が変わるまで再試行しても意味がありません。
- 429
too_many_requests-retry_afterの秒数だけ待ってから再送してください。何も消費されていません。 - 429
quota_exceeded- 利用枠は次のUTC午前0時に回復します。それまでの時間はretry_afterでわかります。それより前に再試行しても解決しません。 - 5xx - 当社側の問題です。間隔を徐々に広げながら再試行してください。
エラーと形式
エラーはJSONで返されます。format=xmlを指定した場合はXMLで返されます。フラットな形式にはエラーを表す構造がないため、csvを指定したリクエストが失敗した場合もJSONが返されます。つまり、CSVを読み込むクライアントは、200のような本文がすべて行データだと決めつけず、ステータスコードを確認する必要があります。
このページを読まずにコードを取得する
GET /は、上記のすべてのコードとその意味をJSONで返します。キーは不要なので、誰もブラウザを開かなくても、すべてのコードに対応したクライアントを作成できます。
curl https://api.publicwww.com/次へ コード例