Google AI Overview API avatar

Google AI Overview API

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Google AI Overview API

Google AI Overview API

Fetch Google AI Overviews for any query - get the AI-generated answer and its cited sources as structured JSON. Send one or many queries, target a country and language, and handle Google's deferred (page-token) generation automatically. Pay per retrieval. MCP-ready for Claude and AI agents.

Pricing

from $0.01 / 1,000 results

Rating

5.0

(4)

Developer

John

John

Maintained by Community

Actor stats

8

Bookmarked

169

Total users

80

Monthly active users

9 hours ago

Last modified

Share

🔎 Google AI Overview API

Two separate things decide how much traffic a query still sends you: whether Google shows an AI Overview on it at all, and whether that overview cites you. The Google AI Overview API answers both. Send a query and get the AI-generated answer, its cited sources, and, when you list your own domains, a citation verdict for every row. When Google defers generation, this API resolves the answer for you. MCP-ready so Claude and other AI agents can call it as a tool.

Appearance is the number to watch first. Ahrefs measured a 58% drop in clickthrough rate for the top-ranking result when an AI Overview is present, across 300,000 keywords on December 2025 data, up from 34.5% in their April 2025 study. That cost lands whether or not you are the site being cited. So this API reports presence and citation as two separate fields rather than folding them into one.

Example code (Python): https://github.com/johnisanerd/Apify-Google-AI-Overview-API


📋 What this API returns

FieldDescription
queryThe search query this row answers.
check_statusok, retrieval_failed, or blocked. Whether the check itself completed.
ai_overview_presenttrue if Google showed an AI Overview, false if none was shown. Omitted entirely when check_status is not ok.
citation_statecited, competitor_cited, no_overview, or overview_no_references. Present when you supply target_domains.
cited_urlsThe pages of yours the overview cited, as links.
cited_pages_countHow many distinct pages of yours were cited.
text_blocksThe AI Overview content as ordered blocks: paragraphs, headings, lists, and tables.
referencesThe cited sources behind the overview, each with title, link, snippet, and source.
used_dedicated_apitrue when Google deferred generation and a follow-up fetch was needed to resolve the answer.
retrievals_used1 for an inline answer, 2 when a follow-up fetch was required.
thumbnail, header_imagesImagery shown with the overview, when present.
gl, hl, locationThe country, language, and location used for the search.
noteA short explanation when no overview was returned.

ai_overview_present: false with check_status: ok means we looked and Google showed nothing. The field being absent, with check_status: retrieval_failed or blocked, means we could not look, so nothing can be concluded. The two never share a value, so a failed check can never be counted as a genuine absence.


🎯 Use cases

  • GEO / AEO monitoring. Track whether your brand or domain is cited in Google's AI Overview for the queries you care about. Set target_domains and every row comes back already classified, so you are charting a field rather than writing a matching loop.
  • Competitor citation analysis. See which domains Google's AI trusts on your keywords. The cited source shows the shape of answer Google currently rewards, which makes it a content brief rather than only a scoreboard. The Analyze which domains Google AI Overview cites task does this across a keyword list out of the box.
  • SEO research. See which sources Google's AI cites for a topic, and how the answer is phrased.
  • Content strategy. Compare AI Overview answers across queries, countries, or over time.
  • AI agent workflows. Drive this API over MCP from Claude (see below) to pull AI Overview answers in-conversation.
  • Datasets for analysis. Batch hundreds of queries into one run and export the answers and citations as JSON.

Supply target_domains and each row is classified. Charted over time, these three lines say more than any single check, because a one-off answer cannot tell you whether something changed.

citation_stateWhat it meansWhat to do about it
no_overviewGoogle showed no AI Overview for this query.Ordinary SEO still applies here. Watch for the day this flips: that is the day the query starts costing you clicks.
citedAn overview appeared and cited one of your domains. cited_urls names the exact pages.Track which pages earn citations. They are rarely the ones you would have guessed, and they show the answer shape Google rewards.
competitor_citedAn overview appeared, cited sources, and none of them were yours.The highest-value rewrite list you have. Google is answering your query with somebody else's content.
overview_no_referencesAn overview appeared with no reference list at all.Rare. Keep it out of your "not cited" bucket: there was nothing to be cited by, so it says nothing about your content.

A schedule per state. Single checks are noise; the history is the product.

  • Watching for no_overview to flip. Daily is enough: 0 7 * * * over your money keywords. The alert you want is a state change, not a value.
  • Holding on to cited. Daily as well, on a smaller set. Losing a citation you had is the signal, and it is invisible unless yesterday's row is stored somewhere.
  • Working the competitor_cited backlog. Weekly is plenty: 0 9 * * 1. This list feeds a content queue, and content moves slower than the SERP does.

Store each run's rows (there is a Supabase recipe below), or you have nothing to compare today against. A single run is a snapshot.


🔌 Integrations: Automate Google AI Overview API Monitoring

A single run answers one question ("is my brand cited for this query today?"). The real value comes from running the Google AI Overview API on a schedule, so you accumulate a history of how the overview and its cited sources shift over time. See the full list of Apify platform integrations.

Tasks and Schedules (the core recipe). Save one task per query set you watch (a brand list, a keyword list, or one country), then attach a schedule from the Actor's Actions, then Schedule menu. Useful cron strings: 0 7 * * * (daily at 7 AM), 0 */6 * * * (every 6 hours), 0 9 * * 1 (Mondays). One schedule can trigger many tasks at once. The Check if your brand appears in Google AI Overviews task is a ready-made starting point.

n8n. This API ships an n8n community node (see the n8n integration section below). A four-step monitor: Schedule Trigger, then the Google AI Overview API node, then a Filter on ai_overview_present, then Slack or email when your domain is missing from references.

Make and Zapier. The same pattern works no-code with Make and Zapier: trigger on a schedule, run the Actor, route the rows to where you need them.

Store the history (Supabase). Send each run's rows into a table so an AI Overview history builds up. No-code: the n8n Actor node, then a Supabase node. Or in Python (each row carries query, ai_overview_present, text_blocks, references, gl, hl):

from apify_client import ApifyClient
from supabase import create_client
apify = ApifyClient("YOUR_APIFY_TOKEN")
supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")
run = apify.actor("johnvc/google-ai-overview-api").call(run_input={
"queries": ["best crm for startups", "what is retrieval augmented generation"],
"gl": "us",
"hl": "en",
})
rows = list(apify.dataset(run["defaultDatasetId"]).iterate_items())
supabase.table("ai_overviews").upsert(rows).execute()

MCP and AI agents. Add this API as a tool in Claude or Cursor through the Apify MCP server so an agent can pull AI Overview answers inside AI agent workflows (see the Use this API from Claude section below).

Webhooks. For anything custom, fire an Apify webhook on ACTOR.RUN.SUCCEEDED to push each run's dataset into your own service.


⚙️ Input examples

Single query

{
"query": "what is the Siliconimist podcast?"
}

Many queries at once

{
"queries": [
"best practices for prompt engineering",
"how does vector search work",
"what is a transformer model"
]
}

Citation tracking for your own domains

{
"queries": [
"best crm for startups",
"what is retrieval augmented generation"
],
"target_domains": ["example.com", "docs.example.com"]
}

Subdomains match their parent, so example.com covers learn.example.com and blog.example.com. Matching is on the registered domain only, so notexample.com never counts as a match. Leave target_domains empty and classification is skipped entirely.

Country and language targeting

{
"query": "electric vehicle tax credit",
"gl": "us",
"hl": "en",
"location": "Austin, Texas, United States"
}

Provide a single query, a list of queries, or both. At least one is required. The API returns one row per query.

Note: Google's AI Overview is currently shown for English searches (hl=en) in a limited set of countries. For some queries Google declines to show an overview at all; those rows come back with ai_overview_present: false and a short note.


Sample output

One row per query. An AI Overview row (result_type: "ai_overview"), trimmed:

{
"result_type": "ai_overview",
"query": "what is retrieval augmented generation",
"check_status": "ok",
"ai_overview_present": true,
"text_blocks": [
{"type": "paragraph", "text": "Retrieval augmented generation (RAG) pairs a language model with a search step that pulls in relevant documents before the model answers."},
{"type": "list", "items": ["Retrieve relevant context", "Augment the prompt", "Generate the answer"]}
],
"references": [
{"title": "What is RAG?", "link": "https://example.com/rag-explained", "snippet": "RAG grounds a model's answer in retrieved sources.", "source": "example.com"}
],
"used_dedicated_api": false,
"retrievals_used": 1,
"citation_state": "cited",
"cited_urls": ["https://example.com/rag-explained"],
"cited_pages_count": 1,
"gl": "us",
"hl": "en",
"location": null,
"note": null
}

The three cited* fields appear only when you supply target_domains. Without it the row is exactly as before, plus check_status.

When Google shows no overview, the row comes back with ai_overview_present: false, check_status: "ok", and a short note explaining why. When the check could not be completed, the row instead carries check_status: "retrieval_failed" or "blocked", no ai_overview_present at all, and no retrieval charge:

{
"result_type": "error",
"query": "what is retrieval augmented generation",
"check_status": "retrieval_failed",
"error_message": "The upstream request failed with HTTP status 502.",
"error_type": "AIOverviewError",
"gl": "us",
"hl": "en"
}

💰 Pricing (pay-per-event)

EventPriceWhen it fires
setup$0.01Once per Actor run, at startup.
overview-retrieval$0.015Per retrieval. One for a standard answer; two when Google defers generation and a follow-up fetch is required.

Examples:

  • A query whose answer is returned inline costs $0.01 + $0.015 = $0.025.
  • A query where Google defers generation costs $0.01 + 2 x $0.015 = $0.04.
  • A batch of 10 inline answers costs $0.01 + 10 x $0.015 = $0.16.

You are billed per retrieval the API actually performs, so deferred queries (which require a second fetch) are the only ones that cost two retrievals.

A check that did not complete is not billed. Rows with check_status of retrieval_failed or blocked fire no retrieval charge, so a bad run costs you the setup fee and nothing more.


🔌 Use this API from Claude (MCP)

This Actor is MCP-server-compatible, so Claude Code (free trial), Claude (desktop and web), Cursor, and other MCP clients can call it as a tool through Apify's hosted MCP server.

Add it with this Actor-specific URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/google-ai-overview-api

Setup walkthrough:

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

New to Claude Code or Claude Cowork? Start a free trial here: https://claude.ai/referral/uIlpa7nPLg

Then ask Claude:

"Use the Google AI Overview API to get the AI Overview for 'what is the Siliconimist podcast?', and list the cited sources."


💸 Pay per run with crypto (x402)

The Google AI Overview API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.

🚀 How to get started

  1. Open the Actor and enter a query (or a list of queries).
  2. Optionally set the country (gl), language (hl), and location.
  3. Run it and read the results from the dataset (JSON, CSV, Excel, or API).

View on Apify Store


⚠️ Limitations worth knowing

Runs come from datacenter addresses, so pin your region. Always set gl, hl, and location, and keep them in whatever you store. Every row echoes the values back for exactly this reason. An unlogged region makes a lost citation indistinguishable from a run that simply exited somewhere else, and you will not be able to tell the two apart after the fact.

AI Overviews are volatile. The same query can cite you on Monday and drop you on Thursday with nothing on your site having changed. A single check is close to meaningless on its own. Run a set on a schedule, keep the rows, and read the trend; that is why this API is priced per retrieval rather than per dashboard seat.

Search Console does not fill this gap. Since June 2026 Google Search Console has a separate AI performance report, but it is impressions only: no clicks, no clickthrough rate, no position, no query breakdown, and the rollout is limited. It tells you that AI surfaces showed your site somewhere. It cannot tell you which query, or who was cited instead of you. This API supplies the query-level citation half; Search Console supplies the impression half.

Mentioned, recommended, and cited are not the same thing. This API reports citation, which is a link in the reference list. It does not yet analyse the answer text to tell you whether a brand was named approvingly, named in passing, or merely listed. Being discussed in text_blocks without appearing in references is a real state, and today you would have to read text_blocks yourself to spot it.

Plenty of queries never get an overview. Google shows them most often on question-style, informational searches, currently in English and in a limited set of countries. Treat a no_overview row as a finding rather than a failure.


Tracking AI answer engines beyond Google? These tools from the same catalog pair well with the Google AI Overview API for generative engine optimization (GEO) and answer engine optimization (AEO) monitoring:

  • Naver AI Overview API: the same AEO monitoring for Naver, Korea's dominant search engine, when you track the Korean market.
  • Brave AI Mode API: AI-generated answers and their sources from Brave Search, for privacy-focused search visibility.
  • Bing Copilot API: Microsoft's Bing Copilot AI answers, to round out cross-engine answer-engine monitoring.
  • Google News API: pull the coverage behind a topic to see which publishers feed the sources an AI Overview cites.

An alternative such as Google AI Overview Scraper exists, but it currently carries a 1-star average rating and a higher per-run start fee. This API is actively maintained, holds a 5-star rating, returns clean structured JSON, and resolves Google's deferred generation automatically.


❓ FAQ

How do you tell a genuine "no AI Overview" from a retrieval failure?

By reading check_status before ai_overview_present. check_status: "ok" with ai_overview_present: false means the check ran and Google showed nothing; that is a real result and the row carries a short note. Anything else (retrieval_failed, blocked) means the check did not complete, and ai_overview_present is left out of the row entirely rather than set to false. The two states can never be confused, because they never share a value. Failed checks are also not billed.

Does an AI Overview appear on this query at all, separate from whether I am cited?

Yes, and they are deliberately separate fields. ai_overview_present answers the first question and citation_state answers the second. They move independently and cost you differently: an overview appearing at all is what compresses clicks on the query, whether or not you are the site inside it.

Which of my pages is getting cited, not just whether my domain is?

cited_urls lists the exact pages, and cited_pages_count counts the distinct ones. Set target_domains to your domain and the row tells you which URL Google actually picked. It is often not the page you would have nominated, which is the useful part.

Who else is being cited for this query?

Every row carries the full references array with each source's title, link, snippet, and source domain, whether or not you are among them. When citation_state is competitor_cited, those references are the answer Google currently prefers to yours. The Analyze which domains Google AI Overview cites task tallies them across a whole keyword list.

Are AI Overview citations correlated with classic top-10 rankings for the same query?

Not reliably, and that gap is the interesting part. Pages outside the top 10 get cited and pages at position 1 get skipped. Treat citation as its own metric rather than a proxy for rank: run this API over the same keyword list you already track in Search Console and compare the two columns yourself.

How do you handle AI Overview volatility, since the same query can cite you Monday and drop you Thursday?

Do not read single runs. Put a query set on a schedule, store every row, and trend citation_state. Day-to-day flapping is normal and is not a signal on its own; a sustained change is. See the Three states section above for a cadence per state, and the Integrations section for storing the history.

Can you pin the country or region per run, given datacenter exit nodes?

You can pin the search targeting with gl, hl, and location, and every row echoes back the values used. That is the part you control. What you cannot control is the exit address a run comes from, which is why logging the targeting matters: without it, a lost citation and a different exit node look identical afterwards.

Are historical citations stored, or is each run a snapshot?

Each run is a snapshot. The Actor returns rows; it does not keep a history for you. Storing them is a few lines, and the Integrations section has a Supabase recipe that appends every run to a table. The history is where the value is, so it is worth wiring up on day one rather than later.

Does an llms.txt file affect whether AI models cite you?

There is no good evidence that it does. Practitioners who have shipped one report no measurable change in citations. Treat it as cheap and unproven rather than as a lever, and measure before and after with a scheduled query set if you want your own answer.

What is used_dedicated_api / why do some queries cost two retrievals?

Google sometimes returns the AI Overview immediately and sometimes defers it, returning only a short-lived token. When that happens, this API makes a second call to resolve the full answer. That second call is the second retrieval.

Can I pass a token directly?

No. The deferral token expires within about a minute, so it is resolved automatically inside a single run rather than exposed as an input.

Can I schedule the Google AI Overview API?

Yes. Any run can be automated on a schedule. Create a saved task with your queries, then attach a schedule from the Actor's Actions, then Schedule menu. Concrete cron strings: 0 7 * * * for daily at 7 AM, 0 */6 * * * for every six hours, and 0 9 * * 1 for Mondays. One schedule can trigger many tasks at once, so you can watch dozens of brand or keyword lists from a single timer. See the Integrations section above for the full monitoring recipe.

Should I use an API or a web scraper for Google AI Overviews?

Both, and this Actor is both. A plain web scraper of Google Search returns messy HTML and breaks when the layout changes, while this Actor gives you the clean, structured result of a purpose-built API: call it yourself, pay per retrieval, no quotas, and get the same JSON whether you send one query or hundreds. It also resolves Google's deferred (page-token) generation for you, which a naive scraper misses.

Can I integrate the Google AI Overview API with other apps?

Yes. It connects to almost any cloud service through Apify integrations: Make, Zapier, Slack, the n8n community node, and webhooks on ACTOR.RUN.SUCCEEDED for custom actions. See the Integrations section above for full recipes.

Can I use the Google AI Overview API programmatically?

Yes. The Apify API runs the Actor, schedules it, and fetches datasets, and the apify-client package exists for both Node.js and Python. See the Apify API tab for ready-made snippets.

Can I use the Google AI Overview API through an MCP server?

Yes. Add it as a tool in any MCP client (Claude, Cursor, and others) through the hosted Apify MCP server with the Actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/google-ai-overview-api. In Claude Code (free trial) or Claude Cowork (free trial) your agent can then answer questions like "is my domain cited in the Google AI Overview for these ten queries?" inside AI agent workflows. See the Apify MCP docs.

How can I monitor AI Overviews across other search engines?

Pair this API with related tools in the same catalog: the Naver AI Overview API for Korean AEO monitoring, the Brave AI Mode API for Brave Search answers, and the Bing Copilot API for Microsoft's answer engine. Together they cover generative engine optimization across the major AI answer engines.

What is a Google AI Overview?

A Google AI Overview is the AI-generated summary Google shows at the top of some search results, with links to the sources it drew from. It grew out of Google's Search Generative Experience. Background: Google Search and large language models. You can see one yourself on Google.

Can I use AI Overview data in AI agent workflows?

Yes. The Actor is MCP-ready and returns clean JSON, so an agent can call it as a tool, read citation_state and references, and decide what to do next without any parsing step in between.


n8n integration

Available as an n8n community node, n8n-nodes-google-ai-overview-api. In n8n: Settings, Community Nodes, install n8n-nodes-google-ai-overview-api, then use it in any workflow (it also works as an AI Agent tool).


Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.


🌐 About Alpha OSINT

This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. See the Google AI Overview API source page for related tools and use cases. For support or requests for this actor, please start a ticket directly on our support page.

Last Updated: 2026.08.19