AI Brand Monitor — Visibility Rank Tracker
Pricing
from $48.00 / 1,000 prompt engine checks
AI Brand Monitor — Visibility Rank Tracker
Track brand mentions, position, share of voice, citations, sentiment, competitors, and ranking changes across ChatGPT, Perplexity, Claude, and Gemini.
Pricing
from $48.00 / 1,000 prompt engine checks
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
AI Brand Monitor is an Apify Actor and AI visibility rank tracker that measures how your brand ranks in ChatGPT, Perplexity, Claude, and Gemini answers for marketing teams, SEO agencies, and founders. It returns brand mentions, position, AI share of voice, citations, sentiment, and run-over-run changes as JSON, CSV, or Excel.
Free plan: Hosted Apify free-plan runs deliver at most one result (one prompt × engine check) per run, because every check calls paid AI models. Paid Apify plans use the prompts, engines, and
maxPromptslimit you configure.
What does AI Brand Monitor do?
- Asks each prompt to up to four engines: Perplexity, ChatGPT, Claude, and Gemini.
- Detects brand mentions by name or domain label.
- Ranks your brand by first appearance among listed competitors and calculates share of voice.
- Extracts cited URLs and flags citations of your domain.
- Labels the first brand sentence positive, neutral, or negative (keyword method).
- Compares each prompt × engine pair with the previous run for the same
trackingId. - Saves a
SUMMARYrecord with a visibility score and per-engine breakdown.
Which AI models does it use?
As of October 2026, each engine uses one fixed model through OpenRouter:
Engine (platforms value) | Model ID | Web grounding |
|---|---|---|
Perplexity (perplexity) | perplexity/sonar | Native Perplexity search |
ChatGPT (chatgpt) | openai/gpt-6-luna | Web search plugin, 1–3 results |
Claude (claude) | anthropic/claude-haiku-5.5 | Web search plugin, 1–3 results |
Gemini (gemini) | google/gemini-3.5-flash-lite | Web search plugin, 1–3 results |
The owner pays model and search costs inside the event prices, so you need no OpenRouter or AI provider account or API key. Models cannot be changed from input. These are API models with web grounding, not signed-in consumer apps.
What data does it return?
Each dataset item is one prompt × engine check.
| Field | Type | Description |
|---|---|---|
brand | string | Monitored brand. |
brand_domain | string or null | Normalized brand domain. |
engine | string | perplexity, chatgpt, claude, or gemini. |
model_used | string or null | Model ID reported for the response. |
prompt | string | Question sent to the engine. |
mentioned | boolean | Whether the answer mentioned the brand. |
position | integer or null | Rank by first appearance among the brand and listed competitors. |
share_of_voice | integer or null | Brand's percentage of tracked-brand mentions. |
cited | boolean | Brand domain found in citations or answer text. |
citations | array of strings | Source URLs from the answer. |
brand_cited_url | string or null | First citation on the brand domain. |
mention_count | integer | Sentences mentioning the brand. |
mention_context | string or null | First brand sentence, up to 300 characters. |
sentiment | string or null | positive, neutral, negative, or null. |
competitors_mentioned | array of strings | Listed competitors found in the answer. |
previous_mentioned | boolean or null | Mention status in the previous run. |
previous_position | integer or null | Position in the previous run. |
position_change | integer or null | Positive means the brand moved up. |
visibility_status | string | Change label, or error for a failed check. |
error | string or null | Error message; null on success. |
checked_at | string | ISO 8601 timestamp. |
SUMMARY holds visibility_score (share of successful checks mentioning the brand), check counts, averages, change counts, per_engine, and stop_reason.
Use cases
- SEO and GEO agencies: weekly AI share of voice reports per client across four engines.
- Product marketers: see which competitors AI answers name before your product.
- Content teams: check whether a new comparison page gets your domain cited.
- Brand teams: watch how AI answers frame your brand over time.
- Analysts and AI agents: feed LLM rank tracking data into dashboards or alerts.
When to use it and when not to
Use this AI visibility rank tracker for scheduled tracking of brand position in AI answers across several engines. It is not a Google rank tracker or traffic tool, and position covers only the brands you list. Better fits:
- Every domain the engines cite, with a leaderboard: AI Citation Monitor.
- A one-off check with a 0–100 score: AI Brand Reach Checker.
- One ChatGPT-only report per run: ChatGPT Brand Visibility & Citation Tracker.
- GEO recommendations and HTML client reports: AI GEO Recommendation Tracker.
How to use AI Brand Monitor
- Open the Actor in Apify Console and enter your brand name and domain.
- Add buyer-intent prompts (or generate them from the industry) and list competitors.
- Set a stable
trackingIdand click Start. - Review the dataset and
SUMMARY, then schedule the same input.
| Field | Type | Default | Description |
|---|---|---|---|
brandName | string | Notion | Brand to monitor (required). |
brandDomain | string | notion.so | Domain for citation detection. |
industry | string | productivity software | Generates prompts when prompts is empty. |
prompts | array | 2 sample prompts (Console form prefilled with 1) | Questions asked to every engine. |
platforms | array | all four (Console form prefilled with chatgpt) | perplexity, chatgpt, claude, gemini. |
competitors | array | Evernote, Obsidian, Coda | Brands for position and share of voice. |
extractCitations | boolean | true | Extract URLs and detect citations. |
analyzeSentiment | boolean | true | Classify the first brand sentence. |
trackingId | string | brand slug | ID for run-over-run comparison. |
useWebSearch | boolean | true | Web grounding for ChatGPT, Claude, Gemini. |
webSearchResults | integer | 3 | Web results per request, 1–3. |
maxPrompts | integer | 25 | Prompts per run, 1–200. |
{"brandName": "Notion","brandDomain": "notion.so","industry": "productivity software","prompts": ["What is the best note-taking app for teams?","Recommend an all-in-one workspace tool."],"platforms": ["perplexity", "chatgpt", "claude", "gemini"],"competitors": ["Evernote", "Obsidian", "Coda"],"extractCitations": true,"analyzeSentiment": true,"trackingId": "notion-weekly","useWebSearch": true,"webSearchResults": 3,"maxPrompts": 25}
Output example
{"brand": "Notion","brand_domain": "notion.so","engine": "chatgpt","model_used": "openai/gpt-6-luna","prompt": "What is the best note-taking app for teams?","mentioned": true,"position": 1,"share_of_voice": 50,"cited": true,"citations": ["https://www.notion.so/product", "https://example.com/note-apps-review"],"brand_cited_url": "https://www.notion.so/product","mention_count": 2,"mention_context": "Notion is a popular all-in-one workspace for teams.","sentiment": "positive","competitors_mentioned": ["Evernote", "Obsidian"],"previous_mentioned": true,"previous_position": 2,"position_change": 1,"visibility_status": "improved","error": null,"checked_at": "2026-10-20T12:00:00.000Z"}
Use it via API, MCP, and AI agents
Run synchronously and get dataset items in one call (best for small prompt sets):
curl -X POST "https://api.apify.com/v2/acts/muhammadafzal~ai-visibility-rank-tracker/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"brandName":"Notion","brandDomain":"notion.so","prompts":["What is the best note-taking app for teams?"],"platforms":["chatgpt","perplexity"],"competitors":["Evernote","Obsidian"],"trackingId":"notion-weekly"}'
JavaScript with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/ai-visibility-rank-tracker').call({brandName: 'Notion',brandDomain: 'notion.so',prompts: ['What is the best note-taking app for teams?'],competitors: ['Evernote', 'Obsidian', 'Coda'],trackingId: 'notion-weekly',});const { items } = await client.dataset(run.defaultDatasetId).listItems();const summary = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('SUMMARY');console.log(items, summary?.value);
MCP clients such as Claude, ChatGPT, and Cursor can use it as a tool via https://mcp.apify.com?tools=muhammadafzal/ai-visibility-rank-tracker.
Apify also connects runs to Make, Zapier, n8n, Google Sheets, webhooks, and schedules.
How much does it cost?
Pay per event at the active Store prices (USD):
| Event | FREE | BRONZE | SILVER | GOLD and higher |
|---|---|---|---|---|
| Actor start | $0.010001 | $0.00975 | $0.0095 | $0.008 |
prompt-engine-check (primary) | $0.060001 | $0.0585 | $0.057 | $0.048 |
citation-extraction | $0.050001 | $0.04875 | $0.0475 | $0.04 |
sentiment-analysis | $0.050001 | $0.04875 | $0.0475 | $0.04 |
No price change is scheduled. The start event is charged per started GB of memory (default 1,024 MB = one event). Each successful check incurs prompt-engine-check, plus citation-extraction when enabled, plus sentiment-analysis when enabled and the brand is mentioned.
- Default input on BRONZE: 8 checks (2 prompts × 4 engines), brand mentioned in 6: $0.00975 + 8 × $0.0585 + 8 × $0.04875 + 6 × $0.04875 = $1.16025.
- Mention-only on GOLD: 25 prompts × 1 engine, citations and sentiment off: $0.008 + 25 × $0.048 = $1.208.
Failed checks are saved with an error and not charged. If the AI provider rejects access, the run stops without charging unfinished checks. A maximum cost per run stops the Actor when reached.
Limits and reliability
- Free plan: one check per run. Paid plans: up to 200 prompts × 4 engines.
- Checks run sequentially; each request times out after 90 seconds, without retries. Default run timeout: 3,600 seconds.
- AI answers vary between runs, regions, and days; compare trends, not single runs.
- Mention matching is case-insensitive text matching, so very short brand names can match unrelated words.
- History persists in the named key-value store
ai-rank-history-<trackingId>until you delete it. - Public model APIs only; no logged-in or personalized chat interfaces.
FAQ
Do I need an OpenRouter or OpenAI API key? No. Model and search costs are included in the event prices.
How often should I run it?
Weekly suits most brands; daily during launches. Keep prompts, engines, and trackingId unchanged.
Why do results differ between runs? Generated answers are non-deterministic and web results change. Confirm a change across several runs.
Can I schedule it? Yes. Use an Apify schedule with the same input; each run compares against the previous snapshot.
How is it different from AI Citation Monitor? This AI brand monitor tracks position, share of voice, and sentiment; AI Citation Monitor analyzes which domains are cited.
Is it legal? It sends your prompts to official model APIs and analyzes the generated text. You are responsible for lawful use of the results.
Related Actors
- AEO Tracker: AEO tracking with recommendation position.
- AI Citation Monitor: cited domains and citation gaps.
- AI Brand Reach Checker: quick four-engine brand check.
- AI GEO Recommendation Tracker: GEO audits with recommendations.
- GEO Content Auditor: AI answerability score for your pages.
Legal and responsible use
AI answers can be wrong. Validate important decisions against primary sources, keep personal data out of prompts, and follow AI provider terms and local law.
Support
Report problems or request features on the Issues tab of the Actor page, with the run ID when possible. Feedback is welcome.