Google AI Overview Scraper avatar

Google AI Overview Scraper

Pricing

Pay per event

Go to Apify Store
Google AI Overview Scraper

Google AI Overview Scraper

Scrape Google AI Overviews and Google AI Mode answers at scale, without a browser. This google ai overview scraper loads the Google AI Mode search page (udm=50) and calls Google's internal streaming endpoint directly, so you get the full AI-generated answer plus the exact web sources it cited.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

7 hours ago

Last modified

Categories

Share

Google AI Overview Scraper: the AI answer above the search results

This google ai overview scraper returns the AI-generated summary Google now places above the blue links, as structured JSON. For every query you get the full answer text, the same answer broken into headings, paragraphs and lists with the citations attached per block, and every source page Google grounded the answer on.

There is no official API for AI Overview content. It is also not in the search page's HTML when you fetch it, which is why an ordinary google serp scraper returns an empty box where the overview should be. This actor returns the finished answer, one dataset row per query.

What you get

  • The complete answer text as one plain string (answer_text), ready for a spreadsheet cell, a prompt, or a diff against last week's run.
  • The answer with its structure intact (answer_blocks): headings stay headings, bullet lists stay lists, and each block carries the citations that belong to it. This is what lets you attribute a specific claim to a specific source instead of guessing.
  • Every cited source page (sources) with the site name, domain, page title, the snippet Google pulled, the destination URL, a favicon and a thumbnail where one exists.
  • The distinct domains (source_domains) and their count, so a visibility query is a single field lookup rather than a parse.
  • Products the answer pointed at (products) with title, URL, image and Google's own product identifiers, on shopping-shaped queries.
  • Links inside the answer body (links) with Google's redirect already resolved to the real destination.
  • An honest present/absent flag (answered, ai_overview_present). Google does not write an overview for every query. Those rows come back marked rather than silently empty, and you are not billed for them.

Why scrape Google AI Overviews

The overview sits above the first organic result and answers the question in place. When it does, the click that used to go to the page that ranked first often does not happen at all. Rank tracking still reports position one while the traffic behind it drops, and nothing in a rank report explains the gap. The only way to see it is to read the overview itself and check whether your domain is among the sources it cites.

That check has become its own discipline. Being cited by the AI answer is now a distinct outcome from ranking, with its own winners: pages that answer a question cleanly and get quoted, rather than pages that merely rank. The overview also draws on sources that do not rank on page one at all, which means a competitor invisible in your rank report can be the one Google is quoting.

Tracking it needs the answer and its sources together. A screenshot tells you an overview exists; it does not let you count how often a domain appears across five hundred queries, or notice that the answer's wording changed while the source list stayed the same. Structured output turns both into a query.

Input

FieldTypeRequiredDefaultDescription
queriesarray of stringsyesOne search query per line.
countrystringnousTwo-letter country code. Sets the market the answer is written for.
languagestringnoenTwo-letter language code for the answer.
retriesintegerno3Extra rounds to spend when a query comes back without an overview. Range 0 to 5.

Questions and comparisons draw an overview most reliably. A bare brand or product name often does not get one at all; that is reported as answered: false rather than retried indefinitely.

Output

One row per query.

{
"query": "is the lego 10313 worth buying",
"country": "us",
"language": "en",
"answered": true,
"ai_overview_present": true,
"answer_text": "Yes, the LEGO Icons Wildflower Bouquet 10313 is widely considered worth buying for its vibrant color palette, relaxing build experience, and exceptional value at a retail price of $59.99 for 939 pieces...",
"answer_blocks": [
{
"type": "paragraph",
"text": "Yes, the LEGO Icons Wildflower Bouquet 10313 is widely considered worth buying...",
"citations": [
{ "uuid": "c396dd25", "site_name": "Amazon.com", "domains": ["amazon.com"] }
]
},
{ "type": "heading", "text": "Why It Is Worth Buying", "level": 3, "citations": [] },
{ "type": "list", "items": ["Vibrant color palette", "939 pieces"], "citations": [] }
],
"answer_block_count": 7,
"sources": [
{
"site_name": "RTINGS.com",
"domain": "rtings.com",
"title": "LEGO Wildflower Bouquet 10313 Review",
"snippet": "Giving and receiving flowers that never wilt...",
"url": "https://www.rtings.com/...",
"favicon": "https://...",
"thumbnail": "https://...",
"citation_id": "c396dd25"
}
],
"source_domains": ["amazon.com", "rebrickable.com", "reddit.com"],
"source_count": 9,
"links": [{ "text": "LEGO Icons Wildflower Bouquet", "url": "https://...", "kind": "product" }],
"products": [
{ "title": "LEGO Icons Wildflower Bouquet 10313", "url": "https://...", "image": "https://...",
"catalog_id": "9131157491774088421", "product_id": "", "merchant_id": "", "cluster_id": "" }
],
"attempts": 1,
"error": null,
"fetched_at": "2026-09-09T15:41:02Z",
"duration_seconds": 8.0,
"response_bytes": 476246
}

Use cases

Answer engine optimisation. Feed in the queries you care about and record which domains the overview cites for each one. Run it weekly and the citation set becomes a time series: you can see the week a competitor entered the answer, the week you dropped out, and whether a rewrite moved you back in. source_domains is the field that carries the whole analysis.

Explaining a traffic drop that rank tracking cannot. When impressions hold and clicks fall, pull the overview for the affected queries. If your page is cited, the answer is satisfying the intent in place. If it is not cited but a competitor is, that is a different problem with a different fix. Either way you have the evidence in an afternoon rather than a quarter.

Competitive and category monitoring. Run the head terms for a category and count domain frequency across the whole set. The domains that appear again and again are the ones Google treats as authoritative for that category, which is a more useful target list than a rank report, because it includes sites that never appear on page one.

Content research. answer_blocks shows the shape Google chose for an answer: which subheadings it used, what it put in a list, what it led with. That is a direct read on how the question is best structured, taken from the system that decides what a good answer looks like.

How it compares

This actorTypical alternative
Answer structureHeadings, paragraphs and lists preserved, with per-block citationsAnswer as one flat string
SourcesFull card per source: name, domain, title, snippet, URL, favicon, thumbnailDomain list, or URLs only
ProductsGoogle's product identifiers exposed on shopping queriesNot returned
No-overview queriesReturned and marked, not billedOften a failed run
Start fee$0.002 per runUp to $0.09 per run on some listings

Apify's own apify/google-ai-overviews-scraper is the category anchor with roughly 14,700 runs; its per-result price is tiered by plan, so compare it against your own plan's rate. Of the independent listings, clearpath/google-ai-overview charges $0.09 per run before any result is returned and johnvc/Google-AI-Overview-API charges a $0.01 setup event per run; both figures are from their live pricing. This actor charges $0.002 per run plus per answer returned.

Pricing

$0.00999 per AI Overview returned, plus a $0.002 actor start fee per run. Queries that come back without an overview are returned in the dataset and are not charged. All pricing is pay-per-event, so you only pay for results you receive. There are no per-compute-unit charges.

Limits and gotchas

  • Not every query has an AI Overview. Informational and comparison queries usually do; navigational and bare-brand queries usually do not.
    answered: false
    with error: "no_ai_overview" means Google offered none, not that the run failed.
  • The overview is regenerated per request, so wording varies slightly between runs even for the same query. The cited source set is far more stable than the prose; build tracking on source_domains, not on string equality of the text.
  • Set country and language together. An English answer for the Dutch market is a different answer from a Dutch one, and mixing them produces results that match neither.
  • Queries run a few at a time inside the run. A list of 500 is fine; expect it to take minutes, not seconds.
  • Free Apify plans are capped at 10 rows per run. Split larger lists across runs or upgrade to remove the cap.
  • products is populated only on shopping-shaped queries. It is empty for informational ones, which is expected rather than a miss.

FAQ

Can I scrape Google AI Overviews without an API key? Yes. Run the actor from the Apify Store or call it through the Apify API. No Google account, key or quota is involved.

How do I know which sites Google cites in its AI Overview? Read source_domains for the distinct list, or sources for the full card per cited page including its title and the snippet Google used.

Why did some of my queries return no AI Overview? Google does not write one for every query. Those rows are returned with answered: false and are not billed, so a mixed query list costs only what it returned.

Is the AI Overview different from Google AI Mode? Yes, they are separate surfaces with different answers. The overview sits above the ordinary results; AI Mode is the conversational tab. For AI Mode use the Google AI Mode Scraper below.

Can I track AI Overview citations for my domain over time? Yes. Run the same query list on a schedule and store source_domains per run. The presence or absence of your domain across runs is the metric.