LLM Brand Visibility and Citation Tracker · Apify
LLM Brand Visibility and Citation Tracker avatar

LLM Brand Visibility and Citation Tracker

Pricing

$90.00 / 1,000 keyword × llm visibility checks

Go to Apify Store
LLM Brand Visibility and Citation Tracker

LLM Brand Visibility and Citation Tracker

Keyword by AI-engine visibility grid: brand mentions, rank in the answer list, share of voice, citations, sentiment and competitor leaderboard across ChatGPT, Perplexity, Gemini and optional Claude, with country and trend vs last run. Model access included.

Pricing

$90.00 / 1,000 keyword × llm visibility checks

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

2

Bookmarked

133

Total users

18

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

What is LLM Brand Visibility and Citation Tracker?

Keyword by AI-engine grid: for each customer question you see, per engine (ChatGPT, Perplexity, Gemini, optional Claude), whether your brand is named, where it ranks in the answer's list, which competitors win the question, which sites are cited and how the answer sounds. Model access is included in the price, so there is no separate AI key or token bill. Failed checks are free.

You getDetail
One row per question x enginemention, rank in list, share of voice, citations, sentiment, excerpt
Run summaryvisibility index, per-engine scores, per-keyword leaderboard (who wins each question), change vs your last run
Price$0.09 per check (Silver $0.08, Gold $0.075); Perplexity and Gemini checks get a cheaper event, see Pricing

Track how a brand appears in answers from ChatGPT, Perplexity, Gemini, and optional Claude checks. The Actor sends realistic category and customer prompts, then returns brand mentions, response rank, position, share of voice, citations, competitor co-mentions, sentiment, answer excerpts, and source URLs.

Use it for Answer Engine Optimization, Generative Engine Optimization, competitive research, citation analysis, campaign measurement, and AI agents that monitor brand discovery across LLM answer surfaces.

Best fit

  • Marketing teams measuring brand presence inside AI-generated answers.
  • SEO and GEO teams studying citation sources and recommendation position.
  • Product marketers comparing a brand with named competitors.
  • Agencies building repeatable visibility reports for clients.
  • AI agents that need structured mention, rank, citation, and sentiment evidence.

A practical visibility scenario

A product marketer defines a brand, its domain, its category, and several close competitors. The Actor creates natural recommendation, alternative, how-to, and use-case prompts, sends them to the selected LLMs, and writes one row per prompt and engine. The marketer can compare is_mentioned, rank_in_response, share_of_voice_pct, and is_cited, then use all_citations to understand which sources shape the answers.

Scheduled runs turn the same prompt set into a consistent trend series for dashboards and reporting.

Quick start

The only required field is brand.

{
"brand": "Notion"
}

A competitive audit can add the domain, category, rivals, and selected LLMs:

{
"brand": "Notion",
"domain": "notion.so",
"competitors": ["Coda", "ClickUp", "Asana"],
"category": "productivity software",
"llms": ["chatgpt", "perplexity", "gemini"],
"mode": "standard",
"promptIntents": [
"recommendation",
"alternatives",
"how_to",
"use_case"
]
}

For a customer-language study, add custom prompts:

{
"brand": "Notion",
"domain": "notion.so",
"competitors": ["Coda"],
"customPrompts": [
"Which workspace works well for an engineering team?",
"How should a product team organize specifications and roadmaps?"
],
"maxPrompts": 5
}

Input reference

FieldPurpose
brandBrand, company, product, or tool being tracked.
domainPrimary website used for citation matching.
aliasesAlternate names counted as brand mentions.
competitorsBrands included in share-of-voice analysis.
categoryMarket category used to shape generated prompts.
llmsSelects ChatGPT, Perplexity, Gemini, and optional Claude checks.
modeChooses quick, standard, or deep prompt coverage.
promptIntentsSelects recommendation, alternative, comparison, how-to, use-case, review, or pricing prompts.
customPromptsAdds exact customer or stakeholder questions.
maxPromptsSets a prompt cap per selected LLM.
countryOptional country code (US, GB, DE, ...) to check answers for people there.
trackTrendCompare this run with your previous run for the same brand and country (default on).
webhookUrlReceives the completed summary for downstream automation.
demoModeRuns a connectivity and workflow check.

Input aliases are normalized in the runtime, which helps agents map natural field names such as company, product, rivals, engines, questions, or queries into the canonical contract.

Output data

Each dataset row represents one brand, prompt, and LLM check. Fields can include:

  • llm, model, prompt, and prompt_intent
  • brand, is_mentioned, and mention_count
  • rank_in_response and position_score
  • share_of_voice_pct and competitors_mentioned
  • is_cited, brand_citation_url, and all_citations
  • sentiment, excerpt, and full_answer
  • charged_event, country, run_id and checked_at
{
"llm": "chatgpt",
"prompt": "Which productivity workspace works well for product teams?",
"prompt_intent": "recommendation",
"brand": "Notion",
"is_mentioned": true,
"mention_count": 3,
"rank_in_response": 2,
"position_score": 2,
"share_of_voice_pct": 60,
"is_cited": true,
"brand_citation_url": "https://notion.so/product",
"competitors_mentioned": ["Coda"]
}

The key-value store also receives LAST_RUN_SUMMARY with the visibility index, per-LLM scores, share of voice, citation signals, keyword_leaderboard (which brand appears in most engines for each question), trend (change since your last run) and generated recommendations. A configured webhook receives the same completed summary.

Understanding the signals

SignalMeaning
is_mentionedThe brand or one of its aliases appears in the answer.
rank_in_responsePosition when the answer presents an ordered list.
position_scoreRelative location of the first brand mention in the answer.
share_of_voice_pctBrand mentions as a share of tracked competitive mentions.
is_citedThe supplied brand domain appears in answer citations or source text.
all_citationsSource URLs associated with the answer.
sentimentLanguage orientation around the tracked brand.
visibility_indexSummary signal combining mention, position, and citation evidence.

AI agent workflows

The Actor is designed for Apify MCP, direct API calls, and scheduled agent workflows. Its input aliases support natural tool arguments, while the output keeps raw answers and derived metrics together.

Example agent request:

Measure LLM visibility for Notion against Coda and ClickUp in productivity software. Use recommendation and use-case prompts, return mention rank, share of voice, citations, and a summary by engine.

Useful routing guidance:

  • Include domain when citation visibility matters.
  • Include competitors when share of voice is part of the brief.
  • Use custom prompts to mirror actual customer questions.
  • Keep a stable prompt set for scheduled trend analysis.
  • Read LAST_RUN_SUMMARY for compact reporting and the dataset for per-answer evidence.

Run through the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~llm-visibility-tracker/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brand": "Notion",
"domain": "notion.so",
"competitors": ["Coda", "ClickUp"],
"category": "productivity software",
"mode": "standard"
}'

The Apify token stays in the Authorization header. Upstream LLM access is bundled into the Actor, so the user-facing workflow requires only Apify authentication.

How the analysis works

The runtime builds or accepts natural-language prompts, queries each selected LLM through configured provider routes, extracts native citations where available, and normalizes the answer into a shared record. Mention matching includes supplied aliases, competitor matching feeds share of voice, list parsing estimates response rank, and domain matching identifies brand citations.

The summary layer combines the per-answer signals into engine-level and overall visibility reporting while retaining each answer excerpt and citation list for review.

Pricing

Pay per event, platform usage included, model access included. One check = one question answered by one engine; failed checks are free.

EventFree / BronzeSilverGold and above
Visibility check (ChatGPT, Claude)$0.09$0.08$0.075
Visibility check, lite (Perplexity, Gemini)$0.05$0.0475$0.0455

Lite pricing starts on 2026-11-27; until then every check uses the standard event. Example: a standard run (5 questions x ChatGPT, Perplexity, Gemini = 15 checks) costs $1.35 at Free pricing before 2026-11-27, and $0.95 after (5 ChatGPT checks at $0.09 plus 10 Perplexity/Gemini checks at $0.05). Free Apify plans are limited to about 15 checks per run. Use mode, llms and maxPrompts to size a run.

What's new

  • Gemini now runs on a web-search route that does not depend on a separate key: fewer failed checks.
  • Questions run in parallel, so deep audits finish faster; very long runs stop cleanly as PARTIAL instead of timing out.
  • New country input, change-vs-last-run trend, and a per-keyword keyword_leaderboard in the summary.
  • Tiered Store discounts and a cheaper event for Perplexity and Gemini checks.

Best results

  • Provide the canonical brand domain for citation matching.
  • Add common brand aliases and close competitors.
  • Use customer-language prompts that represent real discovery and evaluation questions.
  • Keep prompt wording stable across scheduled comparison runs.
  • Review both derived metrics and the underlying excerpts and citations.

Builder's note

I designed this Actor around an evidence-first visibility workflow. Every summary metric can be traced back to the prompt, answer excerpt, cited URLs, selected engine, and competitor set that produced it. That makes the output useful for both executive reporting and detailed agent analysis.

FAQ

What is the minimum input?

Only brand is required. Adding domain enables citation matching against the brand's own site, and adding competitors enables the share_of_voice_pct metric.

Which answer engines are checked?

By default llms covers ChatGPT, Perplexity, and Gemini; add claude explicitly when you want Claude checks as well. Each row represents one prompt sent to one selected engine.

Do I need my own LLM API keys?

No. Upstream LLM access is bundled into the Actor, so only Apify authentication is required.

How is a run priced and how do I control the size?

Each visibility-check event covers one prompt on one selected LLM, with Apify platform usage included; current event prices are on the live Pricing tab. Use mode (quick, standard, or deep), llms, and maxPrompts to set how many checks a run makes.

Can I test my setup without spending credits?

Yes. Set demoMode to true to run a connectivity check that calls no LLM and exits successfully, which is useful for validating schedules and webhook wiring.

Responsible use

This Actor uses configured LLM provider APIs and stores results in the user's Apify dataset. Use the output for legitimate research and measurement in line with provider terms, privacy requirements, and your organization's data-governance policies.

Do failed checks cost anything?

No. A check is billed only after its result row is saved. Failed or empty engine calls are not charged.

Why are some checks cheaper?

Perplexity and Gemini checks use a lower-priced event than ChatGPT and Claude because they cost less to run. Both are listed on the Pricing tab with Store discount tiers.

Can I compare with my last run?

Yes. Keep trackTrend on and run again with the same brand and country; the summary shows the change in visibility index, mention rate and share of voice.

How do I check a specific country?

Set country to a two-letter code such as GB or DE. ChatGPT uses that location for its web search; Perplexity and Gemini are asked to answer for that country.

Results describe what public AI answer engines return at the time of the check; answers vary between runs. Use the data in line with the terms of the platforms involved.