AI Answer Visibility Tracker
Last updated October 29, 2026
Check whether Google AI Overviews, ChatGPT, Claude, Perplexity, and Gemini name and cite your brand for your buyers' questions. Named and cited rates, competitor rates, and every cited source. Covers AI Overviews on the normal Google results page, not Google AI Mode.
Install
npx @mambalabsdev/mcp-ai-answer-visibility-trackerEvery tool here also runs hosted, with no install at all, through Apify's MCP endpoint.
Features
- Ask each buyer question 1 to 10 times and see every answer, not one lucky read.
- Named and cited rates per question and engine, with a 95 percent range and the 10 most cited domains.
- Up to 20 competitors tracked in the same answers.
- Google AI Overviews need no key. ChatGPT, Claude, Perplexity, and Gemini run on your own keys, billed to you by that vendor.
- Pay per event: Google AI Overviews sample at $0.0316.
- Pay per event: AI engine sample at $0.009.
- Pay per event: Question rates at $0.003.
Input
brand_namestringrequiredRequired. The brand to look for in the answers, as people write it. Matched as a whole word, any case.
brand_domainstringoptionalYour website domain, such as hubspot.com. An answer that cites a page on this domain (or a subdomain) counts as cited. Leave empty to match cited domains on the brand name.
questionsarrayrequiredRequired. 1 to 50 questions your buyers ask, one per line, written the way they would type them, such as "best crm for small business".
enginesarrayoptionalWhere to ask. google_ai_overview needs no key. openai (ChatGPT), anthropic (Claude), perplexity, and gemini run on your own API key, given below, and the model use is billed to you by that vendor.
samplesstringoptionalHow many times each question is asked on each engine, 1 to 10. Answers change from one ask to the next, so the rates come from several samples. Each sample is one charged event. Default 3.
competitorsarrayoptionalOptional. Up to 20 competitors to track in the same answers, one per line, as a name, a domain, or name|domain (Pipedrive|pipedrive.com).
brand_aliasesarrayoptionalOptional. Other ways answers write the brand, such as a product name. Up to 10.
countrystringoptionalTwo letter country code for Google, such as us or gb. The answer engines are asked without a country.
languagestringoptionalLanguage code for Google, such as en or de.
include_answer_textstringoptionaltrue (default): each sample row carries the answer text (up to 8,000 characters) as well as a 300 character excerpt. false: the excerpt only.
openai_api_keystringoptionalYour own OpenAI key, needed only for the openai engine. Sent only to api.openai.com, never stored, logged, or written to a row.
anthropic_api_keystringoptionalYour own Anthropic key, needed only for the anthropic engine. Sent only to api.anthropic.com, never stored, logged, or written to a row.
perplexity_api_keystringoptionalYour own Perplexity key, needed only for the perplexity engine. Sent only to api.perplexity.ai, never stored, logged, or written to a row.
gemini_api_keystringoptionalYour own Google AI Studio key, needed only for the gemini engine. Sent only to generativelanguage.googleapis.com, never stored, logged, or written to a row.
openai_modelstringoptionalModel for the openai engine, asked with web search on. Default gpt-5-mini.
anthropic_modelstringoptionalModel for the anthropic engine, asked with web search on. Default claude-sonnet-5-5.
perplexity_modelstringoptionalModel for the perplexity engine. Default sonar.
gemini_modelstringoptionalModel for the gemini engine, asked with Google Search grounding on. Default gemini-2.5-flash.
max_charge_usdstringoptionalOptional. The run stops before any charge that would take it past this amount. Leave empty to rely only on the maximum cost per run you set in Apify, which the actor also honors.
Output schema
{
"row_type": "string",
"input_key": "string",
"question": "string",
"engine": "string",
"model": "string",
"sample_index": "integer",
"brand_name": "string",
"brand_domain": "string",
"answer_found": "boolean",
"overview_state": "string",
"answer_excerpt": "string",
"answer_text": "string",
"brand_named": "boolean",
"brand_cited": "boolean",
"first_mention_rank": "integer",
"cited_urls": "array",
"cited_domains": "array",
"competitors_named": "array",
"competitors_cited": "array",
"samples_run": "integer",
"answers_found": "integer",
"brand_named_count": "integer",
"brand_cited_count": "integer",
"brand_named_rate": "number",
"brand_cited_rate": "number",
"named_rate_low": "number",
"named_rate_high": "number",
"top_cited_domains": "array",
"competitor_rates_json": "string",
"country": "string",
"language": "string",
"row_status": "string",
"error_reason": "string",
"billable_events_json": "string",
"checked_at": "string"
}Pricing
| Event | Free plan price |
|---|---|
| Google AI Overviews sample | $0.0316 |
| AI engine sample | $0.009 |
| Question rates | $0.003 |
| Actor Start | $0.001082 |
Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.
On the Apify free plan the actor stops at $1.50 of charges a month, about 47 Google AI Overviews samples. Any paid Apify plan removes the cap.
Limits
- AI answers vary. A rate from 3 samples is a rough read; named_rate_low and named_rate_high show how rough. Use more samples for questions that matter.
- On questions where Google writes the overview live, many samples come back deferred: in a test of 10 long tail questions on 2026-10-28, 8 of 20 samples were deferred, while 10 of 10 samples of 5 common CRM questions were read. Popular questions read best.
- Google AI Mode, the chat style tab in Google search, is not covered. The actor reads only the AI Overview on the normal Google results page.
- The answer engines are asked through their APIs with web search on. A consumer app can answer differently, for example with personalization or a different default model.
- Brand matching is by whole word. A brand name that is also a common word (such as "Notion" in "the notion of") can be over counted; add the domain and aliases, and read the excerpt.
- Google pages are read from the country you set, signed out, with personalization off.