# Google AI Overview Scraper: Answers, Sources & SERP (`datagleaner/google-ai-overview-scraper`) Actor

Scrape Google's AI Overview for any query in 43 countries: the full answer text and every cited source (URL, title, domain, snippet), plus organic results, People Also Ask, related searches and ads from the same page. Track whether AI Overviews cite your domain. $4 per 1,000 queries.

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

## Pricing

$4.00 / 1,000 queries

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: Answers, Sources & SERP

**Google AI Overview Scraper** shows you what Google's AI answers for any search, and who it cites. Give it a list of queries, such as `best crm for small business` or `how does compound interest work`. For each query you get one row with the **full AI Overview text**, **every source it cites** (URL, title, domain and the quoted snippet), and the rest of the same results page: **organic results, People Also Ask, related searches and ads**. Add your own domains and each row also says whether the AI Overview cites you, whether the answer names you, and where you rank organically. Works in 43 countries and any language, with no browser, Google account or API key.

### What you can do with it

- **Track AI search visibility (AEO / GEO).** See whether Google's AI Overview cites your site or your competitors for the queries that matter, and at what position. Schedule it weekly to watch citations change.
- **Brand monitoring.** Find out what Google's AI says about your brand or product, and which pages it draws on.
- **SEO and content research.** Get the AI answer, the People Also Ask questions, related searches and the top-ranking pages for every topic in one table. Build content briefs from what searchers ask.
- **Measure AI Overview coverage.** Find which of your keywords show an AI Overview at all (`aiOverviewPresent`), by country.
- **Competitor and source analysis.** List the domains Google's AI trusts in your niche (`aiOverviewCitedDomains`) and compare them with the organic top 10.
- **Feeds for AI agents and dashboards.** Plain JSON, the same field names for every query and country, ready for a spreadsheet, BI tool or an LLM.

### Input

| Field | Type | What it does |
|---|---|---|
| `queries` | list of text | Searches as you would type them into Google, in any language. One row per query. Questions and "best X" searches show an AI Overview most often; local and shopping searches rarely do. |
| `trackDomains` | list of text | Optional. Domains (`hubspot.com`) or brand names to check on every query. Adds a `domainTracking` list to each row. |
| `country` | code | Where the search runs: `us` (default), `uk`, `de`, `fr`, `jp`, `in`, `br` and 36 more. AI Overviews and rankings differ by country. |
| `language` | code | Google's interface language, default `en`. Use the language of your queries (`de`, `fr`, `ja`...). |
| `resolveUrls` | true/false | On by default. Google hides many result links behind a redirect; the Actor follows each one once so every result carries its real URL. |
| `maxConcurrency` | number | How many queries run in parallel. Default 5. |

Example:

```json
{
  "queries": ["best free crm", "best crm for startups", "hubspot vs salesforce"],
  "trackDomains": ["hubspot.com", "salesforce.com", "zoho.com"],
  "country": "us",
  "language": "en"
}
```

An empty input `{}` runs a one-query example ("how does compound interest work"), and the status message says so.

### Output

One row per query. Example (lists shortened):

```json
{
  "query": "best free crm",
  "aiOverviewPresent": true,
  "aiOverviewText": "The best free CRM software options include HubSpot for unlimited users and clean design, Zoho CRM for small teams needing customization, and Bitrix24 for full team collaboration...\n\nTop Free CRM Options\n\n- HubSpot CRM: Best for ease of use and unlimited users...",
  "aiOverviewSources": [
    {
      "position": 1,
      "title": "Looking for a Free CRM tool for a Small Business Recommendations?",
      "url": "https://www.reddit.com/r/CRMSoftware/comments/1s2xfnd/looking_for_a_free_crm_tool_for_a_small_business/",
      "domain": "www.reddit.com",
      "sourceName": "Reddit",
      "snippet": "Recommended Free CRMs: Zoho CRM and HubSpot are commonly recommended free CRM options for small businesses..."
    }
  ],
  "aiOverviewCitedDomains": ["reddit.com", "youtube.com", "hubspot.com", "zapier.com", "zoho.com", "uschamber.com", "forbes.com", "mailchimp.com"],
  "organicResults": [
    {
      "position": 2,
      "title": "Streamline Your Entire Business With a Free CRM",
      "url": "https://www.hubspot.com/products/crm",
      "domain": "www.hubspot.com",
      "displayedUrl": "https://www.hubspot.com › products › crm",
      "snippet": "HubSpot's free CRM powers your customer support, sales, and marketing with easy-to-use features..."
    }
  ],
  "peopleAlsoAsk": ["Is there a 100% free CRM?", "Does Google have a free CRM?", "Is HubSpot CRM still free?"],
  "relatedSearches": ["Best free crm reddit", "HubSpot CRM", "Best free CRM for small business"],
  "ads": [
    { "position": 1, "title": "Zoho CRM Free Edition", "url": null, "domain": "www.zoho.com", "displayedUrl": "https://www.zoho.com" }
  ],
  "domainTracking": [
    {
      "domain": "hubspot.com",
      "organicPosition": 2,
      "organicUrl": "https://www.hubspot.com/products/crm",
      "citedInAiOverview": true,
      "aiOverviewSourcePosition": 3,
      "mentionedInAiOverview": true
    },
    {
      "domain": "salesforce.com",
      "organicPosition": null,
      "organicUrl": null,
      "citedInAiOverview": false,
      "aiOverviewSourcePosition": null,
      "mentionedInAiOverview": false
    }
  ],
  "country": "us",
  "language": "en",
  "searchUrl": "https://www.google.com/search?q=best+free+crm&hl=en&gl=us",
  "scrapedAt": "2026-10-21T20:01:07+00:00"
}
```

| Field | What it holds |
|---|---|
| `aiOverviewPresent` | Whether Google showed an AI Overview for this query in this country. |
| `aiOverviewText` | The full answer as readable text: paragraphs, headings, `- ` bullet points and tables with cells split by `|`. Null when there is no AI Overview. |
| `aiOverviewSources` | The pages the AI Overview cites, in Google's order: `position`, `title`, `url`, `domain`, `sourceName` and the `snippet` Google quotes. |
| `aiOverviewCitedDomains` | The distinct cited domains, without `www.`, in order. |
| `organicResults` | Page 1 organic results: `position`, `title`, `url`, `domain`, `displayedUrl`, `snippet`. |
| `peopleAlsoAsk` | The questions in the People Also Ask box. |
| `relatedSearches` | Google's "People also search for" suggestions. |
| `ads` | Text ads: `position`, `title`, `domain`, `displayedUrl` (`url` when Google gives a direct link). |
| `domainTracking` | Only with `trackDomains`: per domain, `organicPosition` and `organicUrl`, `citedInAiOverview` and `aiOverviewSourcePosition`, and `mentionedInAiOverview` (the answer text names it). |
| `query`, `country`, `language`, `searchUrl`, `scrapedAt` | Where the row came from and when. |

Measured on Apify over 52 informational and commercial queries in the US, UK, Germany, France and Japan (2026-10-22): an AI Overview on 47 of 52 queries, with on average 6.9 to 9.5 cited sources each; source `url` filled 97-100% and `snippet` 100%; 8 to 9 organic results per query with `url` and `domain` 100% and `snippet` 93-99%; People Also Ask and related searches on every query; ads on 13 of 52.

### How much does it cost to scrape Google AI Overviews?

You pay per query, whether or not Google shows an AI Overview for it, because you still get the full results page. This price is final:

| Event | Price | Per 1,000 |
|---|---|---|
| `query`: one row with the AI Overview, its sources and the full results page | $0.004 | $4.00 |

There is no start fee. Nothing is charged when Google does not answer a query, and retries are free. Platform usage is included in the price. The run stops by itself when it reaches your **maximum total charge**.

Examples:

- **Weekly AI citation check** of 50 keywords for a month: 200 queries = **$0.80**.
- **Content research** on 500 topics: **$2.00**.
- **Five-country comparison** of 100 keywords: 500 queries = **$2.00**.

### Limits

- **Google decides when to show an AI Overview.** It appears on most questions and "best X" searches, and rarely on local ("plumber chicago") or shopping ("buy running shoes") searches. Those queries still return organic results, People Also Ask and related searches.
- **One country per run.** To compare countries, run once per country (or save one task per country).
- **Page 1 only.** Organic results are the first results page (usually 7 to 10).
- **Answers change.** Google rewrites AI Overviews often, so the same query can give a different answer and sources an hour later. `scrapedAt` records when each row was taken.
- **Speed.** Each query takes 5 to 70 seconds; queries run in parallel. On Apify, 10 queries took 18 to 70 seconds.
- Google can change its pages at any time. The Actor retries failed pages on a fresh connection and names any query that got no answer in the status message.

### Use with Python

```python
## pip install apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("datagleaner/google-ai-overview-scraper").call(
    run_input={"queries": ["best free crm", "best crm for startups"], "trackDomains": ["hubspot.com"]}
)
for row in client.dataset(run.default_dataset_id).iterate_items():
    t = row.get("domainTracking", [{}])[0]
    print(row["query"], row["aiOverviewPresent"], t.get("citedInAiOverview"), row["aiOverviewCitedDomains"][:5])
```

That run costs $0.008.

### Use with JavaScript / Node.js

```js
// npm install apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('datagleaner/google-ai-overview-scraper').call({
    queries: ['how does compound interest work', 'what is an isa'],
    country: 'uk',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const row of items) console.log(row.query, row.aiOverviewSources.map((s) => s.domain));
```

### Use it from n8n, Make, Zapier or an AI agent

Actor ID: `datagleaner/google-ai-overview-scraper`

Minimal input:

```
{"queries": ["best free crm"], "trackDomains": ["hubspot.com"]}
```

Each tool below runs this Actor with your own Apify API token.

- **n8n:** add the **Apify** node (`@apify/n8n-nodes-apify`) and choose **Run an Actor and get dataset**. Set the Actor to `datagleaner/google-ai-overview-scraper` and paste the input above.
- **Make:** use the Apify app's **Run an Actor** module, then **Get Dataset Items**.
- **Zapier:** use the Apify action **Run Actor**, then the search **Fetch dataset items**.
- **AI agents (MCP):** connect to `https://mcp.apify.com?tools=datagleaner/google-ai-overview-scraper`. In Claude Code:

  ```
    claude mcp add --transport http apify "https://mcp.apify.com?tools=datagleaner/google-ai-overview-scraper"
  ```

  Then run `/mcp` to sign in to Apify, and ask in plain language. For example: "Check whether Google's AI Overview cites hubspot.com for these 20 CRM keywords and list the domains it cites instead."

### FAQ

**Is there a Google AI Overview API?** Google offers no official API for AI Overviews. This Actor works like one: send queries, get JSON back, through the Apify API, its clients, or the integrations above.

**How do I know if Google's AI Overview cites my website?** Put your domain in `trackDomains`. Each row then shows `citedInAiOverview`, the source position, whether the answer text names you, and your organic rank on the same page.

**Does it get the whole AI Overview, including the part behind "Show more"?** Yes. The full answer is in the page Google sends, and the Actor returns all of it, with headings, lists and tables kept readable.

**Do I pay for queries without an AI Overview?** Yes, $0.004 like any other query, because the row still carries the organic results, People Also Ask and related searches. Queries Google never answers are not charged.

**Can I scrape AI Overviews in other countries and languages?** Yes. Set `country` (43 of them) and `language`, and write the queries in that language. Tested in English, German, French and Japanese.

**Is this the same as Google's AI Mode?** No. AI Mode is a separate chat page. This Actor reads the AI Overview at the top of normal Google results.

**Do I need a Google account, API key or proxy?** No. Everything runs on Apify. You only need an Apify account.

### Responsible use

This Actor collects only what Google shows publicly on its results pages. AI Overview text is generated by Google and can contain mistakes; check important facts at the cited sources. **You** are responsible for how you use the data, including copyright in quoted text and any obligations under the laws that apply to you.

### Feedback

If this Actor saved you time, a rating on its Store page helps others find it. Problems or requests: open an issue on the Issues tab.

# Actor input Schema

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

What you would type into Google, in any language: questions (how does compound interest work), comparisons (best crm for small business), brand names or product categories. One row per query. Questions and 'best X' searches show an AI Overview most often; local and shopping searches rarely do.

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

Optional. Your own or rival domains (example.com) or brand names. Each row then gets a domainTracking list showing, per domain, its organic rank, whether the AI Overview cites it as a source and at what position, and whether the answer text names it.

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

The country Google searches from (the search is placed in its largest city). AI Overviews and rankings differ by country.

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

Google interface language as a code (en, de, fr, es, ja...). Use the language of your queries.

## `resolveUrls` (type: `boolean`):

Google hides many result links behind its own redirect. On (the default), each is followed once so every organic result and AI Overview source carries its real URL and domain. Off is a little faster, and those rows then keep url null with the domain Google displays.

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

How many queries run at once. Each Google page takes 5-70 seconds, so more parallel queries finish a long list sooner.

## Actor input object example

```json
{
  "queries": [
    "best crm for small business",
    "how does compound interest work"
  ],
  "country": "us",
  "language": "en",
  "resolveUrls": true,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `results` (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",
        "how does compound interest work"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datagleaner/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",
        "how does compound interest work",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("datagleaner/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",
    "how does compound interest work"
  ]
}' |
apify call datagleaner/google-ai-overview-scraper --silent --output-dataset

```

## MCP server setup

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