Google Search Results Scraper (SERP & AI Overviews)
Pricing
from $1.50 / 1,000 results
Google Search Results Scraper (SERP & AI Overviews)
Collect Google Search results for any query, country and language, including Google's AI Overview with its cited sources. One row per results page: organic positions, titles, real links, snippets, dates and sitelinks, plus People also ask and related searches. Failed pages are not charged.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
5
Monthly active users
18 hours ago
Last modified
Categories
Features
Share
Google Search Results Scraper + AI Overviews
Turn any Google search into clean, structured rows. Type the searches you care about, pick a country and language, and every Google results page becomes one row: each organic result's position, title, real destination link, the green breadcrumb Google displays, the site name, the snippet and its date, plus sitelinks, Google's AI Overview with its cited sources, the "People also ask" questions and the related searches at the bottom of the page.
Collect one page per search or up to ten pages for deeper research, with a total page cap to control the size of the run. Pages that cannot be read are listed in the run summary and add no page charge. A run-start fee still applies.
How it works
- Type one search per line in Search queries, or paste a Google search link.
- Pick the country setting and language for the results you want.
- Choose how many result pages to read per search.
- Start the run and open the Dataset, or switch to the Organic results view for one row per result.
The Console's sample input already contains two ready-to-run searches, so the first run needs no edits.
Use cases
- Rank tracking: where a domain appears for a set of keywords, page by page, using a chosen country setting.
- SEO research: titles, snippets and displayed breadcrumbs of the pages that win a search.
- Content ideas: "People also ask" questions and related searches for a topic.
- Competitor monitoring: re-run the same searches on a schedule and compare positions over time.
- Lead and link discovery: the real destination links of the top results for niche searches.
Quick Start
{"queries": ["best running shoes", "how to make cold brew coffee"],"countryCode": "us","languageCode": "en","maxPagesPerQuery": 1,"maxPages": 100}
Each search is one Google search. Set maxPagesPerQuery to read results past the first ten; paging stops by itself when Google has no further page.
Input
| Input | Type | Default | Meaning |
|---|---|---|---|
queries | array | required | What to search for, one search per line. A Google search link (google.com/search?q=...) supplies its search term only; other URL settings, including country, language, date filters and page offsets, are ignored. Repeated searches are read once. |
countryCode | string | us | Two-letter Google country setting (us, gb, de, fr, ca, au, in, ...). This influences results; it does not guarantee a physical search location or city-level rankings. |
languageCode | string | en | Interface and results language (en, de, fr, es, pt-BR, ...). |
maxPagesPerQuery | integer | 1 | Result pages to read per search, 1 to 10 (about 10 organic results each). |
maxPages | integer | 100 | Total cap on result pages (dataset rows) across every search, up to 5,000. |
maxConcurrency | integer | 4 | Searches that run side by side, 1 to 6. Lower is gentler, higher is faster. |
Example queries
{"queries": ["crm software for small business"], "maxPagesPerQuery": 3}{"queries": ["beste laufschuhe", "kaffeemühle test"], "countryCode": "de", "languageCode": "de"}{"queries": ["plumber near denver", "emergency plumber denver"], "countryCode": "us"}{"queries": ["https://www.google.com/search?q=python+list+comprehension"]}
What it returns
The dataset contains one row per Google results page:
| Field | Meaning |
|---|---|
searchQuery | The search the row came from: term, page (1-based), countryCode, languageCode. |
url | The Google results page that was read. |
resultsCount | Number of organic results on the page. |
organicResults | The organic results in page order (see below). |
peopleAlsoAsk | The "People also ask" questions on the page, as {"question": ...}. Empty when Google shows none. |
relatedQueries | The related searches at the bottom of the page, each with a ready-to-use Google link for the same country and language. |
aiOverview | Google's AI Overview on the page: status (present, partial when Google showed the box without its answer, absent when there is none, unreadable), the answer text, and the cited sources (title, url). Read from the same page, at no extra charge. |
hasNextPage | Whether Google offers a further results page. |
unresolvedUrls | Organic results on this page whose url is null (normally 0; can be higher when Google limits requests). |
scrapedAt | Collection time (UTC, ISO 8601). |
error | Always null in the dataset. Pages that could not be read are listed in the run summary instead. |
Each entry of organicResults has:
| Field | Meaning |
|---|---|
position | 1-based rank on the page. Video and forum results that Google lists among the organic results are included in order. |
title | The result title. |
url | The result's real destination link; null in the rare case Google did not reveal it. |
displayedUrl | The green breadcrumb Google shows under the title (for example https://www.w3schools.com › python › ...), when it is a web address. |
siteName | The site, channel or community name Google shows above the title (for example Reddit · r/howto). |
snippet | The description under the title. |
date | The date Google prints before the snippet, such as May 7, 2026, 3 days ago or 9 de abr. de 2026, in the chosen language, when there is one. |
sitelinks | Extra links Google shows under a result (mostly for brand searches), each with title, url and snippet. |
Ads, maps, shopping carousels and image packs are not included. The run summary (OUTPUT) reports pages (rows delivered), organicResults, and any pages that could not be read in pageErrors, each with a short code and message (for example BLOCKED, LAYOUT_CHANGED or NETWORK_ERROR).
Spreadsheet export
Choose Organic results in the output view, or use the Download organic results as CSV output link, for one row per organic result. Each row carries the search term, page number, country and language settings, position on that page, title, destination URL, snippet and collection time. A page with no organic results adds no result rows to this view.
The Result pages view and the default JSON output retain one row per search results page. Exporting the organic view does not create extra billable pages. Positions restart at 1 on each page; they are not an overall rank across pages.
Output example
Example page row, with organicResults shortened to two entries for readability:
{"searchQuery": {"term": "how to compost at home","page": 1,"countryCode": "us","languageCode": "en"},"url": "https://www.google.com/search?q=how+to+compost+at+home&hl=en&gl=us","resultsCount": 8,"organicResults": [{"position": 1,"title": "Composting At Home | US EPA","url": "https://www.epa.gov/recycle/composting-home","displayedUrl": "https://www.epa.gov › recycle › composting-home","siteName": "U.S. Environmental Protection Agency (.gov)","snippet": "Start your pile with a four- to six-inch layer of bulky browns such as twigs and wood chips. Then layer your greens and browns like lasagna. If ...","date": "Dec 8, 2025","sitelinks": []},{"position": 2,"title": "How to Make Compost at Home - UMD Extension","url": "https://extension.umd.edu/resource/how-make-compost-home","displayedUrl": "https://extension.umd.edu › resource › how-make-com...","siteName": "UMD Extension","snippet": "Dig a trench or hole in a garden bed about eight to twelve inches deep. Bury your kitchen waste (fruit and vegetable peelings and cores, coffee ...","date": "Jul 12, 2024","sitelinks": []}],"peopleAlsoAsk": [{"question": "What is the laziest way to compost?"},{"question": "What are 5 items that should not be composted?"}],"relatedQueries": [{"query": "Compost bin","url": "https://www.google.com/search?q=Compost+bin&hl=en&gl=us"},{"query": "How to compost at home for beginners","url": "https://www.google.com/search?q=How+to+compost+at+home+for+beginners&hl=en&gl=us"}],"aiOverview": {"status": "present","text": "Composting at home turns kitchen and yard scraps into nutrient-rich soil.\nHow to start\nMix greens and browns: Combine nitrogen-rich scraps with carbon-rich dry leaves or cardboard.\nKeep it moist and turn it: Aim for the dampness of a wrung-out sponge and turn the pile every week or two.","sources": [{"title": "US EPA","url": "https://www.epa.gov/recycle/composting-home"}]},"hasNextPage": true,"unresolvedUrls": 0,"scrapedAt": "2026-10-20T00:00:03Z","error": null}
Price
$0.0015 per results page delivered (one dataset row, up to about 10 organic results), plus $0.005 per run start. The run-start event is charged per GB of memory; the default 4096 MB run is four start events ($0.02). The start is charged even if the run saves no results. Pages that could not be read are not charged. Platform usage is included in these prices.
From 2026-11-23 the results page price becomes $0.002 (the run-start event stays $0.005 per GB). The AI Overview is included in that page price.
What a run costs:
- One search and one result page: $0.0015 for the page plus the run start. At the default 4096 MB memory the start is four events ($0.02), so about $0.0215 for roughly 10 organic results.
- Ten searches, one page each: $0.015 in page results plus $0.02 start, about $0.035.
- Pages that could not be read are not charged; the run start is charged even if no page is delivered.
Good to know
- Google personalizes and localizes results. The country and language settings influence this search, but results can differ from a signed-in search or a person searching from that country or a particular city. Use consistent settings for comparisons; exact local rankings are not guaranteed.
- A simple
site:example.comrestriction is supported, but some searches may be unavailable and appear asQUERY_MISMATCHin the summary without a page charge. Complex combinations, paths and other search operators are not guaranteed. A result with a missing destination URL cannot confirm a site restriction. - Google usually shows 8 to 10 organic results per page; some pages show fewer when videos or other blocks take the space.
- "People also ask" lists the questions only; the expandable answers are not included.
- The AI Overview is the one Google shows for the search's country and language; Google shows it for many questions and some brand or local searches, not for every search. Its text and sources are copied from the page, never written by this actor.
- If Google is temporarily unavailable, the run reports any page it could not finish in
OUTPUT.pageErrors; pages already collected are kept. If no page at all can be read, the run fails with a clear message. - A confirmed empty results page contains an empty
organicResultsarray and still counts as one delivered page. An unreadable page appears inpageErrorsand adds no page charge. - If the run gets close to its time limit, it stops starting new pages, keeps every page already collected and finishes successfully. The status line says so. Raise the run timeout for long search lists.
- The run's status line shows progress while it works and a one-line summary at the end.
FAQ
What counts as one result page? One Google results page is one dataset row and one page charge. It usually holds 8 to 10 organic results plus the People also ask, related searches and AI Overview seen on that page. The Organic results view splits a page into one row per result and does not add charges.
How much does a run cost? A page is $0.0015 ($0.002 from 2026-11-23) and the run start is $0.005 per GB of memory, so the two-search sample at the default memory costs about $0.023 ($0.024 from 2026-11-23). Raise maxPagesPerQuery only when you need pages past the first ten results.
Why do I sometimes get fewer than 10 results? Google usually shows 8 to 10 organic results, and fewer when videos, shopping boxes or other blocks take the space. A confirmed empty page is still delivered as a row with an empty organicResults array.
Are ads included? No. The dataset contains organic results, People also ask, related searches and the AI Overview. Ads, maps, shopping carousels and image packs are not returned.
Is the AI Overview always present? No. Google shows it for many questions and some brand or local searches, not for every search. aiOverview.status says present, partial, absent or unreadable, and the AI Overview is included in the page price.
Why do results differ from what I see in my own browser? Google personalizes and localizes results. The country and language settings influence the results, but they cannot guarantee a physical search location or a signed-in view. Keep the settings consistent when you compare positions over time.
Can I run it on a schedule or from code? Yes. Schedule runs on Apify or start them with the Apify API, and read the dataset from your own code. Each run collects a fresh snapshot; compare runs by searchQuery.term and position.
What happens when a page cannot be read? The run keeps every page it already collected and lists each unreadable page in OUTPUT.pageErrors with a code and message, for example BLOCKED, LAYOUT_CHANGED or NETWORK_ERROR. Those pages are not charged. If no page at all can be read, the run fails with a clear message.

