# Google AI Overview Scraper - Answers, Sources & Brand Tracking (`wrenfield-data/google-ai-overview-scraper`) Actor

Scrape Google AI Overviews for any query: full answer text and Markdown, every cited source, and whether your domain or brand is cited. Plus organic top 10, People Also Ask and related searches in the same row. Any country, language, city or device. $2.50 per 1,000 queries.

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

## Pricing

from $2.50 / 1,000 query checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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: AI answers, cited sources and brand tracking

**Google AI Overview Scraper** captures the **AI Overview** Google shows at the top of a search, for any list of queries. Each row has the full answer (plain text, Markdown and sections), **every cited source** with title, domain and URL, and a check of whether **your domains are cited** and **your brands are mentioned**. The organic top 10, People Also Ask and related searches from the same page come free. Any country, city, language or device, in bulk, with no proxies or browser.

- 🤖 **Full AI Overview**: plain text, Markdown with headings and lists, and sections that show which sources each part cites. AI Overviews that Google loads after the page are captured too.
- 🔗 **Every cited source**: deduplicated, numbered in citation order, with title, source name, domain, URL and snippet (often 10+ per answer).
- 🎯 **AEO / GEO tracking built in**: add your domains and brands; each row says whether you're cited, at which source position, your organic position, and which brands are mentioned or missing.
- 📄 **The rest of the page, free**: organic top 10, People Also Ask, related searches and the list of SERP features.
- 🌍 **Countries, cities, languages, desktop or mobile.**
- 💸 **$2.50 per 1,000 queries** (standard) or **$6 per 1,000** (fast). Failed queries are free.

#### Sample output

| Query | AI Overview words | Sources | Top cited domains |
| --- | --- | --- | --- |
| what is generative engine optimization | 446 | 12 | coursera.org, seerinteractive.com, jasper.ai |
| semrush vs ahrefs | 288 | 10 | stylefactoryproductions.com, onelittleweb.com, ecommercetrix.com |
| how to get a passport fast | 313 | 7 | travel.state.gov, photoaid.com, cookcountyclerkofcourt.org |
| best project management software for agencies | 287 | 6 | reddit.com, youtube.com, paymoapp.com |

<sub>Real rows from a test run (Chicago, mobile, Oct 22, 2026). AI Overviews change often; your results will differ.</sub>

### What data do you get?

One row per query:

| Field | What it is |
| --- | --- |
| `query`, `status` | The search, and `ai_overview`, `no_ai_overview` or `failed` |
| `has_ai_overview` | Whether Google showed an AI Overview |
| `ai_overview_text` / `ai_overview_markdown` | The answer as plain text and as Markdown |
| `ai_overview_sections` | Each part of the answer with its title, text and the positions of the sources it cites |
| `references` | Every cited source: `position`, `title`, `source`, `domain`, `url`, `snippet` |
| `reference_count`, `referenced_domains` | Number of unique sources, and cited domains in order |
| `target_domains`, `target_cited`, `target_first_reference_position` | For your domains: cited or not, source positions, organic position |
| `brands_mentioned`, `brands_not_mentioned` | Which of your brands appear in the answer text |
| `organic_results` | Organic top 10: position, title, URL, domain, description |
| `people_also_ask`, `related_searches`, `serp_features` | The rest of the results page |
| `ai_overview_is_async`, `google_url`, `location`, `language`, `device`, `checked_at` | Context for every check |

Two ready-made views: **AI Overviews** (one row per query) and **Cited sources** (one row per source, for counting which sites Google trusts).

### How to scrape Google AI Overviews

1. Enter your **search queries**, one per line. Questions, comparisons and "best X" searches trigger AI Overviews most often.
2. Optional: add **your domains** and **brands** to check citations and mentions.
3. Pick the **location** (country or city), **language** and **device**.
4. Click **Start**, then export the results as JSON, CSV or Excel, or read them through the API.

### Input example

```json
{
    "queries": ["best crm for small business", "hubspot vs salesforce"],
    "targetDomains": ["hubspot.com"],
    "brands": ["HubSpot", "Salesforce", "Zoho"],
    "location": "United States",
    "language": "English",
    "device": "desktop",
    "mode": "standard"
}
```

### Output example

```json
{
    "query": "semrush vs ahrefs",
    "has_ai_overview": true,
    "status": "ai_overview",
    "ai_overview_text": "Both Ahrefs and Semrush are industry-leading digital marketing and SEO platforms, but they cater to slightly different core strengths.\nAhrefs\n- Best for: Pure organic SEO, backlink analysis, and managing multiple sites. …",
    "ai_overview_word_count": 288,
    "references": [
        {
            "position": 1,
            "title": "Ahrefs vs Semrush (2026) — Which Should You Use?",
            "source": "www.stylefactoryproductions.com",
            "domain": "stylefactoryproductions.com",
            "url": "https://www.stylefactoryproductions.com/blog/ahrefs-vs-semrush",
            "snippet": "Reasons to use Semrush over Ahrefs * Semrush is not just a content visibility tool. …"
        }
    ],
    "reference_count": 10,
    "referenced_domains": ["stylefactoryproductions.com", "onelittleweb.com", "ecommercetrix.com", "youtube.com", "ahrefs.com", "reddit.com", "drewgarrett.org", "seranking.com"],
    "target_domains": [
        {"domain": "semrush.com", "cited": false, "reference_positions": [], "organic_position": null},
        {"domain": "ahrefs.com", "cited": true, "reference_positions": [6], "organic_position": 4}
    ],
    "target_cited": true,
    "target_first_reference_position": 6,
    "brands_mentioned": ["Semrush", "Ahrefs"],
    "people_also_ask": ["Is Ahrefs still relevant?", "What are the top 3 SEO tools?"],
    "serp_features": ["ai_overview", "discussions_and_forums", "organic", "people_also_ask", "people_also_search", "perspectives", "video"],
    "location": "Chicago,Illinois,United States",
    "language": "English",
    "device": "mobile",
    "checked_at": "2026-10-23T02:16:25Z"
}
```

Shortened: `references`, `organic_results` and `ai_overview_sections` hold every item in a real run.

### Pricing

Pay per query, billed by Apify. No start fee, no subscription.

| Event | Price | What it is |
| --- | --- | --- |
| Query checked (`query-checked`) | **$0.0025** ($2.50 / 1,000) | One Google results page checked in standard mode, with or without an AI Overview |
| Query checked, fast (`query-checked-fast`) | **$0.006** ($6 / 1,000) | The same, fetched live for the quickest answer |

**You're never charged for** failed queries (they're saved with `status: "failed"` and the reason), the organic top 10, People Also Ask or related searches. Duplicate queries in one run are removed before checking.

You pay for queries that show no AI Overview, because the page was still checked and "no AI Overview here" is a result for tracking. To keep costs down, check queries that are likely to trigger one (questions, comparisons, "best X"). The run `SUMMARY` reports your AI Overview rate.

Examples: 1,000 queries cost **$2.50** in standard mode. Tracking 200 queries every week costs about **$2.17 a month**. Set **Maximum cost per run** in the run options to cap your spend. **Free Apify plan:** up to 10 queries per run.

#### Standard or fast?

Both return the same data. **Standard** collects the whole batch together; in our Oct 22 tests a run of 8 queries finished in 24 seconds, and at busy times it can take a few minutes. If a query isn't ready after 7 minutes, the Actor fetches it live at no extra charge. **Fast** fetches every query live and in parallel, usually 5-25 seconds per query, and skips the queue entirely. It suits AI agents and one-off checks.

### Failed queries

If Google or the data service can't return a page after several retries, the row has `status: "failed"`, `has_ai_overview: null` and an `error`. Failed queries are not charged and are listed in the run `SUMMARY` (`failedQueries`), so you can re-run just those.

### Use it through the API, on a schedule or with AI agents

**One-link MCP setup:** `https://mcp.apify.com?tools=wrenfield-data/google-ai-overview-scraper` (Claude, Cursor, VS Code or any MCP client). Set `maxTotalChargeUsd` on the run to cap what it can charge.

Run it from Python, JavaScript or any HTTP client with the [Apify API](https://docs.apify.com/api/v2), schedule it weekly to track AI Overview citations over time, or connect it to Make, Zapier, n8n and Google Sheets.

```bash
curl -X POST "https://api.apify.com/v2/acts/wrenfield-data~google-ai-overview-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["best crm for small business"], "targetDomains": ["hubspot.com"], "mode": "fast"}'
```

### FAQ

**Why does a query have no AI Overview?**
Google decides per search, location and device, and it changes from day to day. Navigational searches ("facebook login") and very local or sensitive searches show AI Overviews less often. Those rows have `status: "no_ai_overview"` and still include the organic results.

**Does it capture AI Overviews that load after the page?**
Yes. Google sometimes generates the AI Overview after the results load. The Actor waits for it, and `ai_overview_is_async` marks those rows.

**How do I track whether Google's AI cites my site?**
Add your domain under **Your domains**. Each row shows `cited`, the source positions and your organic position. Schedule the run weekly and compare `target_cited` over time. Add competitors' domains too to see your share of citations.

**Can I target a city or another language?**
Yes. Use a full Google location name such as `London,England,United Kingdom`, and any language Google supports (e.g. `de`, `French`).

**Is this Google AI Mode?**
No. AI Overviews are the AI answers at the top of normal Google results. For AI Mode (the separate chat-style tab), ChatGPT, Perplexity and Gemini, see the related tools below.

### Related tools

- [AI Search Visibility Tracker](https://apify.com/wrenfield-data/ai-search-visibility-tracker): brand mentions, share of voice and citations across ChatGPT, Perplexity, Gemini, Google AI Mode and AI Overviews
- [AI Answer Scraper](https://apify.com/wrenfield-data/ai-answer-scraper): full answers and citations from ChatGPT, Perplexity, Gemini and Google AI Mode
- [People Also Ask Scraper](https://apify.com/wrenfield-data/people-also-ask-scraper): PAA question trees up to 4 levels deep, plus related searches
- [Competitor Keywords](https://apify.com/wrenfield-data/competitor-keywords): every keyword a domain ranks for, to find queries where AI Overviews could cite you
- [Keyword Search Volume](https://apify.com/wrenfield-data/keyword-search-volume): Google Keyword Planner volume, CPC and trends, to pick which queries to track

### Feedback and support

Missing a field, hit an error, or need another option? Open an issue on the **Issues** tab with the run ID. We read every issue and reply there.

### Acceptable use

- This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by Google or DataForSEO.
- Don't use the data to build a competing search engine, or otherwise to compete with or harm Google or the other search engines the data comes from.
- The Actor may not be used from, or for people or organizations in, Russia, Belarus, Cuba, Iran, Syria, Myanmar, North Korea, Crimea or the Russian-occupied territories of Ukraine.
- You are responsible for using the results lawfully, including privacy laws such as GDPR for any personal data they contain.

# Actor input Schema

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

Google searches to check, one per line. Each query is one Google results page. Questions and comparisons ("best crm for small business", "hubspot vs salesforce") trigger AI Overviews most often.

## `targetDomains` (type: `array`):

Optional. Domains to look for among the AI Overview's cited sources, e.g. <code>hubspot.com</code>. Subdomains count. Each row then shows whether each domain is cited, at which source positions, and its organic position.

## `brands` (type: `array`):

Optional. Brand names to look for in the AI Overview text (case-insensitive, whole words). Each row lists which brands are mentioned and which are not.

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

Country name (<code>United States</code>), 2-letter code (<code>GB</code>), location code (<code>2840</code>), or a full Google location name for cities and regions (e.g. <code>London,England,United Kingdom</code>).

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

Language name or code (<code>English</code>, <code>de</code>). Leave empty for the main language of the country.

## `device` (type: `string`):

Desktop or mobile Google results.

## `mode` (type: `string`):

<b>Standard</b> ($2.50 / 1,000 queries): results usually arrive in 10-30 seconds for the whole batch, sometimes a few minutes at peak times. <b>Fast</b> ($6 / 1,000 queries): every query is fetched live and in parallel, usually 5-25 seconds each, with no queue. Same data in both.

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

Add the top 10 organic results (position, title, URL, domain, description) to each row. Free.

## `includePeopleAlsoAsk` (type: `boolean`):

Add the People Also Ask questions shown on the page. Free.

## `includeRelatedSearches` (type: `boolean`):

Add the related searches from the bottom of the page. Free.

## `onlyWithAiOverview` (type: `boolean`):

Skip rows for queries where Google showed no AI Overview. They are still checked and charged; the run summary counts them.

## Actor input object example

```json
{
  "queries": [
    "best crm for small business",
    "is coffee good for you",
    "how to lower cholesterol naturally"
  ],
  "targetDomains": [
    "hubspot.com"
  ],
  "brands": [
    "HubSpot",
    "Salesforce",
    "Zoho"
  ],
  "location": "United States",
  "language": "English",
  "device": "desktop",
  "mode": "standard",
  "includeOrganicResults": true,
  "includePeopleAlsoAsk": true,
  "includeRelatedSearches": true,
  "onlyWithAiOverview": false
}
```

# Actor output Schema

## `overviews` (type: `string`):

No description

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

No description

## `allFields` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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",
        "is coffee good for you",
        "how to lower cholesterol naturally"
    ],
    "targetDomains": [
        "hubspot.com"
    ],
    "brands": [
        "HubSpot",
        "Salesforce",
        "Zoho"
    ],
    "location": "United States",
    "language": "English"
};

// Run the Actor and wait for it to finish
const run = await client.actor("wrenfield-data/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",
        "is coffee good for you",
        "how to lower cholesterol naturally",
    ],
    "targetDomains": ["hubspot.com"],
    "brands": [
        "HubSpot",
        "Salesforce",
        "Zoho",
    ],
    "location": "United States",
    "language": "English",
}

# Run the Actor and wait for it to finish
run = client.actor("wrenfield-data/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",
    "is coffee good for you",
    "how to lower cholesterol naturally"
  ],
  "targetDomains": [
    "hubspot.com"
  ],
  "brands": [
    "HubSpot",
    "Salesforce",
    "Zoho"
  ],
  "location": "United States",
  "language": "English"
}' |
apify call wrenfield-data/google-ai-overview-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,wrenfield-data/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/N72AaNVXPdDV9U4OC/builds/CeGFT9bORROWsnPeo/openapi.json
