# Google AI Mode Scraper - Answers & Sources (`aboo.script/google-ai-mode-scraper`) Actor

\[💰$5 / 1K] Google AI Mode scraper that gets through anti-bot blocking. No login, no API key. Ask any question or paste a Google search URL, in any country and language, and get the full answer as text and markdown plus every cited source with title, URL, site name and snippet.

- **URL**: https://apify.com/aboo.script/google-ai-mode-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

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 Mode Scraper - Answers & Sources

![Google AI Mode Scraper - Answers & Sources](https://i.ibb.co/Kjp8Gyfn/google-ai-mode-banner.png)

**Google AI Mode Scraper** extracts the full answers that [Google AI Mode](https://www.google.com/search?udm=50) gives to your questions, into clean, structured data you can download as JSON, CSV, Excel, or HTML. Type your questions or paste Google search URLs, and get the answer as plain text and markdown, plus every source Google cites, with title, URL, site name, and snippet. No account or login required.

### Introduction

[Google AI Mode](https://www.google.com/search?udm=50) is the conversational, AI-powered search experience in Google Search. Instead of a list of links, it writes a complete answer and backs it up with sources from across the web. For brands, publishers, and SEO teams, it shows what Google tells people about a topic and which websites it trusts enough to cite.

This actor collects the same public answer you see in your browser and turns it into a ready-to-use dataset. You can run it once, schedule it to run daily to track how answers change, or connect it to your own tools.

### What data can you extract from Google AI Mode?

- 💬 Full answer text, plus a markdown version that keeps headings, lists, bold text, tables, and formulas
- 🔗 Every source: page title, URL, site name, and snippet
- ✅ Whether each source is cited inline in the answer
- 🔢 Number of sources per answer
- ❓ The question, with the country and language of the Google market
- 🧾 Optional raw HTML of each answer
- 🌐 Direct AI Mode URL for every question

### Use Cases

- 📈 **AI search visibility (GEO)**: see whether your brand, products, or pages appear in Google's AI answers and which competitors get cited instead.
- 🕵️ **Competitor monitoring**: track which websites Google cites for the questions that matter in your market.
- 📝 **Content research**: learn how Google summarizes a topic and find gaps your content can fill.
- 🌍 **Market comparison**: ask the same question in different countries and languages and compare the answers.
- 🤖 **AI and automation**: feed clean answers and sources into spreadsheets, dashboards, or AI workflows.

### How to scrape Google AI Mode step by step

1. Type your questions into **Search queries**, one per line, or paste Google search URLs into **Start URLs**.
2. Set **Max results** to how many questions you want answered in this run.
3. Optionally choose the **Country** and **Language** of the Google market.
4. Click **Start** and wait for the run to finish.
5. Download your data in JSON, CSV, Excel, or HTML from the **Output** tab.

### Input

- **Search queries**: questions to ask Google AI Mode, one per line. Each question returns one answer.
- **Start URLs**: Google search URLs, for example `https://www.google.com/search?q=what+is+blockchain`. Any Google search URL is turned into its AI Mode version, and the language and country settings in the URL are kept. URLs from other Google domains (such as google.de) work too.
- **Max results**: the maximum number of questions to answer in one run, counting search queries and start URLs together. Use 0 for no limit.
- **Country**: two-letter country code of the Google market for search queries, for example `us`, `gb`, or `de`.
- **Language**: language of the answer for search queries, for example `en`, `de`, `fr`, or `pt-BR`.
- **Include answer HTML**: also save the raw HTML of each answer. Results get larger.
- **Proxy configuration**: each question group runs on its own IP address. The default datacenter proxies work well; pick a proxy country only if you want answers as seen from that location.

You can use search queries, start URLs, or both in the same run.

### Input Examples

Ask a list of questions (the default input):

```json
{
  "searchQueries": [
    "how does photosynthesis work",
    "best laptops for programming",
    "what is the difference between a roth ira and a traditional ira",
    "how to start a vegetable garden",
    "what causes inflation",
    "best time to visit japan",
    "how do electric cars work",
    "what is machine learning",
    "how to lower cholesterol naturally",
    "what are the benefits of intermittent fasting"
  ],
  "maxResults": 5,
  "country": "us",
  "language": "en",
  "includeHtml": false,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

Use Google search URLs:

```json
{
  "startUrls": [
    { "url": "https://www.google.com/search?q=what+is+blockchain&hl=en&gl=us" },
    { "url": "https://www.google.de/search?q=wie+funktioniert+eine+w%C3%A4rmepumpe&hl=de&gl=de" }
  ],
  "maxResults": 5,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

### Output

Each answered question is saved as one item in the dataset. Here is an example of a single item (long text shortened):

```json
{
  "url": "https://www.google.com/search?q=what+is+the+difference+between+a+virus+and+bacteria&hl=en&gl=us&pws=0&udm=50",
  "query": "what is the difference between a virus and bacteria",
  "country": "us",
  "language": "en",
  "answer": "The primary difference between bacteria and viruses is that bacteria are free-living, single-celled organisms, whereas viruses are non-living packages of genetic material that require a host cell to survive and replicate.\n\nKey Differences\n\n...",
  "answerMarkdown": "The primary difference between bacteria and viruses is that **bacteria are free-living, single-celled organisms**, whereas **viruses are non-living packages of genetic material** that require a host cell to survive and replicate.\n\n### Key Differences\n\n| Feature | Bacteria | Viruses |\n| --- | --- | --- |\n...",
  "sourcesCount": 5,
  "sources": [
    {
      "title": "What's the difference between bacteria and viruses?",
      "url": "https://imb.uq.edu.au/article/2020/04/difference-between-bacteria-and-viruses",
      "sourceName": "Institute for Molecular Bioscience",
      "snippet": "Viruses can't reproduce on their own (unlike bacteria) so they aren't considered 'living', but they can survive on surfaces for a ...",
      "cited": true
    },
    {
      "title": "What's the Difference Between Bacteria and Viruses?",
      "url": "https://www.google.com/goto?url=CAESlwEB6zswFUlm7IHnTw0YSRTuQbM6Q8P5OP9NQMNHRWu84TabXLGco1fomHPasuTwAjmBlcCiaJbZmgYD2K...",
      "sourceName": "Britannica",
      "snippet": "Bacteria are single-celled living organisms that can exist and perform life functions independently, while viruses are not living ...",
      "cited": false
    }
  ],
  "scrapedAt": "2026-10-19T03:45:49.124Z"
}
```

With **Include answer HTML** turned on, each item also has an `answerHtml` field with the raw answer HTML.

You can download the dataset in JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.

### Notes

- Google does not show sources for every answer: in our tests about half of the answers came without any sources, so `sources` is an empty list for them. Asking the same question again later can return a version with sources.
- Sources that Google cites inline have their direct page URL. Some extra sources that Google only lists next to the answer link through a Google redirect URL, which opens the source page.
- Answers can differ between runs, countries, and languages, the same way they do in your browser.
- Only Google search URLs are supported as start URLs; other URLs are skipped.
- Each answer takes a few seconds; the first answers of a run can take up to a minute or two while the run gets ready.

### Why use the Google AI Mode Scraper?

- ✅ **No login needed**: works with public answers only, there is no Google account to manage.
- 🔗 **Every source included**: not just the visible links, but every source Google attaches to the answer, with a flag for inline citations.
- 🌍 **Any market**: choose country and language, or paste Google search URLs from any Google domain.
- 🧹 **Clean data**: plain text for analysis and markdown for display, with no HTML clutter.
- 💸 **Pay for what you need**: set a question limit and keep every run small and cheap.
- 🔄 **Ready for automation**: schedule runs, export to Google Sheets, or connect to Make, Zapier, and n8n.

### FAQ

#### How many questions can I ask in one run?

As many as you like. Set **Max results** to the number of questions you want answered, or 0 to answer all of them.

#### Do I need a Google account?

No. The actor only collects publicly available answers. You do not need to log in or provide any account details.

#### Can I track AI Mode answers over time?

Yes. Use Apify Schedules to run the same questions every day or week and compare the answers and sources between runs.

#### Can I request a new feature or filter?

Yes. Right now the actor supports search queries, Google search URLs, country, and language. If you need something else, such as follow-up questions or brand mention detection, get in touch and it can be added.

#### Can I get a custom or private version?

Yes. The actor can be customized for your workflow, delivered as a private version, or a new scraper can be built for a different website. Use the contact details below.

***

**Need help or want a custom solution?**

- 📧 Email: aboo.script@gmail.com
- 🧩 More scrapers: [Apify profile](https://apify.com/aboo.script)

### Image Credit

Image credit: [Google AI Mode](https://www.google.com/search?udm=50)

# Actor input Schema

## `searchQueries` (type: `array`):

Questions to ask Google AI Mode, one per line. Each question returns one answer.

## `startUrls` (type: `array`):

Google search URLs (for example https://www.google.com/search?q=what+is+blockchain). Any Google search URL is turned into its AI Mode version; the language and country parameters of the URL are kept.

## `maxResults` (type: `integer`):

Maximum number of questions to answer (search queries and start URLs together). 0 means no limit.

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

Two-letter country code of the Google market used for search queries, for example us, gb, de.

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

Language of the answer for search queries, for example en, de, fr, pt-BR.

## `includeHtml` (type: `boolean`):

Also save the raw HTML of each answer (larger results).

## `proxyConfiguration` (type: `object`):

Each session uses its own IP address. Datacenter proxies work well; change the group or country only if you need answers from a specific location.

## Actor input object example

```json
{
  "searchQueries": [
    "how does photosynthesis work",
    "best laptops for programming",
    "what is the difference between a roth ira and a traditional ira",
    "how to start a vegetable garden",
    "what causes inflation",
    "best time to visit japan",
    "how do electric cars work",
    "what is machine learning",
    "how to lower cholesterol naturally",
    "what are the benefits of intermittent fasting"
  ],
  "maxResults": 5,
  "country": "us",
  "language": "en",
  "includeHtml": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "searchQueries": [
        "how does photosynthesis work",
        "best laptops for programming",
        "what is the difference between a roth ira and a traditional ira",
        "how to start a vegetable garden",
        "what causes inflation",
        "best time to visit japan",
        "how do electric cars work",
        "what is machine learning",
        "how to lower cholesterol naturally",
        "what are the benefits of intermittent fasting"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/google-ai-mode-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 = {
    "searchQueries": [
        "how does photosynthesis work",
        "best laptops for programming",
        "what is the difference between a roth ira and a traditional ira",
        "how to start a vegetable garden",
        "what causes inflation",
        "best time to visit japan",
        "how do electric cars work",
        "what is machine learning",
        "how to lower cholesterol naturally",
        "what are the benefits of intermittent fasting",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/google-ai-mode-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 '{
  "searchQueries": [
    "how does photosynthesis work",
    "best laptops for programming",
    "what is the difference between a roth ira and a traditional ira",
    "how to start a vegetable garden",
    "what causes inflation",
    "best time to visit japan",
    "how do electric cars work",
    "what is machine learning",
    "how to lower cholesterol naturally",
    "what are the benefits of intermittent fasting"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call aboo.script/google-ai-mode-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/google-ai-mode-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/fhvbWiaKBBaHjRzom/builds/PMhLcGJVT917UGcfC/openapi.json
