AI Visibility Tracker

Check whether ChatGPT, Perplexity, Gemini and Google AI Overviews mention and cite your brand: rank, citations, competitors and share of voice for each prompt. $0.01 per check.

Hosted MCP Server

npx add-mcp 'https://mcp.apify.com/?tools=gaelasao/ai-visibility-tracker'

Installs into Claude Code, Codex, Cursor and more

Documentation

AI Visibility Tracker: ChatGPT, Perplexity, Gemini, AIO (gaelasao/ai-visibility-tracker) Actor

AI visibility tracker and AI rank tracker for brand monitoring: check if ChatGPT, Perplexity, Gemini, Google AI Overview and AI Mode mention and cite your brand. LLM brand mentions, rank, citations, sources, competitors and share of voice for GEO and AI search visibility. $0.01 per check.

Pricing

from $8.00 / 1,000 ai answer checkeds

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 section below.

Each client library has reference documentation the quickstart does not restate: JavaScript/TypeScript (npm install apify-client) and Python (pip install apify-client).

README

Find out whether ChatGPT, Perplexity, Gemini, Google AI Overviews and Google AI Mode mention and cite your brand when people ask the questions your customers ask. For each prompt and engine you get one row:

  • is your brand named, and in which position;
  • is your website one of the sources;
  • which competitors are named or cited;
  • your share of voice;
  • which websites the engine relied on.

Built for AI visibility tracking (also called generative engine optimization, GEO, or AI search optimization) by marketers, SEO teams, agencies and AI agents. $0.01 per check, with no subscription. That is about 5 times less than typical AI rank trackers.

Real output for Notion against Coda, Obsidian and Evernote on ChatGPT, Perplexity, Gemini and Google AI Overview: mention, rank, citation, competitors, share of voice and top sources

Ready-to-run examples

Open an example, then replace the brand, competitors and prompts with yours. Each asks 2 prompts and has a $0.25 spending limit.

ExampleWhat is already configured
Check if ChatGPT mentions your brandChatGPT with web search, HubSpot against Salesforce, Pipedrive and Zoho
Track your citations in PerplexityPerplexity, Shopify against WooCommerce, BigCommerce and Wix
Is your brand in Google AI Overviews?Google AI Overview, Mailchimp against Klaviyo, Brevo and MailerLite
Your brand's visibility in GeminiGemini, Canva against Figma, Adobe Express and Visme
Your brand in Google AI ModeGoogle AI Mode, Airbnb against Vrbo, Expedia and Tripadvisor
AI share of voice against competitors4 engines, Asana against Trello, ClickUp, Jira and Wrike
AI visibility audit for a SaaS brand4 engines, Slack against Microsoft Teams, Google Chat, Discord and Zoom
Which product brands AI assistants recommendChatGPT, Perplexity and AI Overview, Hoka against Nike, Brooks, Asics and New Balance
The websites AI engines cite in your niche (GEO)ChatGPT, Perplexity and AI Overview, Semrush against Ahrefs, Moz and Similarweb
Visibilité de votre marque dans ChatGPT (France)4 moteurs depuis la France, Doctolib face à Maiia, Qare et Livi

What does AI Visibility Tracker do?

You enter your brand, your website and the prompts to check, for example best note-taking app for teams. The Actor asks each selected engine every prompt, from the country you choose, and analyses the answer:

FieldWhat it tells you
brand_mentioned, brand_mention_countWhether the answer names your brand (or one of its other names), and how often
brand_rankOrder of your first mention among the brands named: 1 means your brand comes first
brand_cited, brand_citation_rank, brand_cited_urlsWhether one of your pages is a source of the answer, its position among the sources, and which pages
competitors_mentioned, competitors_citedThe competitors you listed that the answer names or cites, in order
share_of_voiceYour mentions divided by all mentions of you and your competitors, from 0 to 1
top_cited_domains, sourcesThe websites the engine used, in order: the pages to win a mention on
brands_detectedChatGPT only: every brand ChatGPT marked in its answer, a quick way to spot competitors you did not list
fan_out_queriesThe searches the engine ran to build its answer, when it reports them
answer_excerpt, answer_textThe text around your first mention, and the full answer (up to 6,000 characters)
statusok, no_ai_answer (Google showed no AI answer for that query) or error (failed check, not charged)

The run also writes a SUMMARY record, linked in the Output tab:

  • mention rate, citation rate, average rank and share of voice, overall and for each engine;
  • each competitor's mention rate;
  • the most cited domains;
  • what was charged.

Output example

A real row from a run on 25 October 2026: ChatGPT, asked from the United States, for the prompt best note-taking app for teams. The answer text and the source list are shortened here.

{
  "prompt": "best note-taking app for teams",
  "engine": "chatgpt",
  "status": "ok",
  "brand": "Notion",
  "brand_mentioned": true,
  "brand_mention_count": 5,
  "brand_rank": 1,
  "brand_cited": true,
  "brand_citation_rank": 4,
  "brand_cited_urls": [
    "https://www.notion.com/"
  ],
  "competitors_mentioned": [],
  "competitors_cited": [],
  "share_of_voice": 1,
  "sources_count": 11,
  "top_cited_domains": [
    "guideflow.com",
    "stacy.page",
    "dupple.com",
    "notion.com",
    "onenote.com"
  ],
  "brands_detected": [
    "Notion",
    "Microsoft OneNote",
    "Confluence",
    "Slite",
    "Google Docs",
    "Fathom"
  ],
  "fan_out_queries": [
    "best team note taking apps comparison Notion Microsoft OneNote Slack AI meeting notes 2026",
    "best collaborative note-taking apps for teams pricing features Notion Slite Confluence Google Docs"
  ],
  "answer_excerpt": "# Best note-taking apps for teams (2026) **My top recommendation is Notion** for most teams. It combines shared notes, documentation, team wikis, databases, and project organization in one workspace.…",
  "model": "gpt-6",
  "country": "US",
  "language": "en",
  "checked_at": "2026-10-25T18:02:46.461Z",
  "checks_charged": 1
}

Which AI engines are covered?

EngineHow it is askedChecks per prompt
Google AI OverviewGoogle search from the chosen country, with the AI Overview loaded1
Google AI ModeGoogle AI Mode answer (available in fewer countries)1
ChatGPTChatGPT with web search1
GeminiGemini answer1
PerplexityPerplexity sonar with web search2

By default the Actor asks Google AI Overview, ChatGPT, Perplexity and Gemini. Pick the engines you need in the input. All five engines were tested on 25 October 2026 from the United States and from France. The answers come from DataForSEO's SERP and AI Optimization APIs, collected live at run time.

How to use it

  1. Enter your brand and your websites (for citation checks).
  2. Add the prompts to check: up to 100 per run, as a buyer would type them.
  3. Optionally list up to 10 competitors, as a name or as name | domain, to measure share of voice.
  4. Choose the engines and the country, then start. Download the rows as JSON, CSV or Excel, or read the SUMMARY.
{
  "brand": "Notion",
  "brandDomains": ["notion.so", "notion.com"],
  "competitors": ["Coda | coda.io", "Obsidian | obsidian.md", "Evernote | evernote.com"],
  "prompts": ["best note-taking app for teams", "notion alternatives", "best wiki software for startups"],
  "engines": ["google_ai_overview", "chatgpt", "perplexity", "gemini"],
  "country": "US"
}

Answers change from one run to the next and depend on location, so treat one run as a snapshot. To follow a trend, save your input as a task and schedule it weekly: each run keeps the same columns.

How much does it cost?

$0.01 per check, where a check is one prompt asked to one engine. A Perplexity answer counts as 2 checks, because Perplexity charges more for each answer. There is also a $0.01 start fee per run that returns at least one answer. Lower prices apply on higher Apify plans.

RunChecksPrice
10 prompts × Google AI Overview, ChatGPT, Gemini30$0.31
10 prompts × the 4 default engines50$0.51
100 prompts × the 4 default engines500$5.01
  • Failed checks are free. They are stored with status: "error" and the reason.
  • Google showing no AI answer is a result, so it is charged like an answer: status: "no_ai_answer".
  • Your maximum cost per run is never exceeded. Checks are booked before the Actor asks the engines. When the limit is reached, the run stops cleanly and its status message says how many checks are left.
  • Free Apify plans can check 2 prompts per run, to try the Actor.

How does it compare?

This ActorSingle-engine scrapersAI rank trackers
Engines in one run513 to 5
Brand mention, rank, citation and share of voiceYesNo: raw answers onlyYes
CompetitorsUp to 10NoYes
Typical price per prompt and engine$0.01$0.002 to $0.013$0.05 to $0.09

Use it from an AI agent (MCP)

The Actor is available as a tool through the Apify MCP server. In Claude, Cursor, VS Code or any MCP client, connect to:

https://mcp.apify.com/?tools=gaelasao/ai-visibility-tracker

Then ask, for example: "Check whether ChatGPT, Perplexity and Google AI Overviews mention Notion for these 10 prompts in the US, and compare with Coda and Obsidian."

FAQ

How is a mention detected?

The Actor looks for your brand name and its other names as whole words, ignoring case, in the text of the answer. Link targets and bare URLs are ignored, so a link to your site is not counted as a mention; it counts as a citation if it is a source. Names that are common words, such as Apple, can match in other senses. Use specific names or aliases.

How is a citation detected?

A citation is a source of the answer whose domain is one of your websites or one of their subdomains, for example help.notion.so for notion.so. Without websites in the input, citation fields stay empty.

Why is there no AI Overview for some prompts?

Google shows AI Overviews for some queries only, and less often for brand or shopping queries. Those rows have status: "no_ai_answer". This also tells you which prompts have no AI Overview to win.

Will I see the same answers in my browser?

Not exactly. AI answers vary between runs and users, and depend on location, language, signed-in history and the model version. The Actor asks from the country and language you choose, without a personal history. Run the same prompts regularly and compare rates rather than single answers.

Which countries and languages are supported?

Every country DataForSEO serves for each engine. Enter an ISO code such as US, GB, DE or FR, or a country name. The language defaults to the country's main language. Google AI Mode and some engines are available in fewer countries; an unsupported combination returns a free error row.

Can I find out how many people ask these questions?

Yes, with Keyword Research API. It returns the Google search volume and the AI search volume of each prompt or keyword, so you can pick the prompts worth tracking.

Is the data source reliable?

The answers come live from DataForSEO, a data provider for SEO tools, through its SERP and AI Optimization APIs. Each row keeps the time of the check and the model when reported, and the SUMMARY reports what the source charged.

Changelog

This Actor's version history is a separate document: https://apify.com/gaelasao/ai-visibility-tracker/changelog.md

Actor input Schema

brand (type: string):

The brand or product name to look for in the answers, for example Notion. Matching ignores case and needs whole words.

brandDomains (type: array):

Your domains, for example notion.so. An answer citing a page of these domains or their subdomains counts as a citation. Up to 5. Leave empty to skip citation checks.

brandAliases (type: array):

Other spellings or product names that count as a mention of your brand, for example Notion AI. Up to 10.

prompts (type: array):

The questions to ask each engine, as a buyer would type them, for example best CRM for small business. Up to 100 prompts of up to 500 characters. Each prompt is checked once per selected engine.

competitors (type: array):

Up to 10 competitors, as a name or as name | domain, for example Coda | coda.io. Their mentions and citations are counted to compute your share of voice.

engines (type: array):

Engines to ask. Each prompt costs one check per engine ($0.01), and Perplexity counts as 2 checks. Google AI Mode is available in fewer countries.

country (type: string):

Where the answers are asked from: an ISO code such as US, GB, DE or FR, or a country name.

language (type: string):

Language code such as en, fr or de. Leave empty for the country's main language (English where unknown).

Actor input object example

{
  "brand": "Notion",
  "brandDomains": [
    "notion.so",
    "notion.com"
  ],
  "prompts": [
    "best note-taking app for teams",
    "notion alternatives"
  ],
  "competitors": [
    "Coda | coda.io",
    "Obsidian | obsidian.md",
    "Evernote | evernote.com"
  ],
  "engines": [
    "google_ai_overview",
    "chatgpt",
    "perplexity",
    "gemini"
  ],
  "country": "US"
}

Actor output Schema

results (type: string):

No description

csv (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

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 = {
    "brand": "Notion",
    "brandDomains": [
        "notion.so",
        "notion.com"
    ],
    "prompts": [
        "best note-taking app for teams",
        "notion alternatives"
    ],
    "competitors": [
        "Coda | coda.io",
        "Obsidian | obsidian.md",
        "Evernote | evernote.com"
    ],
    "country": "US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("gaelasao/ai-visibility-tracker").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

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 = {
    "brand": "Notion",
    "brandDomains": [
        "notion.so",
        "notion.com",
    ],
    "prompts": [
        "best note-taking app for teams",
        "notion alternatives",
    ],
    "competitors": [
        "Coda | coda.io",
        "Obsidian | obsidian.md",
        "Evernote | evernote.com",
    ],
    "country": "US",
}

# Run the Actor and wait for it to finish
run = client.actor("gaelasao/ai-visibility-tracker").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

echo '{
  "brand": "Notion",
  "brandDomains": [
    "notion.so",
    "notion.com"
  ],
  "prompts": [
    "best note-taking app for teams",
    "notion alternatives"
  ],
  "competitors": [
    "Coda | coda.io",
    "Obsidian | obsidian.md",
    "Evernote | evernote.com"
  ],
  "country": "US"
}' |
apify call gaelasao/ai-visibility-tracker --silent --output-dataset

MCP server setup

{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gaelasao/ai-visibility-tracker"
        }
    }
}

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/VjsfjKz5UdYyYsl7i/builds/9ZM7fEhVsaDHCyO80/openapi.json