AI Visibility Tracker - ChatGPT, Perplexity, Claude Mentions avatar

AI Visibility Tracker - ChatGPT, Perplexity, Claude Mentions

Under maintenance

Pricing

from $6.00 / 1,000 checks

Go to Apify Store
AI Visibility Tracker - ChatGPT, Perplexity, Claude Mentions

AI Visibility Tracker - ChatGPT, Perplexity, Claude Mentions

Under maintenance

Track whether OpenAI, Perplexity and Claude mention and cite your brand for the prompts your buyers ask: rank, list position, cited domains, competitors, share of voice and changes since the last run. Official APIs with your own keys, small fee per check.

Pricing

from $6.00 / 1,000 checks

Rating

0.0

(0)

Developer

Maksym Kotenko

Maksym Kotenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Find out whether AI search recommends your brand or your competitors. Give the Actor your brand, your competitors and the questions your buyers ask; it asks OpenAI (web search), Perplexity and Claude (web search) through their official APIs and tells you, for every answer:

  • whether your brand is mentioned, and its rank among all tracked brands,
  • its position in the answer's list or table ("recommended as #2"),
  • whether the answer cites your website, and at which position,
  • which competitors appear, where, and which of their sites are cited,
  • every cited domain and the searches the AI ran,
  • what changed since your last run: gained, lost, moved up or down, new and lost cited domains.

A summary row adds mention rate, citation rate, average rank, share of voice and top cited domains per engine, with deltas to the previous run. Schedule it weekly and you have a GEO / AEO visibility report without a SaaS subscription.

Bring your own keys, pay the providers at cost

The Actor uses your own OpenAI, Perplexity and Anthropic API keys, any one of them is enough. The providers bill you directly at their published prices; the Actor charges only a small fee per check (see the Pricing tab). Typical provider cost of one check in October 2026:

EngineWhat runsProvider cost per check
OpenAIResponses API, web_search tool, gpt-6-lunaabout $0.011 ($0.01 per web search call plus tokens)
PerplexityAgent API, fast presetabout $0.002 ($0.001 per search plus tokens)
ClaudeMessages API, web_search tool, claude-haiku-5-5about $0.012-0.035 ($0.01 per search, 1-3 searches, plus tokens)

Most trackers in the Store bundle the model cost into $0.04-$0.30 per check. With your own keys you pay the provider price plus the Actor fee, and you can see the exact usage on your provider dashboard. Perplexity reports the cost of each answer; it is in usage.providerCostUsd of each row.

Keys are secret inputs: Apify stores them encrypted, the Actor never logs them, never writes them to the dataset or key-value store, and masks anything that looks like a key in provider error messages. OpenAI requests are sent with store: false. For Claude, web search must be allowed for your organization in the Claude Console (it is unless an admin switched it off).

Quick start

  1. Add your brand, e.g. HubSpot, and your domain hubspot.com.
  2. Add competitors, one per line: Zoho CRM | zoho.com, Pipedrive | pipedrive.com.
  3. Add 5-20 prompts your buyers ask: What is the best CRM for a small business?.
  4. Paste at least one API key and run. Without any key the run returns only free MISSING_KEY rows and a status message naming the key to add.

Input

FieldWhat it does
brandBrand name as people write it. A capitalised name (HubSpot) matches Hubspot and HUBSPOT but not the plain word; a lowercase name (ahrefs) matches any case.
brandDomainsYour domains; subdomains count. Used for citations. A domain written in the answer text also counts as a mention.
brandAliasesProduct names, abbreviations, old names.
competitorsName, `Name
promptsUp to 200 questions. Each prompt x engine x run is one check.
enginesAny of openai, perplexity, claude; all three by default. Engines without a key are skipped with a free error row.
openaiApiKey, perplexityApiKey, anthropicApiKeyYour keys, secret.
countryTwo-letter code (US, DE, GB...). Every engine searches as if the user were there.
openaiModelDefault gpt-6-luna. Any Responses API model that supports web search, e.g. gpt-6.1-sol.
forceWebSearchOn by default: every OpenAI answer searches the web, and Claude is told to search before it answers. Off: the model decides, like ChatGPT and claude.ai.
perplexityPresetfast (default, successor of Sonar) or low (multi-step search).
claudeModelDefault claude-haiku-5-5, the cheapest. claude-sonnet-5-5 (about $0.05 per check) or claude-opus-5-5 (about $0.09) are closer to claude.ai.
claudeMaxSearches1-10, default 3: the most web searches Claude may run for one answer.
runsPerPrompt1-5. Answers vary between requests; 2-3 runs give a steadier rate.
maxChecksSafety cap, default 100. Checks above it are not asked and not charged.
trackChanges, stateKeyCompare with the previous run of the same brand and key.
includeAnswerFull answer text in each row, on by default.

Output

One row per check:

{
"type": "check",
"prompt": "What is the best CRM for a small business?",
"engine": "perplexity",
"model": "openai/gpt-6-luna",
"preset": "fast@2026-10-16.0",
"run": 1,
"country": null,
"brand": "HubSpot",
"brandMentioned": true,
"brandRank": 2,
"brandListPosition": 2,
"brandCited": true,
"brandCitationPosition": 4,
"brandInSources": true,
"brandMentions": 2,
"brandContext": "2. HubSpot CRM - the easiest start: a free CRM with contacts, deals and email tracking, though paid tiers climb quickly.",
"change": { "status": "up", "previousCheckedAt": "2026-10-14T08:00:12.000Z", "wasMentioned": true, "previousRank": 3, "rankChange": 1, "wasCited": false, "newCitedDomains": ["hubspot.com"], "lostCitedDomains": [] },
"mentionedBrands": ["Zoho CRM", "HubSpot", "Pipedrive", "Salesforce"],
"competitors": [
{ "name": "Zoho CRM", "mentioned": true, "rank": 1, "listPosition": 1, "cited": true },
{ "name": "Pipedrive", "mentioned": true, "rank": 3, "listPosition": 3, "cited": true }
],
"citations": [
{ "position": 1, "url": "https://www.pcmag.com/picks/the-best-crm-software", "domain": "pcmag.com", "title": "The Best CRM Software for 2026 | PCMag", "owner": null },
{ "position": 4, "url": "https://www.hubspot.com/products/crm", "domain": "hubspot.com", "title": "Free CRM Software | HubSpot", "owner": "brand" }
],
"citedDomains": ["pcmag.com", "g2.com", "zoho.com", "hubspot.com", "pipedrive.com"],
"sourcesCount": 8,
"searchQueries": ["best CRM for small business"],
"answer": "The best CRM for a small business depends on ...",
"answerLength": 640,
"incomplete": false,
"usage": { "inputTokens": 3121, "outputTokens": 236, "searchCalls": 1, "providerCostUsd": 0.00156 },
"checkedAt": "2026-10-21T08:00:03.000Z"
}
  • brandRank - order of first mention among your brand and the competitors you track (1 = mentioned first).
  • brandListPosition - the number of the list item, heading or table row whose line names your brand; null when the answer is not a list.
  • change.status - new (first time), gained, lost, up, down, same or absent (not mentioned either time).
  • Error rows ("type": "error") are free: AUTH_FAILED, QUOTA_EXCEEDED, RATE_LIMITED, PROVIDER_ERROR, TIMEOUT, NO_ANSWER, PARSE_ERROR, REFUSED, INVALID_REQUEST, MISSING_KEY. An answer the provider has already billed is never requested again. A rejected key or empty balance stops that engine after the first error, so you are not charged for checks that cannot run.
  • The summary row ("type": "summary", free) and the SUMMARY record of the key-value store hold overall and byEngine metrics: brandMentionRate, brandCitationRate, brandVisibilityRate, brandTopRate, averageRank, shareOfVoice, topCitedDomains, plus change against the previous run.

Tracking over time

With trackChanges on, the Actor keeps the last result of every check in your named key-value store ai-visibility-tracker-state, one record per tracking key and brand. The summary compares with the last complete run that asked the same prompts on the same engines; a run stopped by the spending limit or a failed engine is not used as the baseline. Create a schedule (Saved tasks - Schedule) that runs the same task weekly: each row shows what moved, and the summary shows how your mention and citation rates changed. Use a different stateKey per client or project.

Good to know

  • These are answers of the official APIs, not screenshots of the consumer apps. ChatGPT, the Perplexity app and claude.ai use their own prompts and models, so their answers can differ; the APIs give a stable, repeatable signal of what the engines retrieve and recommend.
  • AI answers can be wrong, incomplete or out of date. Check facts in an answer before you rely on them; the Actor measures visibility, it does not verify what the AI says.
  • AI answers are not deterministic. Use runsPerPrompt 2-3 for decisions, and compare rates over several runs rather than single answers.
  • Mention matching is by name, alias and domain on word boundaries. It does not judge sentiment: read brandContext to see how you are described.
  • Citations are shown as links to the original sources; when you publish results, keep the citations visible, as OpenAI and Anthropic ask for answers based on web search.
  • Claude splits an answer into cited passages; citations keeps their order and searchQueries lists the searches it ran. The text Claude writes before or between its searches ("I'll look that up") is not part of the analysed answer.
  • Gemini is not supported: the Gemini API terms do not allow monitoring or analysing grounded search results.

Pricing

Pay per event: one check = one answer of one engine to one prompt, analysed and stored. Error rows, skipped checks and the summary are free. The run stops before any check that your run spending limit cannot pay for, so no provider call is made that the Actor cannot finish. See the Pricing tab for the per-check price on your plan.

Support

Open an issue on the Issues tab with the run ID. Never paste your API keys into an issue.