AI Search Visibility & GEO Rank Tracker: ChatGPT, Gemini
Pricing
$15.00 / 1,000 ai answer checkeds
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
Maintained by CommunityActor 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
| Engine | How it's queried | Country targeting |
|---|---|---|
ChatGPT (chatgpt) | OpenAI model with OpenAI web search | User location passed to search |
Perplexity (perplexity) | Perplexity Sonar | User location passed to search |
Gemini (gemini) | Gemini with Google Search grounding | Country hint in the prompt |
Claude (claude) | Claude model with web search | Country hint in the prompt |
Grok (grok) | Grok model with web search | Country 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
- Enter your brand and domain, for example
GTmetrixandgtmetrix.com. - Add competitors, one per line, as
Name | domain(aliases go after a comma:Google PageSpeed Insights, PageSpeed | pagespeed.web.dev). - 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). - Pick engines, country and optionally language, then click Start.
- 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:
| Engine | Mentioned | Position | Sentiment | Citations | Own domain cited | Visibility |
|---|---|---|---|---|---|---|
| ChatGPT | yes | 2 | neutral | 8 | no | 70 |
| Perplexity | yes | 3 | positive | 20 | no | 70 |
| Google AI Overview | yes | 2 | positive | 10 | yes | 92 |
Main fields
| Field | Meaning |
|---|---|
brandMentioned, brandMentionCount | Whether and how often your brand (name, aliases or domain) appears |
brandPosition | Your rank among the tracked brands, in order of first mention (1 = mentioned first) |
brandListPosition, listLength | Your position in the answer's list or ranking, if it has one |
brandSentiment, brandRecommended, brandPerception, brandContext | How the answer talks about you |
brandDomainCited, brandCitationRank, brandInCitedTitles | Whether your website is among the AI's sources |
competitors[], competitorsMentioned, competitorsCited | The same metrics for each competitor |
shareOfVoice | Your mentions divided by all tracked-brand mentions in this answer |
visibilityScore | 0–100: mentioned (40) + position (up to 30) + own domain cited (15) + sentiment (up to 15) |
citations[], citedDomains | Every source URL with title and domain |
otherBrandsMentioned | Brands the AI mentioned that you don't track |
status | ok, no_answer (e.g. Google showed no AI Overview; free) or error (free) |
upstreamCostUsd | Real 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
| Code | Meaning |
|---|---|
PROXY_NOT_AVAILABLE | Apify's OpenRouter proxy refused the request; add your own OpenRouter key |
AUTH_ERROR | An API key was rejected |
INSUFFICIENT_CREDITS | The provider or OpenRouter account has no credit |
RATE_LIMITED, UPSTREAM_ERROR | Temporary; already retried with backoff |
BAD_REQUEST | The model refused the request, e.g. a model override without web search |
TIMEOUT, NETWORK_ERROR | The engine didn't answer in time |
NO_CREDENTIALS | No key and no Apify token available (should not happen on Apify) |
EMPTY_ANSWER, NO_AI_OVERVIEW | The engine returned nothing, or Google showed no AI Overview (no_answer rows) |
SKIPPED_CHARGE_LIMIT_REACHED | Your 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:
- 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.
- 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)
| Key | Used for |
|---|---|
| OpenRouter API key | All LLM engines and the analysis model, billed by OpenRouter |
| OpenAI API key | ChatGPT engine, through the OpenAI Responses API with web_search |
| Perplexity API key | Perplexity engine (sonar) |
| Gemini API key | Gemini 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.