レスポンスとエラー
すべての応答は同じ外枠の JSON です。成否は HTTP ステータスではなく status フィールドで判断し、その後に結果を読みます。
成功レスポンスは同じトップレベルメタデータを返します。エンドポイント固有のデータは organic、images、news、videos、places、place などに入ります。
statusnumber必須
ビジネスステータスコード。0 は成功です。
request_idstring必須
サポート、リトライ、ログ照合に使うリクエスト ID。
elapsed_msnumber必須
ゲートウェイが観測した実行所要時間。単位はミリ秒。
credits_chargednumber | null必須
返金ロジック適用後に課金されたクレジット数。
search_typestring任意
製品が返す場合の、製品固有のレスポンス型。
errorstring必須
人が読めるエラーメッセージ。
リクエストは成功しました。製品固有の結果を確認してください。no_results だけでは HTTP 404 を証明しません。
課金あり
本文やパラメーターが欠落または無効です。
課金なしリクエストを修正してから
API キーが欠落、無効、または失効しています。
課金なしリクエストを修正してから
ゲートウェイのルートまたはカタログにリソースがありません。
課金なしリクエストを修正してから
アカウント残高が不足しています。
課金なしリクエストを修正してから
QPS または同時実行数の上限を超えました。
課金なし再試行可
予期しない内部サーバーエラー。
課金なし再試行可
ワーカーが取得元の取得・解析エラーを返しました。
課金なし再試行可
利用可能なワーカーセッションがありません。
課金なし再試行可
ゲートウェイがワーカーの結果待ちでタイムアウトしました。
課金なし再試行可
{
"status": 1001,
"error": "unauthorized",
"request_id": "0f3576b2-6e2e-4f1e-bb0e-8cb0d4a60195",
"elapsed_ms": 0,
"credits_charged": 0
}すべての製品レスポンスにこれらのヘッダーが含まれ、メッセージを解析せずに送信間隔の調整や再試行の判断ができます。
- X-RateLimit-Limit
- アカウントが許可する毎秒のリクエスト数。
- X-RateLimit-Remaining
- 現在の 1 秒間に残っているリクエスト数。
- Retry-After
- 拒否時に再送まで待つ秒数。
- X-SerpBase-Retryable
- true なら同じリクエストの再送で成功し得ます。false ならリクエスト自体の修正が必要です。
タイムアウト
HTTP クライアントのタイムアウトは 60 秒に設定してください(このドキュメントのコード例は設定済みです)。各リクエストはこちら側で 30 秒以内に結果かエラーを返して終わるため、60 秒あればネットワークの余裕も十分です。
- ほとんどのリクエストは数秒で返りますが、15~20 秒かかるものもあります。Google の応答が遅いときや確認を求められたときは、この 30 秒の中で別の経路で再試行しているためです。タイムアウトを短くすると、まさに成功しかけていたリクエストを打ち切ってしまいます。
- クライアントが先に打ち切った場合、リクエストは停止され返金されますが、結果も対処できるエラーも受け取れません。クライアントのタイムアウトは 30 秒未満にしないでください。
- より速い応答が必要なら、Google 検索エンドポイントで timeout パラメーター(1~30 秒)を指定してください。再試行が予算に合わせて早く始まり、予算を使い切ると即座に status 1504 が返り、課金されません。HTTP クライアントのタイムアウトはそれより長くしてください。
- それでも失敗またはタイムアウトした場合は、もう一度送ってください。課金されるのは成功した 1 回だけです。