AI Search Visibility & GEO Rank Tracker: ChatGPT, Gemini avatar

AI Search Visibility & GEO Rank Tracker: ChatGPT, Gemini

Pricing

$15.00 / 1,000 ai answer checkeds

Go to Apify Store
AI Search Visibility & GEO Rank Tracker: ChatGPT, Gemini

AI Search Visibility & GEO Rank Tracker: ChatGPT, Gemini

AI search visibility tracker for GEO/AEO: see if ChatGPT, Perplexity, Gemini, Claude, Grok and Google AI Overviews mention, rank and cite your brand vs competitors. Share of voice, sentiment, cited sources, gap prompts, HTML report, trend alerts. $0.015/check + AI at cost.

Pricing

$15.00 / 1,000 ai answer checkeds

Rating

0.0

(0)

Developer

RS Automation Labs

RS Automation Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

AI Search Visibility & GEO Rank Tracker: ChatGPT, Perplexity, Gemini, Claude, Grok & Google AI Overviews

Track your brand's AI search visibility. Find out whether ChatGPT, Perplexity, Gemini, Claude, Grok and Google AI Overviews mention, rank and cite your brand when people ask buying questions, and how you compare with competitors. Get share of voice, position in the answer, sentiment, the sources each AI cites, "gap" prompts where only competitors appear, and a prioritized fix list. It's a GEO / AEO rank tracker and LLM visibility monitor in one Actor.

No API keys needed. Answers come from the engines' official web-search APIs through Apify's official OpenRouter proxy, and Google AI Overviews come from Apify's official Google AI Overviews Scraper. You can also bring your own OpenRouter, OpenAI, Perplexity or Gemini key. You pay $0.015 per successful check. Failed checks are free.

What does this AI search visibility tracker do?

For every prompt × AI engine it asks the engine a real question with live web search turned on, then analyzes the answer:

  • Brand mentioned? It counts mentions, including aliases and the bare domain.
  • Position: your rank among the tracked brands in the order they appear, plus your position in the answer's list ("#3 of 8").
  • Sentiment and recommended-or-not: positive, neutral, negative or mixed, plus a one-line perception ("A popular free option for an easy-to-read performance overview").
  • Citations: every URL the AI cited, whether your domain was cited and at what rank, and which competitor domains were cited.
  • Competitors: who was mentioned, in what position, with what sentiment, and whether they were recommended.
  • Share of voice in each answer, and a 0–100 visibility score.
  • Brands you're not tracking that the AI recommends.

Then it writes a run summary (JSON plus an HTML report) to the key-value store. The summary has share of voice per engine, mention, top-1 and citation rates, "gap" prompts where only competitors appear, the most-cited source domains, trend versus the previous run, and actionable recommendations.

Use cases

  • SEO / GEO / AEO agencies that report "AI visibility" to clients every month.
  • Marketing and growth teams who want to know whether ChatGPT recommends them or a competitor.
  • Founders checking how AI describes their product before a launch.
  • PR and content teams looking for the sources AI trusts, so they know where to get mentioned.

Supported AI engines

EngineHow it's queriedCountry targeting
ChatGPT (chatgpt)OpenAI model with OpenAI web searchUser location passed to search
Perplexity (perplexity)Perplexity SonarUser location passed to search
Gemini (gemini)Gemini with Google Search groundingCountry hint in the prompt
Claude (claude)Claude model with web searchCountry hint in the prompt
Grok (grok)Grok model with web searchCountry hint in the prompt
Google AI Overviews (google_ai_overview)Apify's official Google AI Overviews Scraper—

LLM engines are called through official APIs (via OpenRouter by default), not by logging in to or scraping chat websites.

Why this Actor?

  • Zero setup. No OpenAI, Perplexity or Gemini accounts are needed. LLM usage is billed at cost to your Apify account through Apify's official OpenRouter integration. You can bring your own key to pay the provider directly.
  • Official APIs only. It never logs in to or scrapes chat UIs. Engines use their own web-search tools (OpenAI web search, Perplexity Sonar, Gemini Google Search grounding, Claude and Grok native search).
  • Six engines in one run, including Google AI Overviews.
  • A cheap analysis fee. Most AI visibility Actors bundle the LLM cost and charge $0.05–$0.30 per check. Here you pay a small per-check fee plus the real LLM cost.
  • Deterministic and auditable. Mentions, positions and citations are computed with rules from the answer you can see. An optional, very cheap LLM pass refines sentiment and recommendations and finds untracked brands.
  • Built for monitoring. Schedule it to get trend deltas between runs and Slack/Discord/Zapier webhooks.

How to use it

  1. Enter your brand and domain, for example GTmetrix and gtmetrix.com.
  2. Add competitors, one per line, as Name | domain (aliases go after a comma: Google PageSpeed Insights, PageSpeed | pagespeed.web.dev).
  3. Add the prompts your buyers ask, or give keywords (e.g. website speed test) and let the Actor generate unbranded buyer prompts ("What is the best website speed test tool?", "Top 10 … in United States", "Alternatives to Pingdom", and so on).
  4. Pick engines, country and optionally language, then click Start.
  5. Open the Overview dataset view, or the HTML report in the Output tab.

Tip: AI answers vary between runs. For more reliable numbers, set Samples per prompt to 2–3 for your most important prompts.

Input example

{
"brandName": "GTmetrix",
"brandDomain": "gtmetrix.com",
"competitors": [
"Google PageSpeed Insights, PageSpeed | pagespeed.web.dev",
"Pingdom | pingdom.com",
"WebPageTest | webpagetest.org"
],
"queries": ["What are the best free tools to test website speed?"],
"keywords": ["website speed test"],
"engines": ["chatgpt", "perplexity", "gemini", "google_ai_overview"],
"country": "US",
"maxChecks": 100
}

Engines: chatgpt, perplexity, gemini, claude, grok, google_ai_overview.

Output example

One dataset row per prompt × engine × sample. This is a real row from a cloud run (2026-10-22, Perplexity, citations shortened):

{
"query": "What are the best free tools to test website speed?",
"engine": "perplexity",
"engineLabel": "Perplexity (Sonar)",
"route": "apify-openrouter-proxy",
"status": "ok",
"model": "perplexity/sonar",
"brand": "GTmetrix",
"country": "US",
"brandMentioned": true,
"brandMentionCount": 3,
"brandPosition": 3,
"brandListPosition": 3,
"listLength": 8,
"brandSentiment": "positive",
"brandRecommended": true,
"brandPerception": "A popular free option for an easy-to-read performance overview.",
"brandDomainCited": false,
"brandCitationRank": null,
"shareOfVoice": 0.231,
"visibilityScore": 70,
"competitorsMentioned": ["Google PageSpeed Insights", "WebPageTest", "Pingdom"],
"topBrandInAnswer": "Google PageSpeed Insights",
"brandsRanked": ["Google PageSpeed Insights", "WebPageTest", "GTmetrix", "Pingdom"],
"mentionCounts": {"GTmetrix": 3, "Google PageSpeed Insights": 4, "Pingdom": 2, "WebPageTest": 4},
"citations": [
{"url": "https://www.uptrends.com/tools/website-speed-test", "title": "Website Speed Test - Monitor & Resolve", "domain": "uptrends.com", "isBrand": false, "competitor": null},
{"url": "https://www.guru99.com/website-speed-test-tools.html", "title": "11 Best FREE Website Performance Test Tools (2026) - Guru99", "domain": "guru99.com", "isBrand": false, "competitor": null}
],
"citationCount": 20,
"citedDomains": ["uptrends.com", "seo.com", "guru99.com", "contentsquare.com", "calibreapp.com", "w3era.com"],
"otherBrandsMentioned": ["Lighthouse", "Uptrends", "Calibre"],
"analysisMethod": "rules+llm",
"upstreamCostUsd": 0.00541,
"checkedAt": "2026-10-22T10:31:55Z"
}

Same run, all engines, for the same prompt:

EngineMentionedPositionSentimentCitationsOwn domain citedVisibility
ChatGPTyes2neutral8no70
Perplexityyes3positive20no70
Google AI Overviewyes2positive10yes92

Main fields

FieldMeaning
brandMentioned, brandMentionCountWhether and how often your brand (name, aliases or domain) appears
brandPositionYour rank among the tracked brands, in order of first mention (1 = mentioned first)
brandListPosition, listLengthYour position in the answer's list or ranking, if it has one
brandSentiment, brandRecommended, brandPerception, brandContextHow the answer talks about you
brandDomainCited, brandCitationRank, brandInCitedTitlesWhether your website is among the AI's sources
competitors[], competitorsMentioned, competitorsCitedThe same metrics for each competitor
shareOfVoiceYour mentions divided by all tracked-brand mentions in this answer
visibilityScore0–100: mentioned (40) + position (up to 30) + own domain cited (15) + sentiment (up to 15)
citations[], citedDomainsEvery source URL with title and domain
otherBrandsMentionedBrands the AI mentioned that you don't track
statusok, no_answer (e.g. Google showed no AI Overview; free) or error (free)
upstreamCostUsdReal LLM cost of this check as reported by OpenRouter, before any plan multiplier

Dataset views

  • Overview: one line per check with mention, position, sentiment, citation and score.
  • Details: perception, context, ranking and competitor detail.
  • Citations: sources and domain citations.
  • Issues: failed checks with their error codes.

Key-value store

  • REPORT: HTML report with KPI cards, share-of-voice bars, per-engine table, gaps, most-cited sources and recommendations.
  • OUTPUT: the same summary as JSON (totals, metrics, byEngine, shareOfVoice, shareOfVoiceByEngine, byQuery, gaps, topCitedDomains, otherBrandsDiscovered, trend, recommendations).

Example recommendations from a real run (prompt "How can I check my website's Core Web Vitals for free?"):

  • High: Close competitor-only answers. "4 answers mention a competitor but not GTmetrix… Sources cited in those answers: samuelschmitt.com, wp-rocket.me, inmotionhosting.com, gscwizard.com, gtechme.com, loadfocus.com - pitch reviews, comparisons, listicle inclusion or community answers there."
  • Low: Brands AI recommends that you are not tracking. "Consider adding these as competitors: CrUX, Search Console, LoadFocus, SpeedVitals, RUMvision."

Error codes

CodeMeaning
PROXY_NOT_AVAILABLEApify's OpenRouter proxy refused the request; add your own OpenRouter key
AUTH_ERRORAn API key was rejected
INSUFFICIENT_CREDITSThe provider or OpenRouter account has no credit
RATE_LIMITED, UPSTREAM_ERRORTemporary; already retried with backoff
BAD_REQUESTThe model refused the request, e.g. a model override without web search
TIMEOUT, NETWORK_ERRORThe engine didn't answer in time
NO_CREDENTIALSNo key and no Apify token available (should not happen on Apify)
EMPTY_ANSWER, NO_AI_OVERVIEWThe engine returned nothing, or Google showed no AI Overview (no_answer rows)
SKIPPED_CHARGE_LIMIT_REACHEDYour max-charge limit for the run was reached

Failed checks are never charged.

Track AI visibility over time (LLM visibility monitoring)

Turn on Compare with previous run, keep the same Monitor ID and schedule the Actor weekly. The summary then shows trend deltas versus the previous run, and the optional webhook posts a short text summary to Slack, Discord, Zapier or any endpoint.

How much does AI rank tracking cost?

You pay two things:

  1. This Actor's fee: $0.015 per successful check ($15 per 1,000 prompt × engine checks; query-check event). Failed checks, skipped checks and "no AI Overview" results are free. There is no start fee or other paid event, and Apify platform compute is included.
  2. The real AI cost, at cost:
    • No key (default): billed to your Apify account through Apify's official OpenRouter proxy. Apify bills this at the OpenRouter price on paid plans, and at 10× on the Apify FREE plan.
    • Your own key: billed by OpenRouter, OpenAI, Perplexity or Google directly. Apify adds nothing on top.
    • Google AI Overviews: billed by Apify's Google AI Overviews Scraper per AI Overview found (about $0.003 on the FREE plan, less on paid plans).

Example: 10 prompts × 4 engines every week = 40 checks = $0.60 in Actor fees per week, plus the AI cost per engine below.

Measured AI cost per check (real cloud runs, October 2026, before any plan multiplier):

Engine (default model)Typical AI cost per check
ChatGPT (openai/gpt-4.1-mini + web search)$0.001 – $0.015
Perplexity (perplexity/sonar)~$0.006
Gemini (google/gemini-3.1-flash-lite + Google Search)~$0.015 – $0.03 (Google charges per search the model runs)
Claude (anthropic/claude-haiku-4.5 + web search)~$0.01 + tokens (estimate, $0.01/search)
Grok (x-ai/grok-4.3 + web search)~$0.005 + tokens (estimate, $0.005/search)
LLM analysis (openai/gpt-4.1-nano)~$0.0001

The platform compute is tiny (256 MB, I/O-bound). A 4-check run used about $0.0001 of compute.

Tip for the Apify FREE plan: add your own OpenRouter API key to avoid the 10× proxy multiplier. Or use Perplexity and Google AI Overviews, which are the cheapest engines.

Using your own API keys (optional)

KeyUsed for
OpenRouter API keyAll LLM engines and the analysis model, billed by OpenRouter
OpenAI API keyChatGPT engine, through the OpenAI Responses API with web_search
Perplexity API keyPerplexity engine (sonar)
Gemini API keyGemini engine, through Gemini API Google Search grounding

A provider key takes priority for its engine, then an OpenRouter key, then Apify's proxy. All keys are secret inputs. They are encrypted by Apify and never logged or written to output.

FAQ

Is this the same as what users see in ChatGPT, Gemini or Perplexity? It's very close but not identical. The Actor uses each vendor's official API with live web search, which is the same family of models and search as the consumer apps. Consumer apps also add personalization, memory and location, so treat results as a representative, repeatable sample. Repeated samples (runsPerQuery) smooth out the randomness.

Do I need API keys? No. Without keys, LLM usage goes through Apify's official OpenRouter proxy and is billed at cost to your Apify account. Keys are optional.

How is this different from an AI search readiness audit? Readiness audits score your website (crawlability, structured data, and so on). This Actor measures the actual answers: whether AI engines mention, rank and cite you for real buyer prompts.

Is there an AI search volume metric? No. The Actor measures visibility in answers, not how often people ask a prompt.

Can I call it from an AI agent or MCP client? Yes. Like every Apify Actor, it can be called through Apify's MCP server or the API.

Why don't you scrape the ChatGPT website? Scraping logged-in chat UIs breaks their terms of service and is fragile. Official APIs are legal, stable and cheap.

Does country targeting work? It does for ChatGPT and Perplexity (user location is passed to the search). Other engines get the country in the prompt ("…in United States"). Google AI Overviews currently use the scraper's default location.

How do I track over time? Turn on Compare with previous run, keep the same Monitor ID, and schedule the Actor weekly. The summary then includes deltas, and the webhook posts a short text summary.

Can I change models? Yes. Use Model overrides, e.g. {"gemini": "google/gemini-3.5-flash"}. The model must support native web search on OpenRouter.

Limitations

  • AI answers are non-deterministic, so run several samples for decisions.
  • Rule-based mention detection matches the names and aliases you give. Add aliases for common abbreviations.
  • Sentiment without the LLM pass uses a simple lexicon.
  • Google AI Overviews appear only for some queries. "No AI Overview" rows are free and reported as no_answer.
  • On the Apify FREE plan, the OpenRouter proxy costs 10× the provider price.

Support

Open an issue on the Issues tab with your run ID. Feature requests are welcome.