AI Search Visibility Tracker (ChatGPT, Perplexity, Gemini) icon

Search & SEO · Coming soon

AI Search Visibility Tracker

Ask ChatGPT, Perplexity and Gemini the questions your buyers ask. See if your brand is in the answer. Each row shows the place, the rival brands and the cited sites. You use your own API keys.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

promptbest web scraping platform
providerperplexity
modelopenai/gpt-6-luna

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: best web scraping platform in Prompts. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Check whether ChatGPT, Perplexity and Gemini name your brand when buyers ask them about your market. You write the questions, your brand and competitors; the Actor asks each AI through its official API with web search on and returns one row per question and AI: mentioned or not, in which place, which competitors came up and which websites the answer cited.

  • sends the prompt once through the provider's official API with web search enabled — OpenAI Responses API with the web_search tool, Perplexity Agent API, Gemini API with Google Search grounding;
  • reads the answer and finds your brand, its other spellings and your competitors as whole words, case-insensitive;
  • ranks the names in the order the answer first mentions them, so you see your position next to the competitors;
  • lists the cited sources and tells you whether one of them is on your own domain;
  • saves the answer text, an excerpt around the first mention, tokens and the time it was received.

Good for

  • Track how often AI assistants recommend you versus competitors for the questions your buyers ask.
  • Find which pages AI answers cite for your category, so you know where to earn coverage.
  • Run the same prompt set every week with an Apify schedule and compare the mention rate over time.

Not a good fit

  • API answers are not the same as the ChatGPT, Perplexity or Gemini apps. The apps add personal memory, account settings, location and their own system prompts, and they change often. The API with web search is the closest repeatable signal, not a copy of what one person sees on screen.
  • AI answers vary from run to run. One answer is a sample; use several prompts and repeat runs to see a trend.
  • The Actor never scrapes the consumer apps and never logs in anywhere. It only uses the public APIs with your key.
  • Position is the order of first mention among the names you track, not a place in a numbered list the AI might show.
  • Gemini's API has no location setting, so country applies only to OpenAI and Perplexity.

Who uses it

Brand teams

See how often AI assistants name you next to your rivals.

SEO and GEO teams

Find which pages AI answers cite for your topic.

In-house analysts

Run the same questions each week and compare the mention rate.

Price

Prices will be shown after release.

Questions

Do I need my own API key?

Yes. You need a key from OpenAI, Perplexity or Gemini. Without a key you get one free row that says what is missing.

Who pays the AI providers?

You do. Your key is billed by the provider. Gemini needs billing on for web search.

Does it read the ChatGPT app?

No. It uses the official APIs with web search on. This is close to the app, not a copy of it.

Are the answers always the same?

No. AI answers change from run to run. Use several questions and repeat runs to see a trend.

Why do results change between runs?

AI answers are not deterministic and web results change. Ask several related prompts and repeat runs on a schedule; compare mentionRate in the run summary rather than single answers.

Do you store my key or the answers anywhere else?

The key is a secret input, encrypted by Apify and never written to the dataset, run summary or log. Answers go only to your run's dataset.

Can I check Claude, Google AI Overviews or Copilot?

Not in this version. It covers OpenAI, Perplexity and Gemini APIs.

Details

Step by step on Apify
  1. Open the Input tab.
  2. Keep the prefilled prompt best web scraping platform or write your own under Prompts.
  3. Enter your brand under Your brand (prefilled: Apify).
  4. Paste at least one key — OpenAI, Perplexity, or Gemini from a Google AI Studio project with billing on — and pick that AI under AI assistants to check.
  5. Click Start, then open the Visibility view of the dataset.
Use cases
TaskInputWhat you getKey fieldsNext step
Am I recommended for my category?prompts, brand, brandAliasesOne row per prompt and AImentioned, position, answerExcerptRun summary mentionRate per AI
Who wins the answer instead of me?competitorsNames in order of first mentionranking, competitorsMentionedCompare competitor mention rates in the run summary
Which pages do AI answers trust?brandDomainCited links per answercitedSources, brandCitedExport the dataset and group by domain
Is visibility changing over time?Same input on a scheduleA new dataset each runfetchedAt, mentioned, positionSchedule plus webhook or Google Sheets export
Tips for better results
  • Use many questions. One AI answer is only a sample.
  • Add your domain to see if the AI cites your own site.
  • Add rival names. Use a pipe for other spellings, like Bright Data|BrightData.
Limits and good to know
  • Up to 100 prompts per run, 3 AIs, 25 competitors, 10 brand aliases
  • In our tests an answer took about 3 seconds on Perplexity, about 4 seconds on OpenAI and 15–27 seconds on Gemini, and 10 prompts on OpenAI and Perplexity finished in 44 seconds. Prompts for one AI run one after another and the AIs run side by side, so the run time grows with the number of prompts. A slower model or a rate-limited key takes longer. The default timeout is 1 hour
  • One answer per prompt and AI per run; answers are not cached between runs
  • No Claude, Google AI Overviews, Copilot or other assistants

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "prompt": "best web scraping platform",
  "provider": "perplexity",
  "model": "openai/gpt-6-luna",
  "status": "ok",
  "brand": "Apify",
  "mentioned": true,
  "position": 1,
  "mentionCount": 1,
  "competitorsMentioned": [
    { "name": "Octoparse", "position": 2, "mentionCount": 1 },
    { "name": "ScrapingBee", "position": 3, "mentionCount": 1 },
    { "name": "Bright Data", "position": 4, "mentionCount": 1 }
  ],
  "ranking": ["Apify", "Octoparse", "ScrapingBee", "Bright Data"],
  "brandCited": true,
  "brandCitedPosition": 3,
  "citedSources": [
    { "position": 1, "url": "https://webscraper.io/blog/best-web-scraping-platforms", "title": "Best web scraping platforms compared - Web Scraper", "domain": "webscraper.io" },
    { "position": 3, "url": "https://blog.apify.com/best-web-scraping-tools/", "title": "6. Octoparse", "domain": "blog.apify.com" }
  ],
  "citedSourcesCount": 6,
  "answerExcerpt": "**Apify is the best all-around choice for developers**: it combines ready-made scrapers (“Actors”) with custom code, cloud runs, scheduling, and storage…",
  "country": "US",
  "countryApplied": true,
  "inputTokens": 6325,
  "providerCostUsd": 0.00168,
  "errorCode": null,
  "fetchedAt": "2026-10-22T05:46:32.698Z"
}
Data fields (28)
FieldTypeMeaning
promptstringPrompt from the input; null on a row about a whole AI (missing or rejected key).
providerstringopenai, perplexity or gemini; null when no key was given at all.
modelstringModel the provider says answered; null when there was no answer.
requestedModelstringModel or preset asked for.
statusstringok = answer checked (the only charged status); no_answer = the AI returned empty text; api_key_required = no key for this AI; error = see errorCode.
brandstringBrand name from the input.
mentionedbooleantrue/false whether the answer names the brand; null when there is no answer.
positionintegerPlace of the brand among the tracked names, in the order the answer first mentions them (1 = first). null when not mentioned.
mentionCountintegerHow many times the brand is named.
competitorsMentionedarrayTracked competitors found in the answer: name, position, mentionCount.
rankingarrayBrand and competitors in the order the answer first names them.
brandCitedbooleanWhether a cited source is on your brandDomain; null when no domain was given or no answer.
brandCitedPositionintegerPlace of the first source from your domain among cited sources.
citedSourcesarrayWeb sources the answer cites: position, url, title, domain. Gemini gives Google redirect links; the domain is the real site.
citedSourcesCountintegerNumber of cited sources.
searchQueriesarrayWeb searches the AI ran, when the API reports them.
answerExcerptstringAbout 400 characters around the first brand mention, or the start of the answer.
answerstringFull answer text, up to 20000 characters.
answerTruncatedbooleantrue when the answer was cut to 20000 characters.
countrystringCountry from the input.
countryAppliedbooleanWhether the country was sent to this AI (false for Gemini).
inputTokensintegerInput tokens billed to your key.
outputTokensintegerOutput tokens billed to your key, including thinking tokens.
providerCostUsdnumberCost in USD that the provider reported for this answer (Perplexity only); null when not reported.
latencyMsintegerTime the answer took.
errorCodestringAPI_KEY_REQUIRED, API_KEY_INVALID, API_QUOTA_EXHAUSTED, API_RATE_LIMITED, MODEL_UNAVAILABLE, PROVIDER_BAD_REQUEST, PROVIDER_UPSTREAM_ERROR, DEADLINE_REACHED and others.
errorMessagestringShort explanation and what to do. Never contains your key.
fetchedAtstringWhen the answer was received, ISO 8601.
Input settings (13)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Prompts requiredpromptsarray["best web scraping platform"]
Your brand requiredbrandstring"Apify"
Other spellings of your brandbrandAliasesarray
Your website domainbrandDomainstring
Competitorscompetitorsarray
AI assistants to checkprovidersarray["gemini"]
Gemini API keygeminiApiKeystring
OpenAI API keyopenaiApiKeystring
Perplexity API keyperplexityApiKeystring
Countrycountrystring
OpenAI modelopenaiModelstring
Perplexity presetperplexityPresetstring
Gemini modelgeminiModelstring

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure