AI Answer Visibility Tracker: ChatGPT, Perplexity, Gemini, Grok
Pricing
Pay per event
AI Answer Visibility Tracker: ChatGPT, Perplexity, Gemini, Grok
Check if ChatGPT (OpenAI), Perplexity, Gemini, Claude and Grok mention your brand, at what position, which competitors they name and which URLs they cite. Share-of-voice summary. Bring your own API keys.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Damodaran Dhanusuraman
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Security
Limited permissionsShare
AI Answer Visibility Tracker: ChatGPT, Perplexity, Gemini, Claude, Grok
AI brand visibility API: check whether ChatGPT (OpenAI API), Perplexity, Gemini, Claude and Grok mention your brand and competitors for your prompts, with cited URLs. Bring your own API keys. Free mock mode to try the output.
Check whether AI answer engines mention your brand. For each prompt your buyers might ask ("best CRM for startups", "Notion alternatives"), this Actor sends the prompt to the OpenAI, Perplexity, Gemini, Anthropic (Claude) and xAI (Grok) APIs with web search turned on, then returns plain JSON:
- Is your brand mentioned? How many times, its position among all brands named, and its rank in a list if the answer has one
- Which competitors are named, in order, and which of your competitors are not named
- Which URLs and domains are cited, and whether your own site is one of them
- A share-of-voice summary across all prompts and engines: mention rate per engine, top cited domains, and prompts where competitors appear but your brand does not
It extracts facts from the answer text and citations. It does not score sentiment or guess.
Bring your own API keys (BYOK)
You add your own provider API keys. You pay each provider directly for its API usage, on your own account. Keys are Apify secret inputs (encrypted), sent only in request headers to that provider, and redacted from error messages and output.
| Engine id | Provider API used | Key input | Default model |
|---|---|---|---|
openai | OpenAI Responses API + web_search tool | openaiApiKey | gpt-4.1-mini |
perplexity | Perplexity Sonar chat completions | perplexityApiKey | sonar |
gemini | Gemini API + Google Search grounding | geminiApiKey | gemini-2.5-flash |
claude | Anthropic Messages API + web search tool | anthropicApiKey | claude-haiku-4-5 |
grok | xAI Responses API + web_search tool | xaiApiKey | grok-4.7 |
Models are configurable with the models input, e.g. { "openai": "gpt-4.1", "grok": "grok-4.3" }. Providers rename and retire models often, so if a default stops working, set a current model name from the provider's docs. Engines without a key are skipped and not billed.
Mock mode (mockMode: true) returns deterministic fake answers with no API calls and no charges. Use it to try the output format and set up integrations (Sheets, Slack, n8n) before using real keys.
Please read: limits and testing status
- API answers are not the same as the consumer apps. What the ChatGPT, Gemini, Claude, Perplexity or Grok apps show a signed-in user can differ (different models, retrieval, location and personalisation). Treat results as a consistent, repeatable proxy for AI visibility, not an exact copy of what any one person sees.
- Answers vary between runs. Use
repeats(2 to 5) and compare trends over time rather than single answers. - Testing so far: the engine adapters follow each provider's public API docs and are covered by automated tests against hand-written sample responses, and full runs have been done in mock mode. They have not yet been run against every live provider API. If an engine returns an error or odd output, please report it in the Issues tab with the engine id and error message (never paste your key), and it will be fixed.
- Gemini citations come back as Google redirect links, so the source domain is taken from the citation title where possible.
Quick start
- Enter your brand, e.g.
Notion, orNotion | notion.soso citations of your own site are detected. - Add competitors, one per line, e.g.
Coda | coda.io. - Add 5 to 20 prompts your buyers might ask an AI assistant, e.g.
best wiki tool for a startup team. - Paste at least one API key (OpenAI, Perplexity, Gemini, Anthropic or xAI), or turn on Mock mode to try it for free.
- Run. Open the Summary for share of voice, or export answers to CSV, Excel or Google Sheets.
Input example
{"brand": "Notion | notion.so, notion.com","brandAliases": ["Notion.so", "Notion AI"],"competitors": ["Confluence | atlassian.com", "Coda | coda.io", "ClickUp"],"prompts": ["best wiki tool for a startup team", "Notion alternatives for project documentation"],"engines": ["openai", "perplexity", "gemini"],"repeats": 2,"openaiApiKey": "<your key>", "perplexityApiKey": "<your key>", "geminiApiKey": "<your key>"}
brand is a plain string ("Acme" or "Acme | acme.com"). Through the API, competitors can also be objects: { "name": "Coda", "aliases": ["Coda.io"], "domains": ["coda.io"] }.
Other inputs: country (two-letter code for OpenAI web search location), includeAnswerText (store the raw answer, up to 20,000 characters), includeSummaryRow, maxAnswers (budget guard, default 500) and maxConcurrency (default 4).
Output
One answer row per prompt × engine × repeat, plus one summary row (also saved as SUMMARY in the key-value store). Example answer row from mock mode (sample data, not a real AI answer):
{"recordType": "answer", "prompt": "best wiki tool for a startup team", "engine": "openai", "repeat": 1, "status": "ok","analysis": {"brandMentioned": true, "brandMentionCount": 1, "brandPosition": 2, "brandListRank": 2,"competitorsMentioned": [{ "name": "Coda", "position": 1, "listRank": 1, "count": 1 }, { "name": "Confluence", "position": 3, "listRank": 3, "count": 1 }],"competitorsNotMentioned": ["ClickUp"],"mentionOrder": ["Coda", "Notion", "Confluence", "Obsidian"],"brandCited": true, "brandCitationRanks": [2],"citations": [{ "rank": 1, "url": "https://coda.io/", "domain": "coda.io", "belongsTo": "Coda" }],"citedDomains": ["coda.io", "notion.so", "atlassian.com", "reddit.com"]},"answerText": "…"}
Summary row fields: brandMentionRate, per-brand mentionRate, shareOfVoice, avgPosition, answersCitingOwnDomain, byEngine mention rates, topCitedDomains, promptsWhereCompetitorsWinAndBrandMissing.
Pricing (pay per event)
- $0.008 per engine answer (
engine-answer), charged only for successful real answers. Failed, skipped and mock answers are free. - $0.10 per brand report (
brand-report), the summary row, charged once per run when at least one real answer succeeded. Mock runs are free. - Your provider API costs are separate and billed by each provider on your own key.
Example: 20 prompts × 3 engines × 1 repeat = 60 answers = $0.48 + $0.10 report = $0.58 per run on Apify, plus your provider API costs.
Use cases
- GEO / AEO / LLM SEO agencies tracking client visibility in AI answers
- SaaS and e-commerce marketers checking which competitors AI assistants recommend
- Content teams finding which pages and domains AI engines cite for their topics
- AI agents running SEO workflows through the Apify API or MCP server
How it compares
- vs. SaaS AI-visibility dashboards: those usually charge a monthly fee and run the queries for you. Here you pay per answer, use your own provider keys, and get raw JSON you can put anywhere. There is no dashboard and no stored history; you build trends by running it on a schedule.
- vs. checking ChatGPT by hand: it is repeatable and covers many prompts and engines in one run, but it uses the provider APIs, which can answer differently from the consumer apps (see limits above).
- Testing status, honestly: full runs so far are in mock mode, plus automated tests against sample responses. It has not yet been run against every live provider API.
Schedule it
- Save your brand, competitors and prompts as a Task in Apify Console.
- Add an Apify Schedule (weekly is usually enough; use
repeats: 2or more for steadier numbers). - Send the
SUMMARYrecord to Google Sheets, Slack, Notion, n8n, Make or Zapier and chartbrandMentionRateper engine over time.
Use in n8n, Make, Clay or any HTTP tool
POST https://api.apify.com/v2/acts/damodaran_dhanuauraman~ai-answer-visibility-tracker/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>Content-Type: application/json{ "brand": "Acme | acme.com", "competitors": ["Rival | rival.com"], "prompts": ["best tool for X"], "engines": ["openai"], "openaiApiKey": "<your key>" }
Start with "mockMode": true to wire up your workflow for free, then add real keys. In n8n or Make, use the Apify "Run Actor" module (or the HTTP call above) on a schedule, filter rows where recordType is summary, and append them to a sheet.
FAQ
Does it scrape the ChatGPT or Gemini web apps? No. It only calls official provider APIs with your keys.
Is my API key safe? Keys are Apify secret inputs (encrypted), sent only in request headers to the provider, and redacted from errors and output.
Why do results vary? AI answers are non-deterministic. Use repeats and track trends.
Can I try it without API keys? Yes. Mock mode returns sample answers and charges nothing.
What does a run cost? $0.008 per successful real answer plus $0.10 per report, plus your own provider API costs. 20 prompts × 3 engines ≈ $0.58 on Apify.
Which engines should I start with? Pick the one or two your buyers use most, run a few prompts, then widen.
Something broke for one engine? Open an issue in the Issues tab with the engine id and the error text. Do not include your key.
Keywords: AI visibility tracker, ChatGPT rank tracker, LLM SEO, GEO tool, AEO, generative engine optimization, AI search visibility, brand mentions in ChatGPT, Perplexity rank tracking, Gemini citations, Grok brand mentions, share of voice AI.