# Google AI Overview Scraper & Tracker: Full Answer (`s_actors/google-ai-overview-scraper`) Actor

The full Google AI Overview (also the hidden "Show more" part) as text and Markdown, every source with its real URL, products, and your brand: mentioned, cited, organic rank, new or lost since last run. Any country and city. Pay only when an AI Overview is found: $4.99/1K.

- **URL**: https://apify.com/s_actors/google-ai-overview-scraper.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** SEO tools, AI, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.74 / 1,000 ai overview founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Google AI Overview Scraper & Tracker: Full Answer, Sources, Your Brand

Scrape **Google AI Overviews** for any question or keyword, in any country and city, to JSON, CSV or Excel: the **full answer** (also the part hidden behind "Show more") as text and Markdown, **every cited source with its real URL**, which statement each source backs, and the **products** the answer recommends. Add your brand, your domain and your competitors and it becomes an **AI Overview tracker** (GEO / AEO): is your brand mentioned, is your site cited, where does it rank organically on the same page, and what changed since the last run. **You pay only when Google shows an AI Overview: $4.99 per 1,000.**

```json
{
  "queries": ["best crm for small business", "hubspot vs salesforce"],
  "country": "us",
  "brandNames": ["HubSpot"],
  "trackDomains": ["hubspot.com"],
  "competitors": ["Salesforce", "zoho.com", "Pipedrive"]
}
```

#### What makes it different

| | This Actor | Typical AI Overview scrapers |
|---|---|---|
| Answer text | ✅ **Full answer**, also the sections behind "Show more" (2.3x the visible text on average in our tests), clean Markdown with headings, lists and bold | ⚠️ Often only the visible part, or paragraphs glued together and repeated |
| Country, city, language | ✅ 32 Google markets, any city (`Austin, Texas`), every page checked to come from that market | ⚠️ Often none: the answer comes from whatever country the proxy is in (our test of a popular scraper without a country setting: prices in £ and German Google interface text inside the answer) |
| Sources | ✅ All of them (3-10 per answer, Google shows only 3 cards) with **real URLs**, site name, snippet | ⚠️ URL and title |
| Which statement each source backs | ✅ `citations`: statement + source | ❌ |
| Products in the answer | ✅ name, price, old price, seller, rating, reviews, description | ❌ |
| Your brand mentioned? Your domain cited? | ✅ Built in, with the sentence that mentions you | ⚠️ Some, as a separate paid tool |
| **Organic rank on the same page** | ✅ Your domain and competitors, free | ❌ |
| Changes since the last run | ✅ Sources added / removed, your domain new / lost | ❌ |
| Price | **$4.99 per 1,000 AI Overviews**, queries without one are free | $2-$15 per 1,000; brand trackers $9-$80 |

#### What you get

**One row per query.** Real example, "is coffee good for you", Austin, Texas, October 2026 (answer shortened):

```markdown
Moderate coffee consumption of two to four cups daily is generally good for most adults and is linked to a lower
risk of chronic diseases.

#### Health Benefits
- **Heart health:** Lowers risks of heart failure, stroke, and coronary artery disease.
- **Metabolism:** Fights type 2 diabetes by improving insulin response and blood sugar balance.
...
#### Potential Risks          <- hidden behind "Show more" on google.com
- **Cholesterol:** Unfiltered coffee, like espresso or French press, raises bad LDL cholesterol ...
```

| # | Source | URL | Statements backed |
|---|---|---|---|
| 1 | Johns Hopkins Medicine | https://www.hopkinsmedicine.org/health/expert-qa/coffee-health-benefits | 2 |
| 2 | National Institutes of Health (NIH) | https://pmc.ncbi.nlm.nih.gov/articles/PMC12348139/ | 0 |
| 3 | Mayo Clinic | https://www.mayoclinic.org/healthy-lifestyle/nutrition-and-healthy-eating/expert-answers/coffee-and-health/faq-20058339 | 1 |
| 4-7 | Slidell Memorial Hospital, Harvard T.H. Chan School of Public Health, heart.org, Rush University | … | 0 |

For "best running shoes for flat feet" the answer recommended **5 products** (`products`):

| # | Product | Price | Seller | Rating |
|---|---|---|---|---|
| 1 | Brooks Adrenaline GTS 25 | $105.00 | brooksrunning.com | |
| 2 | ASICS Gel-Kayano 33 | $170.00 | ASICS | 5.0 (1) |
| 3 | Saucony Hurricane 26 | $170.00 | Saucony | 4.2 (51) |
| 4 | adidas Supernova Solution 3 | $111.99 (was $140) | Runnerinn.com | 4.6 (125) |
| 5 | Saucony Tempus 2 | $76.87 | Grivet Outdoors | 4.7 (41) |

| Field | Description |
|---|---|
| `query`, `aiOverviewShown`, `status` | `found`, `no AI Overview` (Google shows none for this query: free) or `not generated by Google` (Google said "Can't generate an AI overview right now": free) |
| `answer`, `answerMarkdown` | The full answer as plain text and as Markdown; `answerChars` and `visibleChars` (what google.com shows before "Show more") |
| `sources` | `position`, `title`, `url` (real address, not a Google redirect), `domain`, `siteName`, `snippet`, `citations` (statements it backs) |
| `sourceDomains`, `sourcesCount` | Quick list of cited domains |
| `citations` | Each statement of the answer (`text`), the site Google cites for it (`source`) and how many more sources back it (`moreSources`) |
| `products` | `name`, `price`, `oldPrice`, `seller`, `rating`, `reviewsCount`, `description` |
| `visibilitySummary` | One line: `runrepeat.com cited #1, organic — · Brooks mentioned 2x` |
| `trackedDomains` | Per domain: `cited`, `sourcePosition`, `statementsBacked`, `sourceUrl`, `organicPosition`, `organicUrl`, `status` (new, lost, still cited, not cited, first check), `previousSourcePosition` |
| `brandMentions` | Per brand name: `mentioned`, `mentions`, `firstMention` (the sentence), `inProducts` |
| `competitors` | Per competitor: `mentioned`, `mentions`, `cited`, `sourcePosition`, `organicPosition`, `firstMention` |
| `changes` | Since the last run of the project: `previousCheckedAt`, `aiOverviewBefore`, `sourcesAdded`, `sourcesRemoved` |
| `organicResults` | The ~10 organic results of the same page, when **Include organic results** is on (free) |
| `searchQuery` | `term`, `country`, `language`, `location`, Google `url`, `googleLocation` (the place Google used), `project` |

Eight table views: **AI Overviews**, **Answers (Markdown)**, **Sources**, **Your domains**, **Brand mentions**, **Competitors**, **Products** and **Statements and sources**. The key-value store record **REPORT** sums up the run: the most cited domains across all answers and the share of answers that mention or cite you and each competitor.

#### AI Overview tracker: your brand, your domain, your competitors

Fill in **Your brand names**, **Your domains** and **Competitors**, give the run a **Project name** and schedule it weekly. Real example from the same October 2026 run:

| Query | Your domain | Cited in AI Overview | Statements backed | Organic position on the same page |
|---|---|---|---|---|
| best running shoes for flat feet | runrepeat.com | **#1** | 6 of 8 | not on the page |
| is coffee good for you | mayoclinic.org | #3 | 1 | #3 |
| best crm for small business | zoho.com (competitor) | #5, mentioned 3x | 1 | not on the page |

Being cited in the AI Overview and ranking organically are **different things**: RunRepeat backs most of the AI answer while the organic results of the same page are Reddit threads, Amazon and forums. This Actor shows both side by side. On the next runs `trackedDomains[].status` turns `new` or `lost`, and `changes.sourcesAdded` / `sourcesRemoved` show which sites Google started or stopped citing.

#### Input

| Field | Example | Notes |
|---|---|---|
| Search queries | `best crm for small business`, `is coffee good for you`, a Google search URL | Questions and comparisons get AI Overviews most often |
| Country | `us`, `gb`, `de`, `fr`, `in`, `au`… | 32 Google markets; AI Overviews are written in the market's language |
| City | `Austin, Texas` | Empty = the country's largest city |
| Language | `en`, `de`, `es`… | Empty = the country's main language |
| Your brand names | `HubSpot` | Whole words, any case; add other spellings as separate lines |
| Your domains | `hubspot.com` | Subdomains count |
| Competitors | `Salesforce`, `zoho.com` | Name, or domain (then also checked as a source and in the organic results) |
| Project name | `crm-us` | Keeps the history for `changes` and `new` / `lost` |
| Include organic results | `true` | Free |

#### How often does Google show an AI Overview?

In our October 2026 tests (US, informational and comparison queries) Google showed an AI Overview for **45 of 50 queries**, and for 9 of 10 in the UK, Germany, India, Australia, Canada and Spain. Local queries ("dentist near me") usually get none. For a few query types ("how to learn python", "how to learn sql") Google answers "Can't generate an AI overview right now" to every visitor without a Google account; the Actor tries once more and marks the query `not generated by Google`. **You are never charged for queries without an AI Overview.**

#### Pricing

Pay per event, no subscription needed. Apify Scale and Business plans pay less:

| Event | Free plan | Starter plan | Scale plan | Business plan |
|---|---|---|---|---|
| Run start | $0.001 | $0.001 | $0.001 | $0.001 |
| AI Overview found (full answer, sources, products, your visibility) | $0.00499 | $0.00499 | $0.00489 | $0.00474 |

**1,000 AI Overviews = $4.99** on Starter ($4.89 on Scale, $4.74 on Business). Queries without an AI Overview, refused or deferred pages and retries cost nothing. Organic results, brand and competitor checks and the history are included. Platform usage is included. Set a maximum cost per run in the run options: the Actor stops there.

Why not $2? Every query is a real Google result page bought through a paid SERP proxy, pinned to your country and city and checked. Cheaper tools skip the market check or the hidden part of the answer.

#### Ready-made tasks

| Task | What it does |
|---|---|
| [AI Overview Tracker: Is Your Brand Cited?](https://apify.com/s_actors/google-ai-overview-scraper/examples/ai-overview-tracker) | Your brand, your domain and competitors in Google AI Overviews for a list of buyer questions, with changes since the last check |

#### FAQ

**Is this the same as Google AI Mode?** No. AI Overview is the AI answer on top of the normal result page; AI Mode is Google's separate chat-style search (the "AI Mode" tab). This Actor returns AI Overviews only.

**Why does the answer differ from what I see?** AI Overviews are generated and change over time, and Google personalizes them for signed-in users. The Actor sees Google as a new, signed-out visitor from your city, the most neutral view. For tracking, schedule runs and compare over several checks.

**Why are some sources cited 0 times?** Google lists every source it used; only some are attached to a specific statement with a citation chip. `citations` counts those chips; `sources` has all of them.

**How are brand mentions matched?** As whole words, case-insensitive, in the answer text and in product names and sellers. "HubSpot" does not match "HubSpotter". Add spellings like "Hubspot CRM" as separate lines.

**Do I need a Google account, API key or proxy?** No. Everything is included.

#### Use with the API and AI agents

Run it from the Apify API, the JavaScript or Python client, **n8n**, Make or Zapier, or from AI agents through the [Apify MCP server](https://mcp.apify.com) (Claude, ChatGPT, Cursor): GEO / AEO monitoring, content research on what Google's AI says about a topic, and the sources it trusts. One call: `POST https://api.apify.com/v2/acts/s_actors~google-ai-overview-scraper/run-sync-get-dataset-items` with the input above returns the answers as JSON.

#### Other Google tools

| Actor | What it does |
|---|---|
| [Google Search Results Scraper](https://apify.com/s_actors/google-search-scraper) | Real Google results with AI Overview, People also ask, rank tracker |
| [Google Jobs Scraper](https://apify.com/s_actors/google-jobs-scraper) | Jobs from every board in Google Jobs with all apply links, salary per year, job alerts |
| [Google Ads Transparency Center Scraper](https://apify.com/s_actors/google-ads-transparency-scraper) | Every ad of an advertiser or domain with text, regions and dates |
| [Google Maps Scraper](https://apify.com/s_actors/google-maps-scraper) | Every Google Maps place with phone, website, rating, hours: $0.89 per 1,000 |
| [Google Maps Email Extractor](https://apify.com/s_actors/google-maps-email-extractor) | Business emails from Google Maps websites, pay only for leads with an email |
| [Google Shopping Price Tracker](https://apify.com/s_actors/google-shopping-price-tracker) | Google Shopping prices and sellers, price changes |
| [Google Hotels Scraper](https://apify.com/s_actors/google-hotels-scraper) | Hotel prices from every booking site |
| [Google Flights Scraper](https://apify.com/s_actors/google-flights-scraper) | Flight prices, cheapest dates, price alerts |
| [Google Play Scraper](https://apify.com/s_actors/google-play-scraper) | Apps, ratings, reviews, keyword rankings |
| [Bulk Image Downloader](https://apify.com/s_actors/bulk-image-downloader) | Google Images and image links to a ZIP file |

#### Is it legal?

The Actor reads public Google search result pages, the same pages anyone can open without logging in. Use the data according to the laws that apply to you and Google's terms. This Actor is not affiliated with Google.

# Actor input Schema

## `queries` (type: `array`):

Questions and keywords exactly as people type them into Google, one per line: "best crm for small business", "is coffee good for you", "hubspot vs salesforce". Each query is one Google search; you pay only when Google shows an AI Overview for it. You can also paste a Google search URL (https://www.google.com/search?q=...).

## `country` (type: `string`):

Google of this country. AI Overviews differ by country (sources, prices, products): every page is checked to really come from this market and retried if Google answered for another one.

## `location` (type: `string`):

Search as if you were in this city: "Austin, Texas", "Manchester, England", "Munich, Bavaria". Empty = the country's largest city (New York for the US, London, Berlin...).

## `language` (type: `string`):

Google interface language code (hl): en, de, fr, es, pt, it, nl, ja... Empty = the country's main language. The AI Overview is written in this language.

## `brandNames` (type: `array`):

Names to look for in the answer text and in the products it recommends, one per line, other spellings as separate lines ("HubSpot", "Hubspot CRM"). Whole words, any case. Every row gets brandMentions: mentioned, how many times, the first sentence that mentions it.

## `trackDomains` (type: `array`):

Your sites, one per line: "hubspot.com". For each query: is the domain cited as an AI Overview source (and at which position), how many statements of the answer it backs, its organic position on the same result page, and new / lost since the last run. Subdomains count (blog.hubspot.com).

## `competitors` (type: `array`):

Competitor names or domains, one per line. A name ("Pipedrive") is looked for in the answer and in the cited sources; a domain ("zoho.com") is also checked as a source and in the organic results, and its name ("zoho") is looked for in the answer.

## `historyName` (type: `string`):

Where the Actor keeps the sources of this run to compare them next time (changes.sourcesAdded / sourcesRemoved, trackedDomains\[].status new / lost). Use one name per brand or client so their histories never mix.

## `includeOrganicResults` (type: `boolean`):

Also return the ~10 organic results of the same page (position, title, real URL, snippet). Free: the page is read anyway. Positions of your domains and competitors are given either way.

## `maxConcurrency` (type: `integer`):

Queries searched at once.

## `debugLog` (type: `boolean`):

Log every retry and save the HTML of every result page to the run key-value store.

## Actor input object example

```json
{
  "queries": [
    "best crm for small business",
    "hubspot vs salesforce"
  ],
  "country": "us",
  "brandNames": [
    "HubSpot"
  ],
  "trackDomains": [
    "hubspot.com"
  ],
  "competitors": [
    "Salesforce",
    "zoho.com",
    "Pipedrive"
  ],
  "historyName": "default",
  "includeOrganicResults": false,
  "maxConcurrency": 5,
  "debugLog": false
}
```

# Actor output Schema

## `overview` (type: `string`):

One row per query: the full AI Overview answer, its source domains and your visibility.

## `markdown` (type: `string`):

The answer with headings, lists, bold text and product cards as Markdown.

## `sources` (type: `string`):

Every cited source with its real URL and the number of statements it backs.

## `visibility` (type: `string`):

Your domains: cited or not, source position, organic position, new / lost since the last run.

## `brands` (type: `string`):

Your brand names in the answer text and products.

## `competitors` (type: `string`):

Competitors mentioned or cited in the answer.

## `products` (type: `string`):

Products the AI Overview recommends, with price, seller and rating.

## `citations` (type: `string`):

Each statement of the answer and the site Google cites for it.

## `all` (type: `string`):

Every field of every query.

## `report` (type: `string`):

Top cited domains across all answers and the share of answers that mention or cite you and each competitor.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "best crm for small business",
        "hubspot vs salesforce"
    ],
    "brandNames": [
        "HubSpot"
    ],
    "trackDomains": [
        "hubspot.com"
    ],
    "competitors": [
        "Salesforce",
        "zoho.com",
        "Pipedrive"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/google-ai-overview-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": [
        "best crm for small business",
        "hubspot vs salesforce",
    ],
    "brandNames": ["HubSpot"],
    "trackDomains": ["hubspot.com"],
    "competitors": [
        "Salesforce",
        "zoho.com",
        "Pipedrive",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/google-ai-overview-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "best crm for small business",
    "hubspot vs salesforce"
  ],
  "brandNames": [
    "HubSpot"
  ],
  "trackDomains": [
    "hubspot.com"
  ],
  "competitors": [
    "Salesforce",
    "zoho.com",
    "Pipedrive"
  ]
}' |
apify call s_actors/google-ai-overview-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/google-ai-overview-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GVUoG0eBvbkli5fza/builds/CJeMg1UQPcNVmANj6/openapi.json
