# Google AI Mode Scraper (`apify/google-ai-mode-scraper`) Actor

Scrape Google AI Mode answers for any search query. Extract the full AI-generated response, cited sources with links and titles, and follow-up questions. Set location and language per query. Ideal for GEO, and answer-engine monitoring. Connect to your agent via MCP or export to JSON, CSV, or Excel.

- **URL**: https://apify.com/apify/google-ai-mode-scraper.md
- **Developed by:** [Apify](https://apify.com/apify) (Apify)
- **Categories:** SEO tools, AI, Automation
- **Stats:** 8 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.00 / 1,000 google ai modes

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## What does Google AI Mode Scraper do?

**Google AI Mode Scraper** extracts **Google AI Mode search results** at scale. Enter your search queries and get back clean, structured data - including AI Mode's **AI-generated answer text**, cited sources with URLs, and metadata - ready for analysis, monitoring, or integration into your workflows.

AI Mode is Google's conversational AI search experience that generates detailed, multi-paragraph answers with cited sources directly from a Google search. This Actor wraps a battle-tested [Google Search Scraper](https://apify.com/apify/google-search-scraper) so you don't need to worry about proxies, browser fingerprinting, or parsing - just provide your queries and collect the output.

### What can Google AI Mode Scraper do?

- **Extract AI Mode answers** - Get the full AI-generated text that Google AI Mode produces for each query
- **Collect cited sources** - Capture every source title and URL that AI Mode references in its answer
- **Structured JSON output** - Every result is returned as clean JSON, ready for downstream processing
- **Apify platform benefits** - Access results via REST API, schedule recurring runs with cron expressions, integrate with Zapier/Make/Google Sheets, and leverage automatic proxy rotation
- **Batch processing** - Submit hundreds of queries in a single run and collect all results from one dataset

### What data can you extract?

| Field     | Type   | Description                                                                                                        |
| --------- | ------ | ------------------------------------------------------------------------------------------------------------------ |
| `query`   | String | The search query you submitted                                                                                     |
| `text`    | String | The full AI Mode answer generated by Google                                                                        |
| `sources` | Array  | List of cited sources, each with `id`, `title`, `url`, `description`, and `section` (either `citations` or `more`) |

### How to scrape Google AI Mode results

1. **Go to the Actor page** - Navigate to [Google AI Mode Scraper](#) on Apify Store and click **Try for free**.
2. **Enter your search queries** - In the Input tab, type or paste your queries into the **Queries** field, one per line. For example: `best project management tools`, `how does photosynthesis work`.
3. **Start the run** - Click **Start** and wait for the Actor to process your queries. The run time depends on how many queries you submitted - most runs finish within a few minutes.
4. **Export your data** - Once the run completes, go to the **Dataset** tab to preview results. Export as JSON, CSV, Excel, or connect directly to Google Sheets, Zapier, or Make.
5. **Automate with Apify MCP** - Connect to Apify from your AI tool with [Apify MCP](https://docs.apify.com/platform/integrations/mcp) and let your agent run and schedule the Actor and get you results automatically.

### Input parameters

| Parameter   | Description                                             |
| ----------- | ------------------------------------------------------- |
| **Queries** | Your search queries, one per line. Supports bulk input. |

For the full list of options, see the **Input** tab on the Actor page.

### Output example

```json
{
    "text": "The consensus across review sites is that the best CRM depends on who you are and what your bottleneck is.\n\n*   **HubSpot:** A favorite for user experience - intuitive, with a generous free tier. It gets expensive once you need advanced automation.\n*   **Zoho CRM:** The \"value-for-money\" alternative - highly customizable with built-in AI assistants.\n*   **Pipedrive:** A clean, drag-and-drop pipeline that sales reps love.\n*   **Salesforce:** The enterprise standard - the most powerful and extensible, but with a steeper learning curve.",
    "sources": [
        {
            "id": 1,
            "url": "https://www.pcmag.com/picks/the-best-crm-software#:~:text=a%20learning%20curve-,Why%20We%20Picked%20It,plan%20as%20your%20business%20grows.",
            "title": "The Best CRM Software We've Tested for 2026 | PCMag",
            "description": "Why We Picked It. HubSpot offers a fairly full-featured version of its \neasy-to-use Smart CRM at no cost for up to two users. This tier has no time \nlimits, ...",
            "section": "citations"
        }
    ],
    "query": "what are the best crm platforms"
}
````

### Failed queries

Every query AI Mode can't return a result for is written to a separate **`errors`** dataset instead of the main one - so your results stay clean and you can still see exactly which queries failed and why. Open it from the **Failed queries** link on the run's output, or under **Storage → Datasets**.

```json
{
    "query": "best web scraping tools 2025",
    "error": "No result returned for the query."
}
```

### Other AI search scrapers on Apify

Google AI Mode is just one piece of the AI search landscape. Monitor your brand across all major AI-powered search engines:

- **[Gemini Search Scraper](https://apify.com/apify/gemini-search-scraper)** - Extract Google Gemini search results, the conversational AI answers Gemini generates with cited sources. Track how Gemini describes your brand and which sources it cites.
- **Google AI Overview Scraper** - Extract Google AI Overview results, the AI summaries that appear directly on the search results page. Ideal for tracking how Google's AI snippets represent your brand.
- **[Google Search Results Scraper](https://apify.com/apify/google-search-scraper)** - Extract SERPs organic and paid results, review ratings and People Also Ask. Ideal for AI SEO workflows.

Use these Actors together for comprehensive **AI search monitoring** - understand how every major AI engine presents information about your brand, products, or topics.

### Frequently asked questions

#### Is it legal to scrape Google AI Mode results?

Web scraping of publicly available data is generally legal in most jurisdictions. Google AI Mode results are publicly accessible to anyone performing a search. This Actor collects the same information a regular user would see. Always review and comply with applicable terms of service and local regulations for your specific use case.

#### What is Google AI Mode?

Google AI Mode is Google's conversational AI search experience. Instead of a list of blue links, it generates a detailed, multi-paragraph answer to your query and cites the web sources it drew from. Google AI Mode Scraper returns that answer text and its cited sources as structured data for any query you submit.

#### What are the best use cases for AI Mode scraping?

The most popular use cases include **SEO and brand monitoring** (track how AI Mode describes your brand), **competitive analysis** (compare how AI Mode answers queries about you vs. competitors), **content research** (discover what sources AI Mode cites for your target topics), and **AI search trend tracking** (monitor how AI-generated answers evolve over time).

#### Can I integrate Google AI Mode Scraper with other tools?

Yes. Apify offers native integrations with **Zapier**, **Make**, **Google Sheets**, **Slack**, **webhooks**, and more. You can also use the **Apify API** or **Apify Python/JavaScript clients** to pull data into your own applications, dashboards, or data pipelines. Schedule runs on any cadence - hourly, daily, weekly - for fully automated monitoring.

# Actor input Schema

## `queries` (type: `string`):

The prompts/queries to send to Google AI Mode. Enter one query per line.

## Actor input object example

```json
{
  "queries": "best SEO tools\napify web scraping"
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped data

## `errors` (type: `string`):

Queries that returned no AI Mode result, with the failure reason

# 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": "What are the top 5 CRM tools"
};

// Run the Actor and wait for it to finish
const run = await client.actor("apify/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 = { "queries": "What are the top 5 CRM tools" }

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": "What are the top 5 CRM tools"
}' |
apify call apify/google-ai-mode-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=apify/google-ai-mode-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google AI Mode Scraper",
        "description": "Scrape Google AI Mode answers for any search query. Extract the full AI-generated response, cited sources with links and titles, and follow-up questions. Set location and language per query. Ideal for GEO, and answer-engine monitoring. Connect to your agent via MCP or export to JSON, CSV, or Excel.",
        "version": "0.0",
        "x-build-id": "9dvhhke4wO8dcVbgH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/apify~google-ai-mode-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-apify-google-ai-mode-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/apify~google-ai-mode-scraper/runs": {
            "post": {
                "operationId": "runs-sync-apify-google-ai-mode-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/apify~google-ai-mode-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-apify-google-ai-mode-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Search query/queries",
                        "pattern": "[^\\s]+",
                        "type": "string",
                        "description": "The prompts/queries to send to Google AI Mode. Enter one query per line."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
