AI Search Visibility Tracker: ChatGPT, Gemini and More
AI Search Visibility Tracker is an Apify actor (API) by CheapAPI Labs. Asks ChatGPT, Gemini, Claude and Perplexity about your market and records whether they mention you and which sites they cite. It costs $8.00 per 1,000 AI answers on the Apify Free plan and $4.50 on Gold, billed through your Apify account with no API key.
Compared with the most used AI brand monitor on Apify Store (about 240 users): one AI answer costs $0.008 to $0.012 here and $0.08 there (Apify Store listing prices, checked September 2026).
Our prices updated 30 October 2026; competitor prices as checked in the comparison. 6 Apify users have run this actor (Apify Store count, 30 October 2026).
What does AI Search Visibility Tracker return?
Find out whether AI assistants recommend your brand. Enter your brand and the questions your customers ask. The Actor asks ChatGPT, Gemini and Perplexity (Claude is optional) and tells you, for every answer, whether your brand was mentioned, where it ranked against your competitors, how it was described and which websites the AI cited. You also get a free share of voice summary per engine. You don't need any API keys or accounts.
One example row from a real run, shortened:
{
"id": "62a8ca3184f069b6",
"rowType": "answer",
"answerStatus": "ok",
"brand": "HubSpot",
"prompt": "What is the best CRM software for a small business?",
"promptType": "unbranded",
"promptGenerated": false,
"engine": "chatgpt",
"engineName": "ChatGPT",
"model": "gpt-4.1-mini",
"modelVersion": "gpt-4.1-mini-2025-04-14",
"mentioned": true,
"mentionCount": 3,
"mentionPosition": 1,
"listRank": 1,
"excerpt": "1. **HubSpot CRM** – Free to start, very easy to use and great for marketing teams. I recommend it for most small teams.",
"sentiment": "positive",
"sentimentScore": 1,
"recommended": true,
"visibilityScore": 10,
"shareOfVoice": 0.6,
"brandDomainCited": true,
"brandCitationPosition": 1,
"competitorsMentioned": [
"Salesforce",
"Pipedrive"
],
"brandsInOrder": [
"HubSpot",
"Salesforce",
"Pipedrive"
],
"competitorMentions": [
{
"name": "Salesforce",
"mentioned": true,
"mentionCount": 1,
…
}Which fields do you get?
One row per prompt × AI engine (rowType: "answer"):
| Field | Type | Example |
|---|---|---|
prompt |
string | What is the best CRM software for a small business? |
promptType |
string | unbranded (or branded if the prompt names your brand) |
promptGenerated |
boolean | false (true when created from a topic) |
engine / engineName |
string | chatgpt / ChatGPT |
model / modelVersion |
string | gpt-4.1-mini / gpt-4.1-mini-2025-04-14 |
mentioned |
boolean | true |
answerStatus |
string | ok (or empty / noResponse: charged answer without text, see Pricing) |
mentionCount |
integer | 3 |
mentionPosition |
integer | 1 (rank among all tracked brands by first appearance) |
listRank |
integer | 1 (item number in the AI's numbered or bulleted list) |
excerpt |
string | 1. **HubSpot CRM** – Free to start, very easy to use… |
sentiment / sentimentScore |
string / number | positive / 1 (−1 to 1) |
recommended |
boolean | true ("I recommend", "best choice", …) |
visibilityScore |
number 0 to 10 | 10 |
shareOfVoice |
number 0 to 1 | 0.6 (your share of all brand mentions in the answer) |
brandDomainCited / brandCitationPosition |
boolean / integer | true / 1 |
competitorsMentioned |
array | ["Salesforce", "Pipedrive"] |
brandsInOrder |
array | ["HubSpot", "Salesforce", "Pipedrive"] |
competitorMentions |
array | [{ "name": "Salesforce", "mentioned": true, "mentionCount": 1, "position": 2, "domainCited": false }] |
citationCount / citedDomains |
integer / array | 2 / ["hubspot.com", "g2.com"] |
citations |
array | [{ "position": 1, "title": "HubSpot pricing", "url": "https://www.hubspot.com/pricing", "domain": "hubspot.com" }] |
webSearchRequested / webSearchUsed |
boolean | false / false |
followUpSearches |
array | web searches the AI ran, when it searched |
answer / answerLength |
string / integer | full answer text / 545 |
webSearchCountry / webSearchCity |
string | US / null |
answeredAt / scrapedAt |
ISO date | 2026-09-27T16:16:13.000Z |
brand / rowType |
string | HubSpot / answer |
id |
string | 62a8ca3184f069b6 (stable: same brand + prompt + engine + model + run date → same id) |
domainCited (per competitor) and brandDomainCited are true when one of the answer's cited sources is that brand's website. If you give a domain ("Pipedrive | pipedrive.com"), it is matched exactly, subdomains included. If you give only a name, the cited site's main name must equal the name without spaces (Salesforce → salesforce.com).
Plus one free summary row (rowType: "summary", also saved as SUMMARY in the key value store) with mention rate, share of voice, average position, average sentiment, average visibility score, answers recommending or citing you, each competitor's mention rate and share of voice, and the 10 most cited domains. You get these numbers for the whole run and per engine (byEngine).
How much does AI Search Visibility Tracker cost?
You pay per event, through your Apify account. Main price: $8.00 per 1,000 AI answers on the Apify Free plan and $4.50 on Gold. Every event and plan:
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| AI answer, standard modelOne analyzed AI answer (one prompt × one engine) from a standard model: ChatGPT GPT-4.1 mini / GPT-4o mini / GPT-5 mini / GPT-5 nano or Gemini 2.5 Flash / Flash Lite. Covers answers up to 1,024 tokens; each further started 1,024 tokens of the max answer length counts as one more event, and so does a system message or conversation history. Also charged for an answer the AI engine returned empty or that was lost in transit (the provider bills those too). | $0.008 | $0.005 | $0.0045 | $0.0045 |
| AI answer, Perplexity Sonar, Claude Haiku or Gemini 3 FlashOne analyzed AI answer from Perplexity Sonar (always web searched, with sources), Claude Haiku 4.5 or Gemini 3 Flash. Covers answers up to 1,024 tokens; each further started 1,024 tokens of the max answer length counts as one more event, and so does a system message or conversation history. Also charged for an answer the AI engine returned empty or that was lost in transit (the provider bills those too). | $0.012 | $0.012 | $0.01 | $0.0093 |
| AI answer, premium modelOne analyzed AI answer from a flagship or reasoning model (GPT-4.1, GPT-4o, GPT-5.x, o4-mini, Gemini Pro, Claude Sonnet / Opus, Sonar Pro / Reasoning Pro). Covers answers up to 1,024 tokens; each further started 1,024 tokens of the max answer length counts as one more event, and so does a system message or conversation history. Also charged for an answer the AI engine returned empty or that was lost in transit (the provider bills those too). | $0.05 | $0.05 | $0.05 | $0.05 |
| Live web search add onCharged per answer (including empty or lost answers) when live web search is turned on for ChatGPT, Gemini or Claude (1 event for ChatGPT and Gemini, 2 for Claude Haiku, 4 for Claude Sonnet / Opus). Never charged for Perplexity. | $0.06 | $0.06 | $0.06 | $0.06 |
| Mentions database lookupOne search of the AI answers database for one target, returning up to 1,000 answers. Charged for every search, also when it finds nothing (the database bills every search). | $0.13 | $0.13 | $0.13 | $0.13 |
| Stored AI answer mentioning your targetOne stored ChatGPT or Google AI Overview answer that mentions your brand or website, with question, answer, sources and AI search volume. | $0.002 | $0.002 | $0.002 | $0.002 |
| AI keyword volume batchOne AI keyword volume request for up to 1,000 keywords. Charged for every request, also when none of the keywords has data. | $0.015 | $0.015 | $0.015 | $0.015 |
| AI keyword volume resultAI search volume and 12-month trend for one keyword. | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
How do I call AI Search Visibility Tracker API from code?
Every run is one HTTP request to the Apify API with your Apify token; the input below is the actor's own example. The synchronous endpoint returns the rows in the response for runs up to 300 seconds; for longer runs start a run and fetch its dataset.
curl -X POST "https://api.apify.com/v2/acts/cheapapi~ai-search-visibility-tracker/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"brandName":"HubSpot","brandDomain":"hubspot.com","competitors":["Salesforce","Pipedrive","Zoho CRM"],"prompts":["What is the best CRM software for a small business?","Which CRM is easiest to use for a startup sales team?"]}'With the JavaScript client:
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cheapapi/ai-search-visibility-tracker').call({
"brandName": "HubSpot",
"brandDomain": "hubspot.com",
"competitors": [
"Salesforce",
"Pipedrive",
"Zoho CRM"
],
"prompts": [
"What is the best CRM software for a small business?",
"Which CRM is easiest to use for a startup sales team?"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();How does AI Search Visibility Tracker compare with alternatives?
Typical run: 10 prompts × ChatGPT + Gemini + Perplexity = 30 AI answers. Prices are shown for the Free plan and, in brackets, the Gold plan.
| Alternative | Price per AI answer | Typical run (30 answers) | Claude | Live Google AI Overview |
|---|---|---|---|---|
| Most used AI brand monitor in the Store (~240 users) | $0.08 (same on Gold) | $2.40 ($2.40) | ✓ | ✗ |
| 5-platform AI rank tracker (~110 users) | $0.05 ($0.04 on Gold) + $0.001 per run | $1.50 ($1.20), + $0.25 ($0.20) for its optional aggregated report | ✓ | ✓ |
| LLM visibility & citation tracker with live web search in every check (~110 users) | $0.09 (same on Gold) | $2.70 ($2.70) | ✓ | ✗ |
| Per question bundle (~4 variants × 5 to 7 fixed engines per question, ~110 users) | $0.30 per question ($0.18 on Gold) | $3.00 ($1.80) for 10 questions | ✗ | ✓ |
| Flat per run brand analysis, ChatGPT + Gemini only (~110 users) | one $0.30 fee per run ($0.15 on Gold), + Apify platform usage | $0.30 ($0.15) per run; its listing does not say how many prompts or answers one analysis covers | ✗ | ✗ |
| This Actor | $0.008 to $0.012 ($0.0045 to $0.0093 on Gold), + Apify platform usage | $0.28 ($0.18); $1.48 ($1.38) with live web search on for ChatGPT and Gemini | ✓ | ✗ (use our SERP scraper) |
Platform usage: the flat per run brand analysis and this Actor both bill Apify platform usage to the user on top of their event prices (here, at the default 256 MB a small run typically uses about $0.001 to $0.005); the other four listings do not. Prices from public Apify Store listings, checked September 2026. Where the others are ahead: the flat per run brand analysis costs $0.15 per run on Gold, less than our $0.18 for 30 answers, though it covers only ChatGPT and Gemini (the same 10 prompts on ChatGPT + Gemini cost $0.16 on Free and $0.09 on Gold here); two of the others include live Google AI Overview answers, the per question bundle rewrites each question into several variants for you, and one runs live web search in every check. Here you choose each engine and model yourself, web search is optional (Perplexity always searches), and the share of voice summary row is free.
What is it used for?
- Generative engine optimization (GEO): measure how often AI assistants name your brand for buyer questions, and whether your content changes move the numbers.
- Competitor benchmarking: compare share of voice, position and sentiment against up to 20 competitors, per engine.
- Source and PR strategy: see which domains the AI cites (review sites, media, your own pages) and where you should be present.
- Weekly monitoring: schedule the same prompts and chart mention rate and visibility score over time.
- Agency reporting: run one task per client and send the summary row to a spreadsheet or dashboard.
- Market research: use the mentions database and AI keyword volume to find which questions people actually ask AI about your category.
What is not included?
- Live Google AI Overview and Google AI Mode answers. This Actor asks the AI assistants directly; Google's AI answers appear on the search results page. Use our Google SERP Scraper: it returns the AI Overview with every cited source and your domain's citation position, and has a separate Google AI Mode search type. This Actor's mentions database still covers stored Google AI Overview answers.
- Microsoft Copilot, Meta AI, Grok and DeepSeek. Only ChatGPT, Gemini, Claude and Perplexity are asked live.
- Automatic prompt variants. Each prompt is asked exactly as you write it. Add rephrased versions yourself, or use a topic to generate 5 to 10 questions for free.
- Dashboards, alerts and run to run comparison inside the Actor. Results go to a dataset and a
SUMMARYrecord; use schedules, webhooks and the stableidto compare runs in your own tools. - Classic keyword research and rankings. For search volume, difficulty and ideas use our Keyword Research Tool; for your domain's Google rankings, the Google SERP Scraper or Domain SEO Analyzer.
What are the limits?
- Brand detection matches your brand name, the extra names you give, your domain and its main part (for example "hubspot" from hubspot.com). Very generic brand names (for example "Apple" used as a fruit) can produce false matches.
- A competitor given only by name is matched to cited sites by its main name (
Salesforce→salesforce.com). If its website has a different name, add the domain (Zoho CRM | zoho.com). - Sentiment and "recommended" are word list heuristics with no measured accuracy figure. They can misread sarcasm, mixed verdicts or complex comparisons, so read the
excerptbefore acting on a single answer. - Answers can differ from the consumer chat apps, which add personalization, memory and their own instructions.
- Some advanced settings are not supported by every engine: Gemini has no search location or forced search, Perplexity has no city, and reasoning models ignore temperature and top p. The Actor then uses the engine default and logs a note.
- At most 200 prompts and 20 competitors per run. Model lists change often, and new models are added after testing.
- In the mentions database, stored ChatGPT answers cover the United States in English only. Google AI Overview answers cover many more countries. AI search volume figures are estimates.
Questions about AI Search Visibility Tracker
Is there a limit on the Apify Free plan?
Yes: up to $0.25 of this Actor's results per calendar month, enough to try it. Apify pays developers nothing for Free plan usage while our data costs are real, so this keeps the Actor sustainable. Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit.
Do I need OpenAI, Google, Anthropic or Perplexity API keys?
No. The Actor asks the AI engines through its own paid access, and that cost is already included in the per answer price. You only need an Apify account.
Is it legal?
The Actor sends your questions to AI assistants and analyzes the answers, just as a person typing the same questions would see them. It does not log in to anyone's account or collect private data. You are responsible for how you use the results.
How fresh is the data?
Visibility checks are live: every answer is generated when you run the Actor, and answeredAt shows the exact time. The mentions database contains stored answers with firstSeenAt and lastSeenAt dates. AI keyword volume is a monthly estimate.
Why did I get fewer results than expected?
Answers the AI engine rejects are not delivered and not charged. Empty or lost answers get a row with answerStatus empty or noResponse (charged, see below). The run also stops when it reaches your maximum cost per run. The RUN_SUMMARY record in the key value store lists skipped and failed answers. In the mentions lookup, strict filters or a small brand can return few stored answers.
Why was I charged for an answer without text, or for a lookup that found nothing?
The AI providers and the answers database bill every request they process, also when the result is empty. So: an answer that came back empty (for example, a reasoning model used its whole length limit for thinking; raise "Max answer length") or was lost in transit after the question was sent is charged like a normal answer and shown with answerStatus empty or noResponse; a mentions lookup that finds no stored answers is charged mentions-lookup ($0.13); a keyword request where no keyword has data is charged keyword-batch ($0.015). A lost lookup or keyword request is charged as if the requested rows had arrived. RUN_SUMMARY shows the count as chargedWithoutAnswer. Errors (a rejected question, an unavailable model) are never charged. A system message or conversation history counts as one more answer event per answer because it is sent with every question and the AI provider bills it as input.
How do I control my budget?
Set Maximum cost per run when you start the Actor. The Actor checks the price before it asks for each answer and never starts work it cannot pay for within that limit. Use the worked examples above to estimate a run.
Can I monitor visibility over time?
Yes. Save your input as a task and add a weekly schedule. Every run asks the AI engines again, so every answer is new and is charged once. To see changes, compare brandMentionRate, shareOfVoice and averageVisibilityScore in the SUMMARY record of each run (for example with the Google Sheets integration). Answer rows carry a stable id (brand + prompt + engine + model + run date), so you can join the same prompt across runs. For the mentions database, the id of a stored answer stays the same in every run: keep the ids you have seen and filter them out downstream to get only new answers. AI answers vary from run to run. Track trends over several runs rather than relying on one answer. A low temperature makes answers more stable, but less like what real users see.
Why is live web search off by default?
Without web search you see what the model itself "knows" about your brand. Live web search adds citations but costs more, because each answer then includes a live web search. Perplexity always searches, so the default run already includes cited sources.
How are sentiment and position calculated?
Sentiment is a heuristic, not a trained model: it counts positive and negative words, with negation handling ("not good" is negative), in the sentences around each mention. It runs locally and costs nothing. We do not publish an accuracy figure, because we have not measured it against human labels. Treat it as a quick signal and check the excerpt when a result matters. mentionPosition ranks your brand among all tracked brands by first appearance, and listRank is the item number when your brand appears in a list.
Which export formats are available?
JSON, CSV, Excel, XML, HTML and RSS, from the Output tab or the API. The "Brand visibility per answer" and "Share of voice summary" views give you ready made tables.
Where do I get help?
Open an issue on the Actor's Issues tab in Apify Console. Include the run ID so we can look at the log.
Run AI Search Visibility Tracker on Apify
The form opens with a working example. Free Apify accounts get a small monthly allowance.