AI Visibility & Share of Voice Tracker: ChatGPT, Perplexity
Pricing
from $60.00 / 1,000 chatgpt checks
AI Visibility & Share of Voice Tracker: ChatGPT, Perplexity
Track how ChatGPT and Perplexity answer your buyer prompts: brand mentions, rank in the answer, cited URLs and domains, sentiment, share of voice vs competitors and week-over-week changes. Official APIs with web search, no browser. By SteadyScrape.
Pricing
from $60.00 / 1,000 chatgpt checks
Rating
0.0
(0)
Developer
SteadyScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Share
AI Visibility & Share of Voice Tracker: ChatGPT, Perplexity (by SteadyScrape)
Find out whether AI assistants recommend your brand when buyers ask questions like "best CRM for a small business". For every prompt × engine, this Actor asks the engine through its official API with live web search and returns:
- the answer (full text and a snippet) and the exact model that answered
- for your brand and each competitor: mentioned?, mention count, rank (order of first mention), position in a list, sentiment (positive, negative, neutral or mixed) and the surrounding context
- every cited URL and domain, and whether your own domain was cited
- share of voice across all checks and per engine, visibility rate, average rank and citation rate
- an optional diff against your previous run (visibility gained or lost, rank changes, citations gained or lost), so a weekly schedule becomes a tracker
Engines:
| Engine | How it is queried |
|---|---|
chatgpt | OpenAI model (default gpt-6-luna) with OpenAI's native web search, via OpenRouter, or directly through the OpenAI Responses API + web_search (chatgptProvider) |
perplexity | Perplexity Agent API with web search (effort: low by default) |
Important: API answers are not the consumer apps
Answers come from the official developer APIs, not from chatgpt.com or perplexity.ai in a browser. Model choice, system prompts, personalization, location, memory and search settings differ, so the apps can give different answers to the same prompt. AI answers also change from run to run. Treat the results as a repeatable, comparable sample of AI visibility, not as a screenshot of what any single user sees. Track trends over several prompts and runs instead of judging from one answer.
Quick start
{"prompts": ["best CRM for small business", "HubSpot alternatives for startups"],"brands": [{ "name": "HubSpot", "aliases": ["HubSpot CRM"], "domains": ["hubspot.com"] }],"competitors": ["Salesforce", { "name": "Zoho CRM", "aliases": ["Zoho"], "domains": ["zoho.com"] }, "Pipedrive"],"engines": ["chatgpt", "perplexity"],"trackingId": "crm-weekly"}
Want to see the output format first? Set "mockMode": true. It returns synthetic answers, calls no AI provider and is never charged per check.
Output
One dataset row per prompt × engine (recordType: "check", status: ok | error | skipped), plus a final recordType: "summary"
row. The summary is also saved as OUTPUT in the run's key-value store. Key fields of a check row:
prompt, engine, model, answerSnippet, answer, brandMentioned, bestBrandRank, brandDomainCited, trackedBrandsMentioned, competitorsMentioned, brandsNamedInPrompt, brands[] {brand, isCompetitor, mentioned, mentionCount, rank, listPosition, sentiment, sentimentScore, domainCited, citedBrandUrls, context}, citations[] {url, domain, title}, citedDomains, searchCalls, providerCostUsdEstimate, chargedThe summary contains shareOfVoice, shareOfVoiceByEngine, topCitedDomains and, when a previous run with the same
trackingId exists, changes.
How metrics are computed. Matching is case-insensitive and uses whole words on the brand name, its aliases and its domains,
after citation links and URLs are stripped from the answer. Rank is the order of first mention among all tracked names.
Share of voice is a brand's mentions divided by all tracked mentions. Visibility rate is the share of checks that mention
the brand. Brands named in the prompt itself are listed in brandsNamedInPrompt, because answers usually repeat them; use unbranded prompts to measure organic visibility. Sentiment is a simple lexicon score of the sentences that mention the brand, so it is a hint and not a judgment.
Guardrails
maxChecks: default 200, hard cap 2000 per run.maxCostUsd: estimated AI-provider cost cap per run, default $5. Checks that would go over it are skipped and not charged.- Request timeouts and retries with backoff on 429 and 5xx errors. An invalid key or exhausted quota stops that engine for the rest of the run.
- Your Max charge per run setting is respected: only the checks it covers are run.
- Failed and skipped checks are never charged.
Pricing
Pay per event. You only pay for checks that return an answer:
| Event | Price | What it is |
|---|---|---|
chatgpt-check | $0.06 | one prompt answered by ChatGPT (OpenAI model with live web search) and analyzed |
perplexity-check | $0.03 | one prompt answered by Perplexity (with live web search) and analyzed |
| Actor start | $0.00005 | Apify's standard start fee, once per run |
Example: 10 prompts × both engines = 10 × $0.06 + 10 × $0.03 = $0.90 per run. A weekly tracker of 10 prompts costs about $3.90 a month.
- Failed, skipped and mock-mode checks are never charged. Every row has
chargedandchargeEvent. The run summary haschargedEventsandchargedUsd. - Set Max charge per run in the run options to cap your spend. The Actor plans only the checks that fit under it, so it can still fit a $0.03 Perplexity check after a $0.06 ChatGPT check no longer fits.
- Try
mockMode: truefirst. It shows the full output format for free.
Scheduling and history
Give the run a trackingId and schedule it (for example weekly). Each run saves a compact snapshot in the named key-value
store ai-brand-visibility-history (configurable with historyStoreName) and compares itself with the previous snapshot.
FAQ
Is this scraping ChatGPT? No. It uses official APIs: OpenAI models (through OpenRouter or OpenAI) and Perplexity.
Can I pick the model? Yes, within a cost-safe list: openaiModel and perplexityModel / perplexityEffort.
Why did my brand show up in the app but not here (or the reverse)? See API answers are not the consumer apps above.
More tools from SteadyScrape
- Keyword Search Volume: Google search volume, CPC, competition and a 12-month trend for up to 10,000 keywords per run.
- ATS Job Scraper: see which roles your competitors are hiring for, straight from their career sites.
Built and maintained by SteadyScrape. Not affiliated with OpenAI, OpenRouter or Perplexity.