AI Search Visibility Tracker — ChatGPT, Perplexity, Gemini avatar

AI Search Visibility Tracker — ChatGPT, Perplexity, Gemini

Pricing

from $50.00 / 1,000 citation record delivereds

Go to Apify Store
AI Search Visibility Tracker — ChatGPT, Perplexity, Gemini

AI Search Visibility Tracker — ChatGPT, Perplexity, Gemini

See which sources Google AI Overview, ChatGPT, Perplexity and Gemini cite in your category, and where competitors appear and you do not. The default engine needs no API key and has no daily cap (English). Other languages run on your own Gemini key. Stability scoring, week-over-week diff.

Pricing

from $50.00 / 1,000 citation record delivereds

Rating

0.0

(0)

Developer

yestrue

yestrue

Maintained by Community

Actor stats

2

Bookmarked

14

Total users

0

Monthly active users

4 days ago

Last modified

Categories

Share

AI Search Visibility Tracker — ChatGPT, Perplexity, Gemini, Google AIO

See which sources ChatGPT, Perplexity and Gemini actually read when someone asks about your category, and where your competitor is cited and you are not. Across 24 languages, with weekly diff alerts and a stability score that filters one-off hallucinations.

Knowing whether you appear is the thermometer. The useful part is the map underneath it.

Every answer comes back with the full source list the model pulled from. Ask "best CRM for small business" and you get the actual domains it cited: G2, a Capterra listing, a Reddit thread, two vendor blogs. That list is a work list. You cannot edit an LLM, but you can get reviews onto G2, get listed on Capterra, and show up in that Reddit conversation. Those are the pages the model reads next month.

The second thing you get is an argument rather than a metric: your competitor is cited in 6 of 10 answers, you are in 1. That is the slide an agency puts in front of a client, and it is why most of the people paying for this category are agencies rather than the brands themselves.

Be clear about the limits before you buy. Nobody reliably knows how to force a citation yet; the source list is the best available lever, not a guaranteed one. LLM answers vary between runs, which is what the stability score is for, so a single measurement means little. AI referral traffic is still small next to Google for most businesses, and no tracker can attribute a sale to an AI mention.

Three things here that the alternatives do not have, and you can check each one against their input schema rather than taking our word for it.

1. It runs in your market's language. Semrush states US-English only; Profound and Otterly are English-first; the most-used Apify alternative has no language parameter at all. That is not a small gap: the same intent surfaces a completely different source set per language. In the run below, the German prompt returns 5 of 7 sources from .de/.at/.ch and the English one 0 of 11. If you sell in Germany, Poland or Hungary, an English-only tracker is measuring somebody else's market.

2. It tells you what is real and what was a one-off. Set samplesPerQuery above 1 and every query runs several times, and each source gets a stability score. A domain cited once in five runs is noise; one cited five times out of five is the model's settled answer. Trackers that ask once cannot tell those apart, and neither can you from a single screenshot.

3. It shows the change, not just the state. Pass last week's dataset ID and you get gained and lost citations per query. A monthly report needs a delta, and "you dropped out of 3 answers since last month" is the line that gets read.

English needs no API key at all. The default engine reads Google's own AI Overview and the sources behind it, so you can run it on your brand right now with nothing to sign up for. Other languages need a free key you get in two minutes, and then you pay the AI vendors directly with no markup: this actor charges for the analysis, not for reselling API calls, so you see every underlying cost and pick your own model.

Multilingual edge — same intent in 4 languages, real cloud run

If this actor saves you time, please rate it on Apify. Reviews raise its Store visibility and help the next person find it.

Table of contents

Why this actor

The Generative Engine Optimization (GEO) tracker market in 2026 is dominated by enterprise tools — Otterly ($29–489/mo), Profound ($99–2k+/mo, no free trial), Peec AI (€89–199/mo), Semrush AI Toolkit ($99–549/mo), Ahrefs Brand Radar ($328+/mo). They share three blind spots:

  1. Pricing locks out indie SEOs and small agencies — the cheapest viable tier is $29/mo for 15 prompts.
  2. Multilingual coverage is shallow — Semrush admits "US English only," Profound and Otterly are English-first.
  3. No bring-your-own-key option — you pay them, they pay the LLM vendors, and you can't see the underlying call.

This actor flips all three:

  • $0/month entry point — English runs need no key at all. Other languages need a free Gemini key, and that free tier is small (20 requests/day per model as of August 2026), so it fits a handful of tracked prompts rather than a whole portfolio.
  • 24 languages — Hungarian, German, French, Spanish, Italian, Polish, Czech, Romanian, Turkish, Japanese, Korean, Russian, Ukrainian, and 11 more.
  • BYOK transparency — your OpenAI / Perplexity / Anthropic keys, your bills, your data. The actor never proxies your traffic through our account.

What it does

Given a list of queries (e.g. "best CRM for small business", "top fogorvosok Budapesten") and one or more domains you care about, the actor:

  1. Fans out each query to every selected engine: Google AI Overview (no key, English only), Gemini, ChatGPT (gpt-4o-mini-search-preview), Perplexity Sonar, Anthropic Claude with web_search.
  2. Captures the answer text plus the full source list the model read (URL + title + snippet). This is the part you act on: the domains here are where the model looks for your category, so they are where you need to exist.
  3. Detects whether each tracked domain appears — via citation OR via brand mention in the answer text.
  4. Computes citation share-of-voice across your domains and competitor domains.
  5. Optionally runs each query N times and reports a stability score (how consistently each source is cited — useful for filtering one-shot hallucinations).
  6. Optionally diffs against a previous run and surfaces gained/lost citations per query (delta mode).

Quick start ($0/month)

English: no key, no setup, no signup

The default engine, google-aio, reads Google's own AI Overview and the sources it cites. It needs no API key from anyone. Just run it:

{
"queries": ["best CRM for small business"],
"brandDomains": ["yourcompany.com"],
"engines": ["google-aio"],
"serpCountry": "us"
}

You get the overview text, every domain Google cited to build it, and whether your brand and your competitors are among them. Typical run: about 9 seconds per query.

Every other language: bring a key

Be clear about this before you start, because it is the one real limitation. google-aio works in English only. Measured 2026-08-04: hl=en completes in ~9 s, while hl=de and hl=hu never finish at all — Google serves the page but withholds the locale bundle that renders the overview to anything it identifies as automated. Seven workarounds were tried and documented in src/engines/google-aio.js; none of them work, and this is not something a future release will quietly fix.

So if your market is German, French, Polish or Hungarian, use the API engines instead:

  1. Get a free Gemini key: https://aistudio.google.com/apikey (Google account, no credit card, about two minutes).
  2. Paste it into geminiApiKey and set engines: ["gemini"] plus your language.

That is where the 24-language coverage, the stability score and multi-sample runs live. Your key, your quota, your model choice, and you pay Google directly with no markup from us.

Be realistic about the free Google tier: measured against the live API on 2026-08-02 it is 20 requests per day per model, not the 250-1000 that older versions of this README quoted. The cap is per model, so gemini-2.5-flash and gemini-2.5-flash-lite have separate allowances. That is enough to track a handful of prompts daily at zero cost. For a real portfolio, enable billing on your Google account or add a key for another engine.

Comparison vs Otterly / Profound / Peec / Semrush

FeatureThis actorOtterlyProfoundPeec AISemrush AIAhrefs Brand Radar
Entry price$0/mo (keyless English runs)$29/mo$99/mo€89/mo$99/mo$328/mo
Pay-per-query option✅ $0.05/query
Bring-your-own-key
24-language support⚠️ EN-default⚠️ EN-default⚠️ partial❌ US-EN only⚠️ EN-default
Local-CC TLD source surfacing
Stability score across N samples⚠️
Week-over-week delta diff
Free trial / no monthly minimum⚠️ 15 prompts max❌ no free trial⚠️⚠️
CSV export✅ via Apify
Apify integration / programmatic API✅ native
Open architecture (you see the prompts)

Bottom line: if you're an indie SEO, an agency running multi-country campaigns, or a B2B SaaS marketer in a non-English market, the wedge here is real. If you need an enterprise UI with 50 stakeholder seats, look at Profound.

Engine support — Gemini, ChatGPT, Perplexity, Claude

Same query, 4 engines side-by-side

EngineKey neededApprox cost / queryDaily capLanguages
Google AI Overview (default)❌ none$0noneEnglish only
Google Geminihttps://aistudio.google.com/apikey$0 on the free key, ~$0.035 paid (grounded search is billed per request, not per token)free key: 20/day per model; paid: noneall 24
OpenAI / ChatGPThttps://platform.openai.com/api-keys~$0.025vendor limitsall 24
Perplexity Sonarhttps://www.perplexity.ai/settings/api~$0.005–0.015vendor limitsall 24
Anthropic Claudehttps://console.anthropic.com/~$0.01–0.02vendor limitsall 24

The short version: the 20/day cap is not this actor's limit. It is Google's quota on a free Gemini API key, and it only applies if you choose the Gemini engine with a free key. The default engine has no key, no vendor bill and no daily cap. If you track non-English markets at volume, bring a paid Gemini key.

A single query across all four BYOK engines costs you ~$0.075–0.10 in third-party API fees. You pay them directly. The default engine, google-aio, has no third-party fee at all. The actor itself charges $0.05 per citation record on the Apify Store (PAY_PER_EVENT).

Output schema

A single citation record from a real cloud run

Each engine call writes one record to the dataset:

{
"type": "citation",
"engine": "gemini",
"model": "gemini-2.5-flash",
"query": "best CRM for small business",
"language": "en",
"answerText": "...",
"citationCount": 7,
"citations": [
{"url": "https://hubspot.com/", "host": "hubspot.com", "registrable": "hubspot.com", "title": "HubSpot CRM"}
],
"brandMatches": {
"yourcompany.com": {"cited": true, "viaCitation": true, "viaText": false, "matchedUrls": ["https://yourcompany.com/pricing"]}
},
"competitorMatches": {
"competitor.com": {"cited": false, "viaCitation": false, "viaText": false, "matchedUrls": []}
},
"citationShare": {
"yourcompany.com": {"hits": 1, "sharePct": 14.3},
"competitor.com": {"hits": 0, "sharePct": 0}
},
"latencyMs": 2104
}

The actor also writes one stability record per (query, engine) when samplesPerQuery > 1, one delta record when previousRunDatasetId is set, and a final summary record closing every run.

Stability score — filter out hallucinations

Stability bars across 5 samples

AI answers are not deterministic. Run the same query twice and you'll often get a different set of citations — Gemini and ChatGPT both vary 60–87% per run depending on the model.

The stability score solves this. Set samplesPerQuery: 3 (or 5 for high-confidence work) and the actor:

  1. Runs the query N times against each engine.
  2. Counts how many of the N samples cite each domain.
  3. Reports a stability value: 1.0 = cited every time, 0.5 = half the time, 0.2 = one-shot.

Recommended filter: ignore citations with stability < 0.5. These are likely hallucinations rather than real AI rankings. The actor never auto-filters — it surfaces the score so you decide.

{
"type": "stability",
"engine": "gemini",
"query": "best email marketing platform for SaaS startups",
"samples": 5,
"stability": {
"custify.com": {"occurrences": 5, "samples": 5, "stability": 1.0},
"sequenzy.com": {"occurrences": 5, "samples": 5, "stability": 1.0},
"securemailmerge.com": {"occurrences": 4, "samples": 5, "stability": 0.8},
"encharge.io": {"occurrences": 4, "samples": 5, "stability": 0.8},
"ventureharbour.com": {"occurrences": 3, "samples": 5, "stability": 0.6},
"memberspace.com": {"occurrences": 1, "samples": 5, "stability": 0.2}
}
}

Delta mode — week-over-week diff

Gained / lost domains week-over-week

The delta mode makes monitoring meaningful. Two runs alone tell you a snapshot — what matters is what changed.

Pass the previous week's dataset ID as previousRunDatasetId in the input, and the actor writes a delta record:

{
"type": "delta",
"previousRunDatasetId": "5sxIJEsBKrwa0gDgc",
"gained": {
"best CRM for SMB": ["hubspot.com", "pipedrive.com"],
"DACH-region B2B SaaS": ["sevdesk.de", "crm-software.at"]
},
"lost": {
"best CRM for SMB": ["salesforce.com"],
"top PM tools 2026": ["monday.com"]
},
"unchangedQueryCount": 7
}

A single run with delta mode gives you both today's snapshot AND the diff vs last week — perfect for weekly Slack alerts ("salesforce.com dropped out of 'best CRM' citations this week").

Recipes

Daily monitoring with weekly diff

Schedule the actor daily via Apify schedules. Pass last week's defaultDatasetId as previousRunDatasetId to get a weekly diff alongside today's snapshot.

{
"queries": ["best CRM for small business", "top SaaS marketing tools"],
"brandDomains": ["yourcompany.com"],
"competitorDomains": ["competitor1.com", "competitor2.com"],
"engines": ["gemini"],
"geminiApiKey": "AIza...",
"samplesPerQuery": 3,
"previousRunDatasetId": "<paste-from-last-weeks-run>"
}

Multilingual brand share-of-voice

Set language: "hu" (or de, fr, …) and Gemini will reply in that language and prefer same-language sources. Especially useful for European B2B SaaS, agencies running multi-country pipelines, or local SEO consultants.

{
"queries": ["legjobb CRM kis vállalkozásoknak", "top projektmenedzsment szoftver"],
"brandDomains": ["yourcompany.com"],
"engines": ["gemini"],
"geminiApiKey": "AIza...",
"language": "hu",
"samplesPerQuery": 3
}

Stability filter for hallucinations

Set samplesPerQuery: 3 and ignore citations whose stability < 0.5 — these are likely one-shot hallucinations rather than reliable AI rankings.

Multi-engine consensus tracking

To find sources cited consistently across all 4 engines (the strongest signal), select all 4 engines and look for citations that appear in every engine's record:

{
"queries": ["best open-source web scraping framework"],
"brandDomains": ["yourcompany.com"],
"engines": ["gemini", "openai", "perplexity", "anthropic"],
"geminiApiKey": "AIza...",
"openaiApiKey": "sk-...",
"perplexityApiKey": "pplx-...",
"anthropicApiKey": "sk-ant-..."
}

Use cases by persona

SEO agency lead (10–50-person shop)

You manage GEO for 5–30 client brands. Otterly's $189/mo plan caps you at 100 prompts (~3 prompts per client). Profound and Peec scale linearly with cost.

With this actor: pay-per-query at $0.05 with white-label CSV export. 30 clients × 50 prompts/month = 1,500 queries × $0.05 = $75/month total. Charge each client $50–100 for the report — that's $1,425–2,925/month margin.

In-house SEO at B2B SaaS

Your CMO asks weekly: "Are we showing up in ChatGPT?" You don't need a $499/mo dashboard — you need a daily snapshot dropped into Slack.

With this actor: schedule the actor daily, parse the delta record, fire a Slack webhook on lost citations. Total tooling cost: $75–225/month for 50 prompts × 30 days × $0.05 (up to 3 samples for stability).

PR / Comms team

Crisis-monitoring AI search results — "are negative articles getting cited when people ask about us?"

With this actor: run nightly with a sentiment-pass downstream (any LLM you wire up). Pay-per-query is perfect for the bursty workload.

Indie SEO / consultant

You charge clients $300–600/month for SEO consulting. GEO is the new add-on. Otterly Lite is $29 for 15 prompts — barely enough for one client.

With this actor: $0.05/prompt, and English runs need no AI key at all — the default google-aio engine has no vendor cost and no per-key daily cap. Mark up the actor cost 10× and you've added $150/client/month with no tool overhead.

Hungarian / German / French / Polish B2B brand

The Otterly/Profound/Peec stack treats your market as an afterthought. Same prompt in your language surfaces a completely different set of sources — and that's the rendering your prospects see.

With this actor: run all your queries in your language, surface .hu/.de/.fr/.pl sources, build a positioning brief that matches your local prospect's actual search experience.

Pricing

The actor uses PAY_PER_EVENT pricing on the Apify Store:

EventChargeDescription
apify-actor-start$0.0001Per run start. Tiny platform overhead.
citation-record$0.05Per citation record delivered (one engine × one query × one sample).
error / stability / delta / summary$0Not billed.

Your true cost per query depends on which engines you select:

  • Google AI Overview (default, no key) → $0 LLM + $0.05 actor = $0.05/query
  • Gemini, free tier (20 requests/day per model) → $0 LLM + $0.05 actor = $0.05/query
  • Gemini, paid tier → ~$0.035 LLM (grounded search is billed per request, not per token) + $0.05 actor = ~$0.085/query
  • All four BYOK engines paid → ~$0.075–0.10 LLM + $0.20 actor (one citation record per engine) = ~$0.275–0.30/query

For comparison, Otterly's effective per-prompt rate is $1.93 (= $29/15 prompts on the Lite plan). This actor is 95–99% cheaper.

FAQ

Q: Do I have to use Gemini? Can I run only on ChatGPT? A: Yes. You can supply only the OpenAI key and select engines: ["openai"]. The actor will skip Gemini gracefully. Same for any engine combo — if a key is missing, the engine is skipped with a warning.

Q: Is my API key safe? A: Yes. The Apify input-schema marks all key fields as isSecret: true. They're encrypted at rest and never logged. You can also store the key in your Apify account's secret store and reference it via {{secrets.geminiApiKey}} in the input.

Q: How is this different from running ChatGPT manually? A: Three things: (1) automated scheduled runs with diff alerts; (2) consistent multi-engine + multilingual coverage; (3) structured dataset output you can pipe into your BI / CRM / SEO dashboard.

Q: Why doesn't it scrape ChatGPT.com directly? A: Two reasons. First, OpenAI's ToS forbids automated extraction. Second, the official Responses API with the web_search_preview tool returns the same answer quality plus structured citations — and is BYOK-compliant.

Q: Does this cover Google AI Overviews? A: Yes, and it is the default engine. google-aio reads Google's own result page through Apify's SERP proxy and extracts the AI Overview text plus the sources behind it — no API key needed from anyone. It is English-only: Google does not serve the language JS bundle through the SERP proxy, so non-English AI Overviews never render. For other languages, use Gemini grounding, which hits the same search index.

Q: How do I track citations from Bing Chat / Copilot / Grok? A: Not in v0.1. The architecture supports adding engines (one file under src/engines/); roadmap items.

Q: Will this work for Hungarian / Polish / Turkish keywords? A: Yes. Set language: "hu" (or pl, tr, …). Gemini, ChatGPT, Perplexity all handle these languages natively. The citation-parser is language-agnostic — it works on URLs and domains, not text.

Q: What if a query returns no citations? A: The record is still written with citationCount: 0 and citations: []. The brand-matching logic also checks the answer text for the brand name, so you'll still see viaText: true/false even when no URLs are returned.

Q: How do I export to CSV? A: From the Apify dataset UI: open the run → Storage → Export → CSV. Or via API: https://api.apify.com/v2/datasets/<id>/items?format=csv.

Q: Can I run this on a schedule? A: Yes. Apify schedules are free up to 100 schedules per account. Set up a daily/weekly cron in the Apify Console.

Q: Why is the GEO/AEO market so crowded if multilingual is unsolved? A: Most enterprise tooling vendors are based in the US — their default assumption is English-default. The European market is small enough that the dominant US players don't prioritize it, but big enough that an indie tool can carve a niche. That's the wedge.

Q: Will the actor still work after Gemini changes its model names? A: Yes. The default model is configurable via geminiModel input. If gemini-2.5-flash is renamed, you set geminiModel: "gemini-3-flash" (or whatever) without a code change. Same for OpenAI / Perplexity / Anthropic models.

Q: Does it support paid Gemini tiers (gemini-2.5-pro, gemini-3-flash-preview)? A: Yes. Set geminiModel: "gemini-2.5-pro" or any model accessible to your key. The free Gemini tier covers gemini-2.5-flash and gemini-2.5-flash-lite only — paid models require billing enabled on your Google AI Studio account.

Q: What exactly am I charged, and when did that change? A: $0.05 per citation record from 10 August 2026. Before that date the rate was $0.02, and before 14 May 2026 the actor was free while Apify's mandatory 14-day price-change notice ran. You are never charged for the AI vendor's API calls — those go to your own key, billed by them directly.

Troubleshooting

Problem: All citations return google.com host. Cause: Old build. Gemini's grounding API returns redirect URLs that look like vertexaisearch.cloud.google.com/grounding-api-redirect/.... v0.1.1+ extracts the real source from the web.title field. Make sure you're running the latest build.

Problem: "Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests" Cause: You're hitting Gemini's free-tier daily limit. Measured 2026-08-02: 20 requests per day, per model on both gemini-2.5-flash and gemini-2.5-flash-lite — Google has tightened this considerably, so check the current limits before planning around any number. Since the cap is per model, switching geminiModel gets you a fresh allowance. Other solutions: (a) wait for the daily reset, (b) enable billing on your Google AI Studio account, (c) supply an OpenAI/Perplexity/Anthropic key as fallback.

The actor tells these apart for you: a per-minute limit is retried automatically with backoff, while a spent daily quota fails immediately with a message saying so, instead of stalling the run on a window that won't reopen.

Problem: Citations vary on every run. Cause: AI answers are non-deterministic. This is expected. Solution: set samplesPerQuery: 3 (or 5) and use the stability score to filter out one-shot citations.

Problem: "Engine 'X' selected but no API key supplied — skipping." Cause: You selected an engine in engines but didn't provide its API key. Add the key, or remove the engine from the selection.

Problem: "Invalid value provided in updatedActor: description must be at most 300 characters long." Not a runtime issue — this is an Apify Store metadata constraint. Doesn't affect actor execution.

Problem: Run succeeds but the dataset is empty. Cause: All engine calls failed silently (likely all keys missing or invalid). Check the run log — error records should still be in the dataset, and the summary record's stats.failed field tells you the error count.

Problem: 503 errors on Gemini. Cause: Vendor-side overload. This is transient. The actor doesn't auto-retry on 503 in v0.1 — re-run the same input after a few minutes.

Problem: Apify Store page shows old README / icon. Cause: Apify Store CDN cache — typically 10–30 minutes after a build. Hard-refresh the public page or wait.

Local development

# install deps
npm install
# unit tests on pure-JS utils (no API keys, no network)
npm test
# end-to-end smoke test against real engines
GEMINI_API_KEY=AIza... npm run smoke

scripts/test-utils.js validates the citation parser, brand-detector, share-of-voice math, stability computation and delta diff with hand-crafted fixtures — runs in under 100ms with no network.

scripts/smoke.js calls each engine for which a key is set and prints a compact citation report. Useful for verifying the adapters still work after API surface changes.

scripts/test-comprehensive.js is a 6-phase live integration runner that verifies all engine adapters with billing-aware error handling. Used to certify each release.

Architecture

.
├── .actor/ Apify actor metadata (actor.json, input_schema.json)
├── src/
│ ├── main.js entry point — reads input, fans out, writes dataset
│ ├── utils.js pure helpers (no I/O): canonicalHost, citation parsing, share-of-voice, delta diff
│ └── engines/
│ ├── gemini.js Gemini 2.5 Flash + google_search grounding (free tier)
│ ├── openai.js Responses API + web_search_preview tool
│ ├── perplexity.js Chat completions + sonar model
│ └── anthropic.js Messages API + web_search tool
├── scripts/
│ ├── test-utils.js offline assertions for utils.js
│ ├── smoke.js live-network smoke test for the engine adapters
│ ├── test-comprehensive.js 6-phase integration runner (multi-model, multilingual, stability, delta, edge cases)
│ ├── cloud-run.js REST-API trigger + status poll for cloud verification
│ └── update-actor-metadata.js applies Store metadata via API (idempotent)
└── INPUT_SCHEMA.json legacy top-level schema (also at .actor/input_schema.json)

The four engine adapters share the same return shape so main.js doesn't care which engine produced a record. Adding a new engine = one file under src/engines/ plus one entry in engineAdapters in main.js.

Limitations / honest disclosure

  • AI answers are non-deterministic. A single sample of a single query can miss citations that appear most of the time — that's why we expose samplesPerQuery and a stability score. Don't make business decisions on a samplesPerQuery: 1 snapshot; use 3+ for monitoring you trust.
  • The free Gemini tier is small, and got smaller. Measured against the live API on 2026-08-02: 20 requests per day, per model on both gemini-2.5-flash and gemini-2.5-flash-lite, plus a per-minute limit on top. Earlier versions of this README quoted 250/day and ~1000/day — those numbers were accurate when written and are not any more, which is the honest lesson: treat any published quota as a snapshot. The cap is per model, so gemini-2.5-flash and gemini-2.5-flash-lite have separate allowances. For sustained monitoring, enable billing on your Google account or bring a key for another engine.
  • Google AI Overview capture is English-only. The default google-aio engine reads the literal AI Overview block, but only in English: the language JS bundle is blocked through the SERP proxy, so a German or Hungarian query renders a header and never finishes. This is bot detection, not a language bug — seven fixes were attempted and all failed. For non-English markets use Gemini grounding, which queries the same search index.
  • Engines may shift their APIs. OpenAI's web_search_preview and Anthropic's web_search_20250305 are explicitly versioned tools. We pin sensible defaults; if a vendor breaks compatibility, the relevant adapter file is the only file that needs to change.
  • Only gemini-2.5-flash and gemini-2.5-flash-lite are truly free despite Gemini's API listing 38 models. The rest require billing enabled on your Google account — the adapter dispatches the request correctly but the vendor returns 429.
  • No SEO ranking guarantees. This actor measures what AI engines cite — not what to do about it. If the data shows you don't appear, the next steps (improve content, build links, target citation-friendly keywords) are still SEO 101.

Roadmap

  • v0.2 — Google AI Overview capture via the existing apify/google-search-scraper actor (chained, BYOK Apify proxy).
  • v0.3 — Slack / Discord / webhook alerting on citation gains/losses (delta mode hooks).
  • v0.4 — White-label CSV export with agency branding and per-client dashboards.
  • v0.5 — Public weekly leaderboards (e.g. "Top 50 brands cited in ChatGPT for project management software, EN/DE/HU") generated from aggregated runs of consenting users — distribution / SEO play.
  • v0.6 — Sentiment classification on the answer text (positive / neutral / negative mentions).
  • v0.7 — Microsoft Copilot, You.com, Grok engine adapters.

License

ISC. Use it, fork it, ship it. Pull requests welcome — see https://github.com/highbrow_fame/ai-search-visibility-tracker if you'd like to contribute (TODO: open-source the repo).