No-Code scraper · JSON API

Google Search Scraper

Collect Google search results for keywords or search URLs, including organic results and related search data.

JSON CSV & XLSX API access
Read the API reference →
From web pages to a dataset

What you can do

Research search results for selected queries.

Compare results across countries and languages.

Export structured SERP data for your application.

01

Set your sources

Open the scraper and enter your own URLs, search terms and limits.

02

Review & run

Check the cost estimate and confirm the task. Follow its progress in your account.

03

Use your data

Explore saved results and export CSV, JSON or XLSX. Downloads of saved results are free.

Know what to expect

Sample data & output fields

Illustrative example

These example values demonstrate the data shape; they are not a live scraper result. Available fields depend on the source, selected options and upstream data.

JSON · illustrative result
[
  {
    "searchQuery": [],
    "resultsTotal": 100,
    "organicResults": [],
    "relatedQueries": [],
    "url": "https://example.com/result"
  }
]
FieldTypeDescription
searchQueryobjectMetadata about the search query that produced this page
resultsTotalintegerTotal results Google estimates for this query (the 'About X results' number). Null if Google did not show the counter.
organicResultsarrayOrganic web results on this SERP page
relatedQueriesarrayRelated search suggestions Google shows at the bottom of the SERP. Each is a clickable next-query link.
urlstringConvenience copy of searchQuery.url for downstream tools that expect a top-level url field.
Start with a real configuration

Example input

This is the configured parser input. Replace the example sources with your own and review all limits before running.

JSON · example input
{
  "queries": [
    "best CRM software",
    "python web scraping"
  ],
  "countryCode": "us",
  "languageCode": "en",
  "resultsPerPage": 10,
  "maxPagesPerQuery": 1,
  "mobileResults": false,
  "forceExactMatch": false,
  "includePeopleAlsoAsk": true,
  "includeRelatedSearches": true,
  "saveHtmlToKeyValueStore": false,
  "extractAds": false
}
Explore input fields
FieldTypeNotes
queriesarrayKeywords or phrases to search on Google (one per line). Each runs as a separate search. Results across queries are returned in a single dataset.
countryCodestringISO 3166-1 alpha-2 country code to localise the search (e.g. 'us', 'gb', 'de', 'au'). Determines which regional results Google returns.
languageCodestringLanguage code for the SERP UI and results (e.g. 'en', 'de', 'fr', 'es'). Defaults to English.
resultsPerPageintegerNumber of results to request per page (10 to 100). Default 10 gives the richest output (Google includes pre-rendered PAA answers, AI Overview source descriptions, and more on the smaller-num SERPs). Set to 100 if you want more results per request and don't mind a slimmer feature set.
maxPagesPerQueryintegerHow many SERP pages to fetch per query. Increase to get more results (10 pages × 100 results = ~1,000 results per query).
mobileResultsbooleanUse Google's mobile interface instead of desktop. Mobile SERPs sometimes show different result sets and ad placements.
forceExactMatchbooleanWrap each query in quotes ("...") so Google only returns results containing the exact phrase. Equivalent to Google's verbatim mode.
includePeopleAlsoAskbooleanExtract the 'People Also Ask' questions shown on the first SERP page. Returned in the peopleAlsoAsk array of each page record.
includeRelatedSearchesbooleanExtract related search suggestions from the bottom of the first SERP page. Returned in the relatedQueries array of each page record.
saveHtmlToKeyValueStorebooleanSave the raw HTML of each SERP page to the default Key-Value Store. The output record will include a kvsHtmlUrl pointing at the saved file. Useful for debugging or extracting custom fields not parsed by the actor.
extractAdsbooleanEnable comprehensive paid-results extraction. Google rotates ads aggressively, so the actor retries each query with rotated proxy sessions up to two more times and merges any new ads found. Adds one billable ads-extraction-attempt event per SERP page ($1.50 per 1,000 pages). Recommended only on queries where ads matter (commerce, comparison, lead-gen).
The same scraper in your application

Run through the API

Create an API key in your account, send the input to the queued endpoint and use the returned task ID to retrieve results. Sending a live request uses credits.

cURL · queue a task
curl --request POST 'https://extracto.cloud/api/v1/parsers/google-search-scraper/queue' \
  --header 'X-API-KEY: ext_your_api_key' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data-binary @- <<'JSON'
{
  "input": {
    "queries": [
      "best CRM software",
      "python web scraping"
    ],
    "countryCode": "us",
    "languageCode": "en",
    "resultsPerPage": 10,
    "maxPagesPerQuery": 1,
    "mobileResults": false,
    "forceExactMatch": false,
    "includePeopleAlsoAsk": true,
    "includeRelatedSearches": true,
    "saveHtmlToKeyValueStore": false,
    "extractAds": false
  }
}
JSON

Your next dataset starts here.

Choose your sources, review the price and run Google Search Scraper.

Open scraper