AI Visibility Tracker avatar

AI Visibility Tracker

Pricing

from $30.00 / 1,000 ai answer checks

Go to Apify Store
AI Visibility Tracker

AI Visibility Tracker

[from $0.0375/check] Track brand mentions in ChatGPT, Google AI Overview, AI Mode, Gemini, Perplexity and Claude: mentioned, position, cited domains, competitors, tone, snippet. Share of voice. Export, run via API or use with AI agents.

Pricing

from $30.00 / 1,000 ai answer checks

Rating

0.0

(0)

Developer

BlueskyScraper

BlueskyScraper

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

16 hours ago

Last modified

Share

What is AI Visibility Tracker?

AI Visibility Tracker checks whether ChatGPT, Google AI Overview, Google AI Mode, Gemini, Perplexity and Claude mention your brand when people ask them the questions your buyers ask. You enter your brand, its domain, your competitors and a list of questions; the Actor asks every question on every platform you pick and returns one row per question and platform.

Each row tells you: is the brand mentioned, at which position among the tracked brands, its rank in the list of options the AI gave, whether the AI cites or links your domain, which competitors it named and cited, all cited domains and URLs, a tone label for the sentences that mention you, a snippet around the mention, and the other brands the AI recommended that you are not tracking yet. An optional summary row adds share of voice for you and every competitor.

It is a GEO tool (generative engine optimization) and AI search visibility tracker in one run: no ChatGPT account, no OpenAI, Google or Perplexity API key, no browser extension. Rows are flat JSON, ready for Google Sheets, Looker Studio, n8n, Make or an AI agent.

What data can AI Visibility Tracker extract?

FieldExampleWhat it means
💬 querybest app for team wikiThe question asked
🤖 platformNameChatGPTChatGPT, Google AI Overview, Google AI Mode, Gemini, Perplexity or Claude
brandMentionedtrueYour brand (name, alias or domain) appears in the answer
brandPosition1Order of your first mention among tracked brands (you + competitors)
brandListRank1Your place in the list or table of options the AI gave
brandMentionCount3How many times the answer names you
brandCitedtrueYour domain is among the answer's sources or links
brandCitationRank1Place of your domain among the cited domains
🥊 competitorsMentioned["Obsidian", "Evernote"]Tracked competitors the answer names
competitorsCited["Obsidian"]Tracked competitors whose domain is cited
sentimentpositiveTone of the sentences that mention you (heuristic, see FAQ)
mentionSnippet…I'd pick Notion. It combines notes, documents…About 320 characters around the first mention
🌐 citedDomains["notion.com", "atlassian.com", "slite.com"]Unique domains the answer cites or links
citedUrls["https://www.notion.com/help/wikis-and-verified-pages", …]Cited and linked URLs (up to 40)
brandsListed["Notion", "Confluence", "Slite", "Nuclino", "Guru"]Options the AI presented, in its order
untrackedBrandsListed["Confluence", "Slite", "Nuclino", "Guru"]Options that are neither you nor a tracked competitor
fanOutQueries["best team wiki software Notion Confluence Slite …"]Web searches ChatGPT ran to write the answer
modelgpt-5-6Model or surface that answered
answeredAt2026-10-01T14:24:07ZWhen the platform produced the answer
answerMarkdown(optional)The complete answer with the AI's links

Rows from Claude have brandCited, citedDomains and citedUrls set to null: Claude is asked without web search, so it answers from model knowledge and has no sources (see FAQ).

The Actor uses pay per event pricing. You pay only for AI answers that were actually checked:

EventFree planStarter (Bronze)Scale (Silver)Business (Gold)When it is charged
AI answer check (per question × platform)$0.05$0.0375$0.03375$0.03One row with an AI answer, analysed for your brand and competitors
Share of voice summary ($, per run)$0.25$0.1875$0.16875$0.15Only if you switch on the summary row

Platinum and Diamond plans pay the Business price.

What is free:

  • no fee per run or per start;
  • rows where the platform gave no answer (for example, Google showed no AI Overview for that question) — they appear with hasAnswer: false and the reason;
  • error rows (unknown country, a question without letters, a platform that failed after retries);
  • checks above your Max checks cap, which are never requested.

Examples on the Starter plan (Free plan in brackets):

  • 2 questions × 1 platform (the prefilled demo): $0.075 ($0.10).
  • 20 questions × 4 platforms = 80 checks: $3.00 ($4.00), plus $0.1875 ($0.25) with the share of voice summary.
  • 50 questions × 6 platforms every week = 300 checks: $11.25 ($15.00) per week.

With the $5 of monthly credit on the Apify free plan you can run about 100 checks.

The price is the same for every platform, so you can compare ChatGPT, Perplexity and Google side by side without doing per-platform arithmetic. There is no proxy or browser cost on top: the Actor runs on 256 MB and a typical run uses well under a cent of platform compute.

How to track your brand in ChatGPT, Perplexity and Google AI Overview

  1. Open AI Visibility Tracker and click Try for free.
  2. Type your brand and your domain(s) — several domains separated by commas are fine (notion.com, notion.so).
  3. Add competitors, one per line, as Name | domain (for example Obsidian | obsidian.md).
  4. Enter the questions your buyers ask AI assistants, one per line. No list yet? Fill in Category (for example note taking app) and the Actor adds five template questions.
  5. Pick the AI platforms: ChatGPT, Google AI Overview, Google AI Mode, Gemini, Perplexity, Claude.
  6. Set the country and language of the answers.
  7. Click Start. The prefilled demo (2 questions on ChatGPT) finishes in about a minute.
  8. Open the AI visibility tab for the overview, Citations for sources, and Share of voice if you switched the summary on. Export to CSV, Excel or JSON, or schedule the run weekly to watch the trend.

⬇️ Input

The prefilled input, which is also what runs when you start the Actor with an empty input:

{
"brandName": "Notion",
"brandDomain": "notion.com, notion.so",
"competitors": ["Obsidian | obsidian.md", "Evernote | evernote.com"],
"queries": ["best note taking app", "best app for team wiki"],
"platforms": ["chatgpt"],
"country": "United States",
"language": "English"
}

Brand, domain and aliases

brandName is matched as a whole word. Typed with a capital letter (Notion), it matches "Notion" and "NOTION" but not the ordinary word "notion"; typed in lower case, it matches any case. brandAliases adds other names (product names, an old name). Your domain counts as a mention when the answer writes it in the text, and as a citation when it appears among the sources or links. Subdomains count (www.notion.com, help.notion.com).

Competitors

One per line: Obsidian | obsidian.md, Obsidian (obsidian.md), a bare domain obsidian.md, or just a name. Up to 25. Without a domain a competitor is still tracked for mentions, but not for citations.

Questions and template questions

Up to 500 characters each, in the language you choose. Write them the way people type into ChatGPT: best CRM for a 10-person startup, Notion alternatives, is HubSpot worth it?. With Category filled in, five questions are added: What is the best , Top , , Is and .

AI platforms

PlatformHow it is askedSources
ChatGPTThe ChatGPT app answer with web search, as a user sees itYes
Google AI OverviewThe AI Overview block in Google Search resultsYes (only for questions where Google shows one)
Google AI ModeGoogle Search AI ModeYes
GeminiThe Gemini app answerYes, when Gemini grounds the answer
PerplexityPerplexity Sonar with web searchYes
ClaudeClaude Haiku 4.5 without web searchNo — answers from model knowledge

Country, language, cache and caps

country accepts a name or a two-letter code (213 countries). language accepts a name or a code. cacheHours (default 24) reuses an answer collected for the same question, platform, country and language within that many hours — useful when a scheduled run overlaps a manual one; set 0 to always ask fresh. The prefilled demo may reuse an answer up to 7 days old. maxChecks (default 100) caps questions × platforms.

⬆️ Output

One row per question and platform. A real row from the demo run (ChatGPT, United States):

{
"type": "check",
"query": "best app for team wiki",
"platform": "chatgpt",
"platformName": "ChatGPT",
"brand": "Notion",
"hasAnswer": true,
"brandMentioned": true,
"brandPosition": 1,
"brandListRank": 1,
"brandMentionCount": 3,
"brandCited": true,
"brandCitationRank": 1,
"competitorsMentioned": [],
"competitorsCited": [],
"sentiment": "positive",
"mentionSnippet": "If you mean an internal team/company wiki, I'd shortlist these: App Best fit Why Notion Most teams Very flexible; wiki + docs + databases + project planning in one place. Confluence Larger/technical teams…",
"citedDomains": ["notion.com", "atlassian.com", "slite.com"],
"citationsCount": 4,
"brandsListed": ["Notion", "Confluence", "Slite", "Nuclino", "Guru"],
"untrackedBrandsListed": ["Confluence", "Slite", "Nuclino", "Guru"],
"fanOutQueries": ["best team wiki software Notion Confluence Slite Outline wiki features 2026"],
"model": "gpt-5-6",
"country": "United States",
"language": "English",
"checkUrl": "https://chatgpt.com/?prompt=best%20app%20for%20team%20wiki",
"answeredAt": "2026-10-01T14:24:07.000Z",
"fromCache": false
}

Share of voice summary row

Switch on Add share of voice summary row ($) to get one more row (type: "summary") after the checks. A real summary from one question asked on Gemini, Google AI Mode, Google AI Overview, Perplexity and Claude:

{
"type": "summary",
"brand": "Notion",
"checks": 5,
"brandMentionRatePct": 100,
"brandShareOfVoicePct": 38.5,
"brandCitationRatePct": 25,
"brandAvgPosition": 1.4,
"shareOfVoice": [
{ "name": "Notion", "isYourBrand": true, "answersMentioning": 5, "mentionRatePct": 100, "shareOfVoicePct": 38.5, "answersCiting": 1, "citationRatePct": 25, "avgPosition": 1.4, "firstPlaceCount": 3 },
{ "name": "Obsidian", "isYourBrand": false, "answersMentioning": 5, "mentionRatePct": 100, "shareOfVoicePct": 38.5, "answersCiting": 0, "citationRatePct": 0, "avgPosition": 1.6, "firstPlaceCount": 2 },
{ "name": "Evernote", "isYourBrand": false, "answersMentioning": 3, "mentionRatePct": 60, "shareOfVoicePct": 23.1, "answersCiting": 0, "citationRatePct": 0, "avgPosition": 3, "firstPlaceCount": 0 }
],
"byPlatform": [
{ "platformName": "Gemini", "answers": 1, "brandMentioned": 1, "brandCited": 0 },
{ "platformName": "Google AI Mode", "answers": 1, "brandMentioned": 1, "brandCited": 1 }
]
}

Share of voice = answers that mention a brand ÷ all tracked-brand mentions. Citation rate counts only platforms with web sources (Claude is excluded).

Rows without an answer and error rows

When a platform gives no answer — most often Google showing no AI Overview for that question — the row has hasAnswer: false, a noAnswerReason, and is free. Input problems and provider failures produce type: "error" rows with an error message, also free. A run where every row is free is a valid result, not a failure.

Use cases for AI search visibility data

GEO and SEO teams

Track whether ChatGPT, Perplexity and Google AI Overview recommend you for your money keywords, which domains they cite instead of yours, and which pages to earn links or mentions on. citedDomains is a ready list of outreach targets.

Brand and product marketing

Measure share of voice in AI against named competitors every week, see which platform under-represents you (byPlatform), and read the snippet to see how you are described.

Competitive intelligence

untrackedBrandsListed shows the brands the AI recommends that you are not watching yet — the competitors your buyers actually hear about.

Agencies

Run one input per client on a schedule, export to Google Sheets or Looker Studio, and report AI visibility next to classic rankings.

AI agents and LLM apps

An agent can call the Actor through MCP with a brand and a few questions and receive flat rows with stable field names — no parsing of free text.

Integrations

Apify API

curl -X POST "https://api.apify.com/v2/acts/lergassy~ai-visibility-tracker/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"brandName":"Notion","brandDomain":"notion.com","competitors":["Obsidian | obsidian.md"],"queries":["best note taking app"],"platforms":["chatgpt","perplexity"]}'

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("lergassy/ai-visibility-tracker").call(run_input={
"brandName": "Notion",
"brandDomain": "notion.com, notion.so",
"competitors": ["Obsidian | obsidian.md", "Evernote | evernote.com"],
"queries": ["best note taking app", "Notion alternatives"],
"platforms": ["chatgpt", "google_ai_overview", "perplexity"],
"includeShareOfVoice": True,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["platformName"], row["query"], row.get("brandMentioned"), row.get("brandCited"))

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_TOKEN>' });
const run = await client.actor('lergassy/ai-visibility-tracker').call({
brandName: 'Notion',
queries: ['best note taking app'],
platforms: ['chatgpt', 'gemini'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

No-code tools and schedules

Connect the Actor to Google Sheets, Make, n8n, Zapier, Slack or a webhook from the Integrations tab. Create a schedule (for example every Monday) to build a weekly AI visibility trend; each run's rows carry answeredAt.

MCP server for AI agents

Add the Apify MCP server (https://mcp.apify.com) to Claude Desktop, Cursor or your agent and call lergassy/ai-visibility-tracker as a tool.

🤖 For AI Agents & LLM Apps

Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/ai-visibility-tracker).

Purpose: for a brand, its competitors and a list of questions, return one row per question × AI platform saying whether the brand is mentioned and cited, its position, which competitors appear and which domains are cited.

Minimal input:

{ "brandName": "Notion", "brandDomain": "notion.com", "queries": ["best note taking app"], "platforms": ["chatgpt"] }

Output: type, query, platform, platformName, brand, hasAnswer, brandMentioned, brandPosition, brandListRank, brandMentionCount, brandCited, brandCitationRank, competitorsMentioned, competitorsCited, trackedBrandsInOrder, sentiment, sentimentScore, mentionSnippet, citedDomains, citedUrls, citationsCount, brandsListed, untrackedBrandsListed, fanOutQueries, answerLength, model, country, countryCode, language, checkUrl, answeredAt, fromCache, scrapedAt; optional answerMarkdown. Summary row (type summary): brandMentionRatePct, brandShareOfVoicePct, brandCitationRatePct, brandAvgPosition, shareOfVoice[], byPlatform[].

Behaviors an agent should know:

  • platforms values: chatgpt, google_ai_overview, google_ai_mode, gemini, perplexity, claude; default chatgpt.
  • every question runs on every platform; maxChecks (default 100) caps the product.
  • hasAnswer: false rows (no AI Overview shown) and error rows are free; each answered row is one check event.
  • AI answers vary between runs; one row is one sample, not a ranking guarantee.
  • Claude rows have null citation fields (no web search).
  • sentiment is a keyword heuristic for English answers only.

❓ FAQ

The Actor asks public AI assistants and search engines the questions you provide and analyses the answers they give to anyone. It does not log in to user accounts or collect personal data. Using the results for marketing research is common practice, but you are responsible for how you use the data; if in doubt, consult a lawyer.

Do I need a ChatGPT, OpenAI, Google or Perplexity account or API key?

No. Answers are collected through a licensed data provider; you only need an Apify account.

How is the position calculated?

brandPosition orders the tracked brands (you + your competitors) by where each is first named in the answer: 1 means you are named before every competitor you listed. brandListRank is your place in the list or table of options the AI presented (brandsListed), which also counts brands you did not track. brandsListed is extracted from the answer's tables, numbered headings and bold list items — a heuristic that can occasionally include a generic label.

How is the tone (sentiment) decided?

It is a transparent keyword heuristic, not an AI judgement: in the sentences that mention your brand, praise words (best, recommended, powerful, easy…) are counted against criticism words (limited, expensive, drawbacks, learning curve…). The difference is sentimentScore; above zero is positive, below zero is negative. It works for English answers only and is null for other languages.

Why does Claude have no cited domains?

Claude is asked without web search, so the row shows what Claude says from its own training knowledge — useful for checking whether a model "knows" your brand. Web search on Claude would make each check several times more expensive.

Why is a Google AI Overview row empty?

Google shows an AI Overview only for some questions and in some countries. Then the row says hasAnswer: false with the reason and is not charged. Google AI Mode is also not available in every country; an unavailable combination returns a free error row.

Will I get the same answer every time?

No. AI answers change between sessions, days and locations. Track the trend over several runs and many questions rather than reading one row as a fixed ranking.

Can I use AI Visibility Tracker with the Apify API?

Yes — see the API, Python and JavaScript examples above. Results are available as JSON, CSV, Excel or through webhooks.

Can I use it through an MCP server?

Yes. Connect the Apify MCP server to Claude Desktop, Cursor or your own agent; the Actor is callable as a tool with the input shown in the agent section.

Can I integrate it with other apps?

Yes: Google Sheets, Make, n8n, Zapier, Slack and webhooks are available in the Integrations tab.

How much does one check cost?

$0.0375 per question per platform on the Starter plan, $0.03375 on Scale and $0.03 on Business and above; $0.05 on the Free plan. Rows without an answer and error rows are free, and there is no fee per run.

Is there one row per question?

There is one row per question and platform: 10 questions on 3 platforms give 30 rows. The optional summary adds one row.

Your feedback

Missing a platform, a field or a country? Open an issue in the Issues tab — we read every one. If the Actor helps you, a short review helps other marketers find it.

You might also like

ActorWhat it does
Keyword Search Volume CheckerGoogle search volume, CPC, keyword difficulty and intent for keyword lists
Keyword Suggestions ScraperKeyword suggestions from Google, YouTube, Amazon, Bing, eBay and TikTok autocomplete
Competitor Keywords FinderEvery keyword a competitor domain ranks for on Google, with position, volume and traffic
Bulk Domain Authority CheckerDomain rank, backlinks, referring domains and spam score for thousands of domains