Google Search API
Scrape Google search results as structured JSON data

The Google Search API is a specialized plugin that scrapes Google Search Engine Results Pages and returns fully parsed, structured JSON data. Instead of dealing with raw HTML and complex parsing logic, you get clean JSON with organic results, ads, knowledge graphs, local listings, and 10+ more result types ready to use in your applications.
Key Features
- Structured JSON Output: Get 15+ SERP result types parsed into clean JSON including organic results, ads, knowledge graphs, local packs, video results, and more.
- 70+ Google Domains: Target any regional Google domain from
google.comtogoogle.co.jp,google.de,google.com.tr, and more. - Advanced Localization: Control host language (
hl), geo location (gl), and precise location targeting with UULE encoding. - Device Emulation: Get desktop or mobile SERP layouts with the
deviceparameter. - Result Filtering: Apply language and country restrictions, SafeSearch, time-based filters, and disable spell correction.
- Pagination Support: Navigate through search result pages using the
startoffset parameter. - Include HTML Option: Add
include_html=trueto any request to receive the full raw Google HTML alongside the parsed JSON data. - No Blocks or CAPTCHAs: All anti-bot measures are handled automatically by Scrape.do.
Endpoints
| Endpoint | Method | Output | Description | Details |
|---|---|---|---|---|
/plugin/google/search | GET | JSON | Search Google and get structured SERP results | more |
Authentication
All requests require your Scrape.do API token passed via the token query parameter:
https://api.scrape.do/plugin/google/search?token=YOUR_TOKEN&q=your+search+queryResponse Format
Responses are returned as JSON (gzip compressed, minimum 2KB). Array fields always return [] when empty (never null). Object fields return null when absent. The html field is completely omitted unless include_html=true is set.
Parameter keys are case-insensitive. You can use q, Q, hl, HL, etc.
Error Handling
All endpoints return errors in a consistent JSON format:
{
"error": "error_code",
"message": "Human readable error message"
}Error Codes
| Status Code | Error | Description |
|---|---|---|
400 | token is required | Missing authentication token |
400 | q (search query) is required | Missing search query |
400 | device must be one of: desktop, mobile | Invalid device value |
400 | invalid google_domain | Domain not in the supported list |
400 | start must be a non-negative integer | Invalid pagination offset |
502 | request failed | Upstream Google request failed, retry the request |
502 | unexpected response | Unparseable upstream response |
500 | decompression failed | Response decompression error |
500 | failed to parse search results | HTML parsing failure |

