AI Search Visibility Tracker avatar

AI Search Visibility Tracker

Pricing

from $10.00 / 1,000 answer analyzeds

Go to Apify Store
AI Search Visibility Tracker

AI Search Visibility Tracker

Ask ChatGPT, Perplexity, Claude and Gemini the questions your buyers ask and see how often your brand is mentioned, its rank in the answer, competitor share of voice and cited domains. Bring your own API keys. By Steadfeed.

Pricing

from $10.00 / 1,000 answer analyzeds

Rating

0.0

(0)

Developer

Steadfeed

Steadfeed

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Security

Limited permissions

Share

Does ChatGPT or Perplexity recommend your brand? This Actor asks ChatGPT (OpenAI API) and Perplexity the questions your buyers ask. It then measures how often your brand is named, where it ranks against your competitors, which websites the AI cites, and the tone of the mention. Schedule it weekly to track your AI search visibility (GEO / AEO) over time.

By Steadfeed.

How it works

  1. You list your brand, a few competitors and the questions buyers ask (or a category and use cases, and the Actor writes the questions).
  2. The Actor sends each question to each AI you select, using your own API keys.
  3. Every answer is analysed. You get one dataset row per answer, plus a SUMMARY record with the totals for each AI.

Bring your own API keys (required)

AI usage is billed by OpenAI or Perplexity directly to your key. This Actor never uses keys of its own. Keys are Apify secret inputs: they are encrypted, sent only to the provider's official API, and never logged or written to the output.

ProviderInput fieldDefault modelCitationsGet a key
openai (ChatGPT)openaiApiKeygpt-6-lunaURLs written in the answerhttps://platform.openai.com/api-keys. Add a few dollars of prepaid credit under Billing.
perplexityperplexityApiKeysonar (Agent API, "fast" effort, web search)yes, the sources it searchedhttps://console.perplexity.ai. Paid credit is required; the minimum top-up is $10.

You only need a key for the providers you select. You can change models with models, for example {"openai": "gpt-5-mini", "perplexity": "sonar-pro"}. For Perplexity, sonar/sonar-pro = effort "fast", sonar-reasoning-pro = "low", sonar-deep-research = "high". You can also pass fast/low/medium/high or a provider/model name.

What AI usage costs you

Measured on real runs on 2026-11-04. These are provider list prices, so check the provider's pricing page.

ProviderTypical cost per answer
OpenAI gpt-6-lunaabout $0.0001–0.0003
Perplexity sonar (fast)about $0.0017–0.002 (includes the ~$0.001 web search fee)

Each row reports inputTokens, outputTokens and aiCostUsd. The SUMMARY record has the run total. For Perplexity, the cost is the one Perplexity reports (provider-reported). For OpenAI, it is tokens × the published list price (estimated-list-price). Your provider bill is the final word.

Number of AI calls = prompts × providers × runsPerPrompt. For example, 10 prompts × 2 providers × 3 runs = 60 calls. maxCalls (default 50, max 500) is a hard cap: if the plan is bigger, the run stops before making any AI call.

Quick start

  1. Get an API key for at least one provider (table above).
  2. Fill in Brand, Your domain, Competitors and Prompts, select the AI assistants, and paste the matching key(s).
  3. Optional: run once with Dry run on. This uses fake answers with no keys and no cost, so you can check the setup and output format.
  4. Start the run. Open the Overview table in the Output tab, and the SUMMARY record in the key-value store.
  5. To track over time, save the input as a task and add a weekly schedule.

Example input

{
"brand": "HubSpot",
"brandDomain": "hubspot.com",
"competitors": ["Salesforce", "Pipedrive", {"name": "Zoho CRM", "aliases": ["Zoho"], "domain": "zoho.com"}],
"prompts": ["What is the best CRM for a small business?", "Which CRM would you recommend for a startup? Give me your top 5."],
"providers": ["openai", "perplexity"],
"openaiApiKey": "<your OpenAI key>",
"perplexityApiKey": "<your Perplexity key>",
"runsPerPrompt": 3
}

Input

FieldRequiredDescription
brandyesYour brand name. Matching ignores case and uses whole words, so "Acme" does not match "Acmeville".
brandAliasesOther names that count as your brand (product names, old names).
brandDomainYour domain, e.g. acme.com. Subdomains count as cited.
competitorsNames, or objects {"name", "aliases", "domain"}. Up to 25.
promptsone ofBuyer questions, up to 100.
category + keywordsone ofUsed if prompts is empty. Generates questions such as "What is the best {category} {keyword}?" and "Which {category} would you recommend {keyword}? Give me your top 5."
providersyesopenai, perplexity or both.
openaiApiKey / perplexityApiKeyfor each selected providerYour keys (secret).
modelsModel overrides per provider.
runsPerPrompt1–10 (default 1). AI answers vary, so repeat questions to measure consistency.
sentimentModerules (default, free), llm (an extra small call per answer on your OpenAI key, which is not counted in aiCostUsd), or off.
maxCallsSafety cap on AI calls (default 50).
maxConcurrency, maxRetries, requestTimeoutSecsThrottling.
dryRunFake answers: no keys, no AI calls, no AI cost.

Strict validation: the whole input is checked before any AI call. If anything is wrong, the run fails with a list of every problem and writes no rows. Problems include a missing key for a selected provider, an unknown field, an invalid domain, a number out of range, your brand listed as a competitor, or a plan above maxCalls. A missing key, for example, gives: perplexityApiKey is missing: provider "perplexity" is selected, so add your own Perplexity API key from https://console.perplexity.ai (or remove "perplexity" from providers, or turn on dryRun to test without keys).

Output

Dataset: one row per prompt × provider × run

FieldMeaning
brandMentionedDid the answer name your brand (or an alias)?
brandMentionCountHow many times it was named.
brandRankYour position among the tracked brands (yours + competitors), ordered by first mention. 1 = named first. Empty if not named. Brands you didn't list do not count.
competitorsMentioned, competitorMentionsWhich competitors were named, with their count and rank.
citedUrls, citedDomainsSources the AI cited or linked.
brandDomainCitedWas your website among the sources?
competitorDomainsCitedCompetitor websites among the sources.
sentimentTone about your brand: positive / neutral / negative. Pros/cons lists are scored on your own entry only, so a balanced "Strengths / Weaknesses" entry is not marked negative.
snippetThe text around your first mention.
answerThe full answer.
inputTokens, outputTokens, aiCostUsd, aiCostSourceAI usage and cost of this call, billed to your key.
status, errorok or error with the reason. Other calls continue if one fails.

SUMMARY record (key-value store)

For each provider (perProvider.openai, perProvider.perplexity):

MetricMeaning
visibilityShareShare of successful answers that named your brand (0–1).
avgBrandRankAverage brandRank over the answers that named you (1 is best).
firstPlaceShareShare of successful answers where you were named first.
brandDomainCitedShareShare of answers that cited your website.
shareOfVoiceEach tracked brand's share of all tracked-brand mentions. It adds up to 1 and is empty if every call to that provider failed.
answersMentioningNumber of answers naming each brand.
sentimentCount of positive / neutral / negative answers.
aiCostUsd, inputTokens, outputTokensAI usage for that provider.

At the top level, you also get overallVisibilityShare, topCitedDomains, the run's total aiCostUsd, and call counts (totalCalls, succeeded, failed).

Failed calls (bad key, no credit, outage) are recorded as error rows and left out of every metric. 429 errors, timeouts and 5xx errors are retried with backoff. The run is marked failed only if every call failed.

Limitations

  • API answers can differ from what people see in the ChatGPT or Perplexity apps. The apps use different system prompts, browsing and personalization. Treat the results as a consistent benchmark, not a screenshot of one user's screen.
  • OpenAI answers come from the model without live web search, so they show what the model "knows" and usually have no citations. Perplexity searches the web and cites sources.
  • Only brands you list are tracked. Rank and share of voice ignore brands you did not list.
  • Text matching is literal. Add aliases for nicknames ("Zoho" for "Zoho CRM"). Common-word brand names can over-match.
  • Rule-based sentiment is a rough signal. Use sentimentMode: "llm" for better labels.
  • Answers are random. Use runsPerPrompt of 3 or more for decisions.
  • Only OpenAI and Perplexity are supported for now.

FAQ

Do I need both keys? No. Select only the providers you have keys for.

Who pays for the AI calls? You do, directly to OpenAI or Perplexity, through your own key. This Actor has no built-in keys.

Is my API key safe? Keys are Apify secret inputs, encrypted at rest, sent only to the provider's official API, and never logged or saved to the dataset.

Can I test for free? Yes. Turn on dryRun for fake answers with no keys and no AI calls.

Why is my Perplexity call failing with 401/403? The key is wrong, or the account has no paid credit. Top up at console.perplexity.ai. The error row shows the provider's message.

How do I stop a run from costing too much? Keep maxCalls low. The run will not start any AI call if the plan is bigger. You can also set a maximum run cost in Apify.

How do I track over time? Save a task, schedule it weekly, and compare the SUMMARY records or export the dataset.