# Google AI Mode API: AI Mode Answers, Citations & Sources (`plainrows/google-ai-mode-api`) Actor

Google AI Mode scraper and MCP tool: send queries, get Google AI Mode's answer as JSON: markdown text and every cited source (URL, domain, title, snippet). No Google account, no browser. $0.008 per answer, plus $0.001 per run; empty or failed answers are free.

- **URL**: https://apify.com/plainrows/google-ai-mode-api.md
- **Developed by:** [PlainRows](https://apify.com/plainrows) (community)
- **Categories:** AI, SEO tools, Developer tools
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 google ai mode answers

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 API: AI Mode Answers, Citations & Sources

Give it **a list of queries** and get one row per query: **Google AI Mode's answer (Markdown) and every source it cites (rank, URL, domain, title, snippet, source name)**, plus the domains it links to.

A **Google AI Mode scraper alternative**: no browser, no proxies, no CAPTCHAs, no Google account. Queries run five at a time through the data source's priority queue; one answer took under 40 seconds in our test. **You only pay for queries that got an answer: $0.008 per answer**, plus $0.001 per run.

**Where the answers come from:** this Actor gets Google AI Mode's answers through a commercial data API that collects them from Google. Answers vary with the time and the location, so they can differ from what you see in your own browser.

### Typical uses

- **AI search visibility (GEO / AEO)**: which sites does Google AI Mode cite for the queries your buyers type? Is yours one of them?
- **Citation research**: `sources` and `citedDomains` show the pages Google AI Mode relies on, in order.
- **Content gaps**: read what the answer says, and which competitors it cites, before writing your own page.
- **Answers with sources for your app or agent**: Google AI Mode as plain JSON, with the citations kept apart from the text.
- **Weekly reports**: schedule a run and send the rows to Google Sheets, Looker Studio, Slack, n8n, Make or Zapier.

### What you get for each query

| Field | Description |
|---|---|
| `query` | The query asked |
| `answer`, `answerLength` | Google AI Mode's answer as Markdown (headings, lists, tables, links) |
| `sources`, `sourcesCount` | Each cited source: `rank`, `url`, `domain`, `title`, `snippet`, `sourceName` (up to 50, each URL once) |
| `citedDomains` | Domains cited, in order, without duplicates: sources first, then links in the answer (images excluded) |
| `products` | Products shown as shopping cards in the answer (`rank`, `name`, `price`, `url`): the answer text itself omits their names |
| `refinementChips` | Follow-up refinements Google suggests, when the data source returns them (empty in our tests so far) |
| `checkUrl`, `answeredAt` | A link that opens the query in Google AI Mode, and when it answered |
| `found`, `status`, `message` | `ANSWERED` for a billed row; free rows say why: `EMPTY_ANSWER`, `UNREADABLE`, `REJECTED`, `PROVIDER_ERROR`, `NOT_CHECKED`, `FREE_PLAN_LIMIT`, `FREE_PLAN_DAILY_QUOTA` |
| `country`, `languageCode`, `checkedAt` | Location and language of the answer; when the run started |

Missing values are `null` or empty lists, never guessed.

### Input

```json
{
  "queries": ["best standing desk for small spaces", "Which CRM do small agencies recommend in 2026?"],
  "country": "US",
  "languageCode": "en"
}
```

- **queries**: up to 200 queries per run, 1 to 500 characters each. Each query is one answer.
- **country** (default US): US, GB, CA, AU, IE, IN, DE, AT, CH, FR, BE, ES, MX, IT, NL, PT, BR, PL, SE, JP.
- **languageCode** (optional): two-letter code; default is the main language of the country.

Google search operators (`site:`, `intitle:`, `inurl:`, `filetype:` and the like) are not supported: those queries are skipped before any request, listed in the run summary, and never charged as answers (the $0.001 run start still applies). A word followed by a colon that looks like an operator (for example `cache:`) is treated the same way: rephrase it. Write them as plain questions instead.

### Pricing

Pay per event, no subscription:

- **Google AI Mode answer: $0.008** per query that got a non-empty answer, at every Apify plan, free plan included.
- **Actor start: $0.001** per run.

**Examples on a paid plan:** 100 queries in one run cost **$0.801** ($0.80 + $0.001) if all of them get an answer. Tracking 30 queries every day for 30 days (900 answers, 30 runs) costs **$7.23**.

Empty answers, queries the data source refused or failed, answers that came back in an unexpected format, and queries not reached (budget or timeout) get a free row with `found: false` and the reason. An answer can take up to 3 minutes: no query starts in the last 4 minutes before the run's timeout. The run never spends more than the maximum cost you set.

**Free Apify plan:** each run asks the first query only, so you can test the output, and only 5 runs per account and UTC day get answers (later runs that day ask nothing); queries not asked get a free row saying why. A paid Apify plan removes both limits.

### Good to know

- **Answers vary from one run to the next**, even for the same query: track trends over several runs, not a single answer.
- Some sources point to Google itself (for example Google Shopping product pages): they are kept as cited, with the domain `google.com`.
- An answer without sources is still an answer and is billed; `sources` is then empty.
- **When most answers come back empty**, the run stops early to protect your budget (each query asked costs the data source money even when the answer is empty); the run summary says so. Rephrase the queries as questions Google answers in AI Mode.
- For one table of brand mentions across ChatGPT, Gemini and Google AI Mode, use [AI Visibility Tracker](https://apify.com/plainrows/ai-search-brand-visibility); for ChatGPT alone, [ChatGPT Search Scraper](https://apify.com/plainrows/chatgpt-search-scraper); for Perplexity, [Perplexity Search API](https://apify.com/plainrows/perplexity-search-api).
- Not affiliated with Google.

### What this is not

- Not Google's AI Overviews on the regular results page: this is the separate AI Mode answer.
- Not a conversation: one query, one fresh answer; no follow-up questions.
- Not a rank tracker for Google's blue links: for organic results use a SERP tool.

### Run summary

Each run stores a summary in the key-value store (`OUTPUT`): queries asked, answers billed, empty answers (`queriesEmptyAnswer`), unreadable answers (`queriesUnreadable`), queries refused (operators, too long) and anything skipped because of the free-plan or budget limit.

### Use it from code, automations or AI agents

**API (one call, results returned directly):**

```bash
curl -X POST "https://api.apify.com/v2/acts/plainrows~google-ai-mode-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["best standing desk for small spaces"]}'
```

**n8n, Make, Zapier:** use the Apify integration, pick `plainrows/google-ai-mode-api`, schedule it and send the rows to Google Sheets or Slack.

**AI agents (MCP tool):** add `https://mcp.apify.com?tools=plainrows/google-ai-mode-api` to Claude, Cursor or any MCP client, then ask "What does Google AI Mode answer to these queries, and which sites does it cite?".

### FAQ

**Is this a Google AI Mode API?**
Yes: one call per list of queries, JSON rows back with the answer and its sources, usable from the Apify API, n8n, Make, Zapier or as an MCP tool.

**How do I see if Google AI Mode cites my site?**
Look for your domain in `citedDomains` (and its position in `sources.rank`).

**Do I pay for empty answers or errors?**
No. Only queries with a non-empty answer are charged ($0.008), plus $0.001 per run.

### More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

- **SEO and keywords:** [Keyword Search Volume, CPC & Difficulty](https://apify.com/plainrows/keyword-search-volume) · [Keyword Planner Alternative (Bulk Search Volume & CPC)](https://apify.com/plainrows/keyword-planner-alternative) · [Google Keyword Planner API (Google Ads Search Volume & CPC)](https://apify.com/plainrows/google-keyword-planner-api) · [Google Autocomplete & People Also Ask](https://apify.com/plainrows/google-autocomplete-questions) · [Google Trends Explorer](https://apify.com/plainrows/google-trends-explorer) · [Google Trends Keyword Discovery (Rising & Related)](https://apify.com/plainrows/google-trends-keyword-discovery) · [Website Organic Traffic & Top Keywords](https://apify.com/plainrows/domain-seo-overview) · [Competitor Keywords API (Ranked Keywords)](https://apify.com/plainrows/competitor-keywords-api) · [Bulk Website Traffic Checker](https://apify.com/plainrows/website-traffic-checker) · [PPC Competitor Keywords (SpyFu Alternative)](https://apify.com/plainrows/ppc-competitor-keywords) · [Bulk Domain Authority Checker](https://apify.com/plainrows/domain-authority-checker) · [Backlink Checker](https://apify.com/plainrows/backlink-checker) · [Backlink API (Referring Domains & Backlinks Data)](https://apify.com/plainrows/backlink-api) · [Broken Link Checker](https://apify.com/plainrows/broken-link-checker) · [SEO Audit API (On-Page SEO Checker)](https://apify.com/plainrows/seo-audit-api) · [AI Search Visibility Tracker (ChatGPT, Gemini, AI Mode)](https://apify.com/plainrows/ai-search-brand-visibility) · [AI Overview Tracker (Google AI Overview Citations)](https://apify.com/plainrows/ai-overview-tracker) · [Perplexity Search API (Answers & Citations)](https://apify.com/plainrows/perplexity-search-api) · [ChatGPT Search Scraper (Answers & Citations)](https://apify.com/plainrows/chatgpt-search-scraper) · [Gemini Search Scraper (Answers & Citations)](https://apify.com/plainrows/gemini-search-scraper) · [AI Citations Finder (LLM Mentions in ChatGPT & AI Overviews)](https://apify.com/plainrows/ai-citations-finder) · [Keyword Rank Checker (Google SERP Position)](https://apify.com/plainrows/keyword-rank-checker) · [Google Search API (SERP Scraper & Web Results)](https://apify.com/plainrows/google-search-api) · [Bing Search API (Bing SERP & Web Results)](https://apify.com/plainrows/bing-search-api)
- **Leads and companies:** [Google Maps Scraper](https://apify.com/plainrows/google-maps-businesses) · [Google Maps Email Extractor](https://apify.com/plainrows/google-maps-email-extractor) · [Google Maps Businesses Without Website](https://apify.com/plainrows/google-maps-no-website-leads) · [Yellow Pages Australia Scraper](https://apify.com/plainrows/yellowpages-au-scraper) · [Website Technology Checker](https://apify.com/plainrows/website-tech-stack) · [Website Email Extractor](https://apify.com/plainrows/website-email-extractor) · [Contact Details Scraper (Emails, Phones, Socials)](https://apify.com/plainrows/contact-details-scraper) · [ATS Jobs Scraper (Workday, Greenhouse, Lever, Ashby)](https://apify.com/plainrows/ats-job-postings) · [Workday Jobs Scraper](https://apify.com/plainrows/workday-jobs-scraper) · [Greenhouse Jobs Scraper](https://apify.com/plainrows/greenhouse-jobs-scraper) · [Lever Jobs Scraper](https://apify.com/plainrows/lever-jobs-scraper) · [Ashby Jobs Scraper](https://apify.com/plainrows/ashby-jobs-scraper) · [Google Jobs Scraper](https://apify.com/plainrows/google-jobs-scraper) · [Reed.co.uk Jobs Scraper (UK)](https://apify.com/plainrows/reed-jobs-scraper) · [jobs.ch & jobup.ch Jobs Scraper (Switzerland)](https://apify.com/plainrows/jobs-ch-scraper) · [Arbeitsagentur Jobs Scraper (Germany)](https://apify.com/plainrows/arbeitsagentur-jobs-scraper) · [Gupy Jobs Scraper (Brazil)](https://apify.com/plainrows/gupy-jobs-scraper) · [Catho Jobs Scraper (Brazil)](https://apify.com/plainrows/catho-jobs-scraper) · [Vagas.com.br Jobs Scraper (Brazil)](https://apify.com/plainrows/vagas-jobs-scraper) · [Jobs.cz Scraper (Czech Republic)](https://apify.com/plainrows/jobs-cz-scraper) · [Remote Jobs Scraper (Himalayas, RemoteOK, Jobicy)](https://apify.com/plainrows/remote-jobs-aggregator) · [Google Ads Scraper (Transparency Center)](https://apify.com/plainrows/google-ads-transparency) · [Company Registry Lookup (SIRENE, LEI, Brreg)](https://apify.com/plainrows/company-registry-lookup) · [Public Tenders Search (EU TED & UK)](https://apify.com/plainrows/public-tenders-search)
- **E-commerce and travel:** [Amazon Product Search Scraper](https://apify.com/plainrows/amazon-product-search) · [Amazon Keyword Research (Search Volume & Reverse ASIN)](https://apify.com/plainrows/amazon-keyword-research) · [Google Shopping Prices Scraper](https://apify.com/plainrows/google-shopping-prices) · [Google Hotels Prices Scraper](https://apify.com/plainrows/google-hotels-prices) · [Google Hotels Scraper](https://apify.com/plainrows/google-hotels-scraper) · [Tripadvisor Reviews Scraper](https://apify.com/plainrows/tripadvisor-reviews) · [Trustpilot Reviews Scraper](https://apify.com/plainrows/trustpilot-reviews)
- **Marketplaces and classifieds:** [Property Finder Scraper (UAE)](https://apify.com/plainrows/propertyfinder-scraper) · [Redfin Scraper (US Homes for Sale)](https://apify.com/plainrows/redfin-scraper) · [Otomoto Scraper (Polish Car Listings)](https://apify.com/plainrows/otomoto-scraper) · [Otodom Scraper (Poland Property)](https://apify.com/plainrows/otodom-scraper) · [Imovirtual Scraper (Portugal Property)](https://apify.com/plainrows/imovirtual-scraper) · [Standvirtual Scraper (Portugal Cars)](https://apify.com/plainrows/standvirtual-scraper) · [Immoweb Scraper (Belgium Property)](https://apify.com/plainrows/immoweb-scraper) · [Blocket Scraper (Sweden)](https://apify.com/plainrows/blocket-scraper) · [FINN.no Scraper (Norway)](https://apify.com/plainrows/finn-scraper) · [coches.net Scraper (Spain Cars)](https://apify.com/plainrows/coches-net-scraper) · [2dehands Scraper (Belgium)](https://apify.com/plainrows/2dehands-scraper) · [Storia Scraper (Romania Property)](https://apify.com/plainrows/storia-scraper) · [Autovit Scraper (Romania Cars)](https://apify.com/plainrows/autovit-scraper) · [FINN.no Car Scraper (Norway Cars)](https://apify.com/plainrows/finn-cars-scraper) · [DBA Scraper (Denmark)](https://apify.com/plainrows/dba-scraper) · [Tori.fi Scraper (Finland)](https://apify.com/plainrows/tori-scraper)
- **Content and media:** [Google News Scraper](https://apify.com/plainrows/google-news-scraper) · [YouTube Search Scraper](https://apify.com/plainrows/youtube-search-scraper) · [YouTube Search API (JSON)](https://apify.com/plainrows/youtube-search-api) · [YouTube Comments Scraper](https://apify.com/plainrows/youtube-comments-scraper) · [Google Images Scraper](https://apify.com/plainrows/google-images-scraper) · [Website Screenshot API](https://apify.com/plainrows/website-screenshot) · [PDF to Markdown Converter (PDF to Text for AI & RAG)](https://apify.com/plainrows/pdf-to-markdown) · [Google Maps Reviews Scraper](https://apify.com/plainrows/google-maps-reviews) · [Google Reviews Scraper](https://apify.com/plainrows/google-reviews-scraper) · [App Store & Google Play Reviews Scraper](https://apify.com/plainrows/app-reviews-scraper) · [App Store & Google Play App Details Scraper](https://apify.com/plainrows/app-details-scraper) · [Google Play Reviews Scraper](https://apify.com/plainrows/google-play-reviews-scraper) · [App Store Reviews Scraper](https://apify.com/plainrows/app-store-reviews-scraper)

### Support

Missing a field or found a bug? Open an issue on this page. Issues are read and answered.

# Actor input Schema

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

One query per line, as you would type it in Google AI Mode. Up to 200 queries per run, 1 to 500 characters each. Each query is one AI Mode answer. Google search operators (site:, intitle:, inurl:, filetype:...) are not supported: such queries are skipped, free.

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

Country Google AI Mode answers from (two-letter ISO code).

## `languageCode` (type: `string`):

Two-letter language code, e.g. "en", "de", "fr". Default: the main language of the country.

## Actor input object example

```json
{
  "queries": [
    "best standing desk for small spaces",
    "Which CRM do small agencies recommend in 2026?"
  ],
  "country": "US"
}
```

# Actor output Schema

## `results` (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 standing desk for small spaces",
        "Which CRM do small agencies recommend in 2026?"
    ],
    "country": "US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("plainrows/google-ai-mode-api").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 standing desk for small spaces",
        "Which CRM do small agencies recommend in 2026?",
    ],
    "country": "US",
}

# Run the Actor and wait for it to finish
run = client.actor("plainrows/google-ai-mode-api").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 standing desk for small spaces",
    "Which CRM do small agencies recommend in 2026?"
  ],
  "country": "US"
}' |
apify call plainrows/google-ai-mode-api --silent --output-dataset

```

## MCP server setup

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

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/SawU35UgchHPhTFAG/builds/yljSELTQGbuxGz8jn/openapi.json
