AI Brand Monitor: GEO / AI Search Visibility Tracker avatar

AI Brand Monitor: GEO / AI Search Visibility Tracker

Pricing

from $90.00 / 1,000 ai search queries

Go to Apify Store
AI Brand Monitor: GEO / AI Search Visibility Tracker

AI Brand Monitor: GEO / AI Search Visibility Tracker

Track how your brand appears in AI answers: Gemini & Claude out of the box, ChatGPT & Perplexity on your own key. Mention rate, rank among every option AI names, discovered competitors, share of voice and cited sources, sampled for reliability. GEO / AEO data for SEO agencies and brands.

Pricing

from $90.00 / 1,000 ai search queries

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

0

Monthly active users

8 days ago

Last modified

Categories

Share

AI Brand Monitor — GEO / AI Search Visibility Tracker

AI Brand Monitor — GEO / AI Search Visibility Tracker

Is your brand what Gemini, Claude and ChatGPT recommend — or are your competitors? Buyers no longer "Google it", they ask an AI. This Actor measures how visible your brand is inside AI answers. Each buyer-intent question is sampled several times, because AI answers change from one ask to the next. You get an AI Visibility Index, your rank among every option the answers name, share of voice, sentiment and the citation gaps to close. This is GEO (Generative Engine Optimization), also called AEO (Answer Engine Optimization).

  • 🤖 Gemini and Claude out of the box; ChatGPT and Perplexity on your own API key. Every answer is grounded in live web search.
  • 🕵️ Competitor discovery. Every answer is read for the businesses, products and professionals it puts forward, so you see who AI recommends instead of you, including rivals you never listed.
  • 🎯 Multi-sample reliability. Each question is asked N times, so you get a mention rate + stability, not a one-shot coin flip.
  • 📊 AI Visibility Index (0–100) with a trend against your last run of the same setup, plus the citation-gap list: the domains behind answers that name rivals but not you.

Quick start (API)

Score a brand in one call:

curl -X POST "https://api.apify.com/v2/acts/foxlabs~ai-brand-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brand": "Notion",
"category": "project management software",
"brandDomain": "notion.so",
"maxPromptsPerEngine": 5,
"samplesPerPrompt": 3
}'

Prefer no code? Open the Input tab, enter your brand and the market it competes in (the two required fields), and click Start.

Getting accurate results (read this first)

Almost every "empty" or 0% result comes down to one setting: a category that does not match the brand. Ten seconds here changes everything:

  1. Match category to your brand's market, every time. The category drives the questions. Say you change the brand to a dental clinic but leave project management software as the category. Every engine is then asked the wrong question, and your brand correctly scores 0%.
  2. Be specific, especially for a local business. A generic category like dental clinic makes engines list famous chains, not a local practice. Add the location: dental clinic in Leeds, Eskişehir'de protez diş hekimi, plumber in Manchester.
  3. Write the market as your customers ask about it. The questions already say "What are the best …?", "Which … would you recommend?" and so on. A leading "best" (or Turkish "en iyi") in your category is dropped, so best CRM software becomes CRM software.
  4. Turkish market? Write the category in Turkish. The questions are then asked in Turkish (language: auto), the way a Turkish customer would ask them. You can also set language yourself.
  5. A 0% result is a finding, not a failure. If the category is right and specific and your brand still scores 0%, then AI does not surface you for those questions yet. That is the gap to close. discoveredCompetitors shows who is named instead, and sourceGap shows where they are cited. Engines often disagree: you may appear in Gemini but not in Claude, which tells you where to work.

What you get

The dataset holds one row per question × engine (aggregated over its samples), plus a single summary scorecard row. The scorecard is also written to the SUMMARY key-value record, for webhooks and quick lookups.

Per-question row (type: "query"):

FieldTypeDescription
typestring"query" — a per-question result row
engine / engineLabelstringEngine id (gemini) and friendly label (Gemini (Google))
brandstringThe brand being tracked
promptstringThe buyer-intent question sent to the engine
samplesnumberHow many times this question was sampled
brandMentionedbooleanMajority verdict across samples: did the brand appear?
brandMentionedSamplesnumberHow many samples mentioned the brand
brandMentionRatePctnumber% of samples that mentioned the brand
mentionStabilityPctnumberHow consistent the outcome was (100% = every sample agreed)
brandRanknumber | nullBrand's position among every option the answer names: your competitors and the discovered ones (1 = named first)
avgRanknumber | nullAverage rank across the samples that mention the brand
mentionCountnumberAverage times the brand is named per mentioning answer
positionScorenumber | nullWhere the brand first appears in the answer (1 = very top … 10)
sentimentstring | nullpositive / neutral / critical, from the passages that name the brand
excerptstringEvidence quote: the first sentence that says something about the brand, as plain text
competitorsMentioned / competitorsMentionedTextarray / stringOther options the answers named: your competitors plus the discovered ones
citationsCountnumberNumber of distinct source domains cited
sourcesTextstringThe cited publisher domains, comma-joined
answerstringThe representative AI answer (truncated to ~1500 characters)

If every sample of a question fails for a transient reason, the row carries error with brandMentioned: null instead. Engines without a key, with a dead key or out of credit produce no error rows: they are listed once in the summary's enginesSkipped.

Summary scorecard (type: "summary", one row):

FieldTypeDescription
typestring"summary"
brand / categorystringWhat was tracked
competitorsarrayThe competitors you gave
enginesarrayEngine labels that produced answers
languagestringLanguage of the questions: en, tr, or custom for your own prompts
promptsPerEngine / samplesPerPromptnumberRun configuration
totalQueriesnumberTotal answer samples analyzed
visibilityIndexnumberAI Visibility Index (0–100): mention rate 50% + rank 30% + citation rate 20%. The rank and citation parts scale with the mention rate, so a rarely mentioned brand cannot score high on rank alone
indexBandstringstrong (70+) / mid-tier / visibility gap
previousVisibilityIndex / visibilityIndexDeltanumber | nullThe index of your last run with the same setup, and the change since
trendComparableboolean | nulltrue: compared with a run of the same setup · false: the previous run used a different setup, so no delta · null: first run
trendNotestring | nullWhich run the delta compares with, or why there is no delta
visibilityScorePctnumber% of all answer samples that mentioned the brand
avgRanknumber | nullOverall average brand rank
citationRatePctnumber | null% of all answer samples that cite your own domain as a source (needs brandDomain, else null)
shareOfVoicePctnumber | nullYour share of all option mentions: the brand, your competitors and the discovered options. null when there was nothing to compare against
shareOfVoiceBreakdownobject | nullShare of voice per option ({ "Notion": 21.3, … }): the brand, your competitors and the most-named discovered options, with the rest summed under (other options)
discoveredCompetitorsarrayOptions the answers named beyond your list, most-named first: { name, mentions, mentionRatePct, engines }
discoveredCompetitorsTextstringThe same, as Name (answers), …
competitorDiscoveryobject{ answersRead, answersFailed }. An answer discovery could not read is ranked among your given competitors only
overallSentimentstring | nullMajority sentiment across questions
sentimentBreakdownPctobject{ positive, neutral, critical } percentages
perEngineobjectPer engine: { engineLabel, skipped, promptsRun, mentionRatePct, avgRank, errors }
enginesSkippedarrayEngines left out of the run, [{ engine, engineLabel, reason }]: no key (ChatGPT and Perplexity need yours), a dead key or no credit
topCitedSources / topCitedSourcesTextarray / stringDomains shaping answers in your category, { host, count }
sourceGap / sourceGapTextarray / stringDomains grounding answers that name rivals but not you: your GEO to-do list
generatedAtIsostringISO 8601 run timestamp

Sample output

Illustrative records (values shown for shape, not a live measurement):

{
"type": "query",
"engine": "gemini",
"engineLabel": "Gemini (Google)",
"brand": "Notion",
"prompt": "Which project management software would you recommend?",
"samples": 3,
"brandMentioned": true,
"brandMentionedSamples": 2,
"brandMentionRatePct": 66.7,
"mentionStabilityPct": 66.7,
"brandRank": 4,
"avgRank": 3.5,
"mentionCount": 1.5,
"positionScore": 4,
"sentiment": "positive",
"excerpt": "Notion is a flexible all-in-one workspace that many small teams use for project management.",
"competitorsMentioned": ["Asana", "Trello", "ClickUp", "Monday.com", "Jira"],
"competitorsMentionedText": "Asana, Trello, ClickUp, Monday.com, Jira",
"citationsCount": 4,
"sourcesText": "g2.com, notion.so, zapier.com, pcmag.com",
"answer": "For project management, several tools stand out. Asana and Trello are popular for simplicity, while ClickUp and Notion offer more flexible, all-in-one workspaces…"
}
{
"type": "summary",
"brand": "Notion",
"category": "project management software",
"competitors": [],
"engines": ["Gemini (Google)", "Claude (Anthropic)"],
"language": "en",
"promptsPerEngine": 5,
"samplesPerPrompt": 3,
"totalQueries": 30,
"visibilityIndex": 58,
"indexBand": "mid-tier",
"previousVisibilityIndex": 52,
"visibilityIndexDelta": 6,
"trendComparable": true,
"trendNote": "Compared with the run of 2026-09-18: same engines, questions, samples and competitors.",
"visibilityScorePct": 63.3,
"avgRank": 3.4,
"citationRatePct": 16.7,
"shareOfVoicePct": 18.2,
"shareOfVoiceBreakdown": { "Notion": 18.2, "Asana": 21.8, "Trello": 16.4, "ClickUp": 14.5, "Monday.com": 12.7, "Jira": 9.1, "(other options)": 7.3 },
"discoveredCompetitors": [
{ "name": "Asana", "mentions": 24, "mentionRatePct": 80, "engines": ["Gemini (Google)", "Claude (Anthropic)"] },
{ "name": "Trello", "mentions": 18, "mentionRatePct": 60, "engines": ["Gemini (Google)", "Claude (Anthropic)"] }
],
"discoveredCompetitorsText": "Asana (24), Trello (18), ClickUp (16), Monday.com (14), Jira (10)",
"competitorDiscovery": { "answersRead": 30, "answersFailed": 0 },
"overallSentiment": "positive",
"sentimentBreakdownPct": { "positive": 70, "neutral": 25, "critical": 5 },
"perEngine": {
"gemini": { "engineLabel": "Gemini (Google)", "skipped": false, "promptsRun": 15, "mentionRatePct": 73.3, "avgRank": 2.9, "errors": 0 },
"anthropic": { "engineLabel": "Claude (Anthropic)", "skipped": false, "promptsRun": 15, "mentionRatePct": 53.3, "avgRank": 3.8, "errors": 0 }
},
"enginesSkipped": [],
"topCitedSources": [{ "host": "g2.com", "count": 22 }, { "host": "pcmag.com", "count": 14 }],
"topCitedSourcesText": "g2.com (22), pcmag.com (14)",
"sourceGap": [{ "host": "capterra.com", "count": 5 }, { "host": "techradar.com", "count": 3 }],
"sourceGapText": "capterra.com, techradar.com",
"generatedAtIso": "2026-09-25T09:12:44.001Z"
}

Input & filters

  • Brand: the name to track in AI answers (e.g. Notion). Matching is whole-token. A person's name may carry titles: Uzm. Dt. Ayşe Yılmaz is also found where an answer writes Ayşe Yılmaz.
  • Category / market (required): the market your brand competes in (e.g. CRM software, dental clinic in Leeds). It drives the questions, so it must match the brand. See Getting accurate results above.
  • Question language: auto (default) asks in Turkish when the category is written in Turkish, else in English. Or set en / tr.
  • Brand domain (optional): e.g. notion.so. Unlocks citation rate: how often engines cite your domain as a source.
  • Competitors (optional): rivals you want to be sure are tracked. Every answer is also read for the other options it names, so you can leave this empty.
  • Engines: gemini and anthropic (Claude) run with no setup. openai (ChatGPT) and perplexity run only on your own API key. Engines run in parallel.
  • Prompts per engine (1–25): 10 built-in questions per language, up to 25 with your own prompts. More questions = broader coverage, higher cost.
  • Samples per prompt (1–5): each question is asked this many times for a reliable rate and stability. 3 is recommended.
  • Advanced: your own exact prompts (they override the built-in questions; {brand} and {category} placeholders work), a webhook URL for alerts, and your own API keys. The OpenAI and Perplexity keys are required for those engines. The Gemini and Anthropic keys are optional.

Example inputs (copy & paste)

1) Local business, asked in Turkish (the category is written in Turkish, so the questions are too):

{ "brand": "Ayşe Yılmaz", "category": "İzmir'de implant diş hekimi", "samplesPerPrompt": 3 }

2) Standard scorecard with named competitors:

{ "brand": "Notion", "category": "project management software", "competitors": ["Asana", "Trello", "ClickUp", "Monday.com"], "brandDomain": "notion.so", "samplesPerPrompt": 3 }

3) All four engines. ChatGPT and Perplexity run on your keys:

{ "brand": "Notion", "category": "project management software", "engines": ["gemini", "anthropic", "openai", "perplexity"], "openaiApiKey": "sk-...", "perplexityApiKey": "pplx-...", "maxPromptsPerEngine": 10, "samplesPerPrompt": 3 }

4) Your own questions (override the built-in ones):

{ "brand": "Notion", "category": "project management software", "prompts": ["Best {category} for a 10-person startup?", "Is {brand} good for {category}?"], "samplesPerPrompt": 3 }

5) English questions for a Turkish-market category:

{ "brand": "Örnek Diş Kliniği", "category": "dental clinic in İzmir", "language": "en", "maxPromptsPerEngine": 5, "samplesPerPrompt": 2 }

6) Scheduled weekly monitor with a Slack / n8n alert:

{ "brand": "Vercel", "category": "frontend hosting platform", "brandDomain": "vercel.com", "webhookUrl": "https://hooks.example.com/geo-alert", "samplesPerPrompt": 3 }

Use cases

  • SEO / GEO agency reporting. Give each client evidence-backed AI-visibility reports: the Visibility Index, their rank among the options AI names, the rivals it recommends instead, and a concrete citation-gap list. Schedule it with the same setup, and every run adds a comparable point to the trend.
  • Local businesses and clinics. Ask the questions a local customer types, in their language, and see which practices, firms or shops AI recommends in your city, including ones you would not have listed.
  • Competitive brand tracking. Watch your standing against rivals across Gemini, Claude and ChatGPT over time. The trend delta tells you whether you are gaining or losing ground.
  • PR & reputation monitoring. The sentiment breakdown flags when engines start describing your brand as expensive, limited or pahalı, so you can act early.
  • Content & GEO strategy. sourceGap names the domains grounding answers that recommend rivals but omit you. Earn a presence there and you move the needle where AI actually looks.
  • Automated alerts. Wire the webhookUrl to Slack, Make or n8n and get notified when your visibility drops after a model or index update.

Performance & throughput

Engines run concurrently. Each engine's questions run one after another to respect per-provider rate limits, so the total time is set by the slowest engine, not the sum. Every answer then gets one short competitor-discovery read. Every extra engine, question or sample adds AI calls (and cost) linearly. Each call has a 60-second timeout with backoff on transient errors. A dead or out-of-credit key is detected and skipped at once instead of being retried. There are no proxies to configure.

Integrations

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('foxlabs/ai-brand-monitor').call({
brand: 'Notion', category: 'project management software', samplesPerPrompt: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const summary = items.find((i) => i.type === 'summary');
console.log(summary.visibilityIndex, summary.discoveredCompetitorsText);

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("foxlabs/ai-brand-monitor").call(run_input={"brand": "Notion", "category": "project management software", "samplesPerPrompt": 3})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") == "summary":
print(item["visibilityIndex"], item["discoveredCompetitorsText"])

Make / n8n / Zapier: run this Actor from the Apify app and map the summary fields. Or set a webhookUrl, and the Actor POSTs the full scorecard to Slack, Make, Zapier or n8n when a run finishes. Pair it with Apify Scheduler for weekly tracking.

Apify MCP (use it as a tool inside any AI agent, no install): call this Actor from Claude, Cursor, ChatGPT agents, LangChain, Make, Zapier or n8n via the Model Context Protocol.

  • Hosted (zero setup): point your MCP client at https://mcp.apify.com?tools=foxlabs/ai-brand-monitor
  • Self-hosted (stdio clients such as Claude Desktop, Cursor, Cline and Continue):
{
"mcpServers": {
"ai-brand-monitor": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--tools", "foxlabs/ai-brand-monitor"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

Your agent can then ask "How visible is Notion in AI search?" and get the scorecard back inline.

Data quality (how the numbers are made)

  • Multi-sample, not one-shot. AI answers are non-deterministic: ask the same question three times and the list can change. Each question is sampled samplesPerPrompt times and reported as a rate + stability, so you know how much to trust each number.
  • Deterministic brand detection. Your brand is found by exact, whole-token matching. Titles in front of a person's name are optional.
  • Competitor discovery with a guard against invented names. A small model (Gemini Flash-Lite) reads each answer and lists the businesses, products and professionals it puts forward. Directories, booking and review sites are left out even when the answer recommends them. Professional bodies and authorities (bar associations, dental chambers, ministries) are dropped by rule. A name is kept only when it appears verbatim in the answer, so a name the model invents is dropped. Spellings of one option ("Dt. Ayşe Yılmaz" / "Ayşe Yılmaz", "Örnek Diş" / "Örnek Diş Polikliniği") are counted as one. A model can still let an odd name through now and then, so read the list as leads, not a verdict.
  • Rank among every named option. brandRank counts every option the answer names before yours, not only the competitors you listed.
  • Clean evidence. Quotes are whole sentences: titles like "Uzm. Dt." or "Inc." and list numbers do not cut them, and markdown and citation marks are removed.
  • Comparable trends only. The index moves with the engines, questions, samples and competitors, so a run is compared only with an earlier run of the same setup. trendNote says which run, or why not.
  • Real publisher domains. Cited sources are de-duplicated and normalized to the true publisher host, including Gemini's grounding-redirect URLs, so topCitedSources and the citation gap are actionable.
  • No fabrication. Every metric is computed from the engines' actual answers. Missing values are null, never a guess.
  • Transparent sentiment (v1). Sentiment is a fast, explainable keyword model in English and Turkish over the passages that name the brand, not a black-box LLM judgment.

Pricing

Pay as you go: you are billed per successful AI query, meaning one question sent once to one engine. Failed or errored samples are never charged. A run costs engines × questions × samples queries, so start small and add samples once you see the signal. The price per query is the same whichever key a query runs on. On your own key (ChatGPT and Perplexity always, Gemini and Claude optionally), that provider also bills your account for the call. Competitor discovery is included and not billed separately. See the Actor's pricing panel for current rates.

FAQ

Do I need any API keys? Not for Gemini and Claude: they run on our keys out of the box. ChatGPT and Perplexity run only on your own key (openaiApiKey, perplexityApiKey). Without one, they are skipped and listed in enginesSkipped with how to add them.

Which engines are supported? Gemini (Google) and Claude (Anthropic) on our keys, and ChatGPT (OpenAI) and Perplexity on yours, all with live web search. An engine whose key is missing, dead or out of credit is skipped and listed once in enginesSkipped. The rest of the run continues, and you are never charged for the skipped queries.

Do I have to list my competitors? No. Every answer is read for the options it names, and they appear in discoveredCompetitors, the share of voice and your rank. List competitors only to make sure specific ones are tracked by name.

Why sample each question several times? Because AI answers vary from one ask to the next. One shot is noise dressed up as data. Sampling gives you a mention rate and a stability score instead.

What is the AI Visibility Index? A single 0–100 score: mention rate (50%), average rank (30%) and citation rate (20%), banded as strong / mid-tier / visibility gap. The rank and citation parts scale with the mention rate, so ranking #1 in one answer out of ten scores about 10, not 55. Without a brandDomain, the score is renormalized over the two available parts.

Why is there no delta this time? A delta is only computed against an earlier run with the same engines, questions, samples and competitors. trendNote tells you why a run was not compared. Keep the setup fixed (a saved task or a schedule does this) and every run adds a comparable point.

Can I track a Turkish business in Turkish? Yes. Write the category in Turkish and the questions are asked in Turkish, the way a local customer would ask them. Sentiment also reads Turkish.

How fresh are the answers? Each run queries the engines live with web search enabled, so you see what buyers see right now, not a cached snapshot.

Can an AI agent run and pay for this Actor? Yes, through the Apify MCP server. Agentic payments (x402) are enabled for this Actor.

Is this affiliated with OpenAI, Google, Anthropic or Perplexity? No. It calls their official APIs. All brand and product names belong to their owners.

Troubleshooting

  • "No usable AI engine" error: none of the selected engines had a key. Keep Gemini and Claude selected, or add your own key for ChatGPT or Perplexity in the Advanced section.
  • ChatGPT or Perplexity missing from the results: they need your own key. The summary's enginesSkipped names the field to fill.
  • Low or zero visibility: first check that the category matches the brand and is specific (add a location for a local business). If it is right and you are still at 0%, that is the real result. Check discoveredCompetitors for who is named instead, and sourceGap for where they are cited.
  • shareOfVoicePct is null: there was nothing to compare against. You gave no competitors, and competitor discovery could not read any answer (see competitorDiscovery).
  • Run slower than expected: more engines, questions or samples means more AI calls. Trim maxPromptsPerEngine or samplesPerPrompt for a faster pass.
  • Not affiliated with OpenAI, Google, Anthropic or Perplexity. This Actor queries their official APIs; brand and product names belong to their owners.
  • AI answers are non-deterministic. Treat the metrics as a strong directional signal, sampled for reliability, not a permanent truth. Model and web-index updates on the providers' side shift results over time; that is what the trend is for.
  • Competitor discovery is model-read. Names are kept only when they appear verbatim in the answer, but a model can still include an odd one. Use the list as leads.
  • Sentiment is v1: a transparent keyword model, not an LLM judge. Read the flagged excerpts before acting on it.
  • Your-own-key runs execute on your provider account under that provider's terms and billing.
  • Personal data. Answers about local professionals contain people's names. Personal data is protected by the GDPR and similar laws, so only process it with a legitimate basis.

Support

Questions, a metric you would like added, or a custom build? Open the Issues tab on this Actor, or email info@foxlabs.com.tr.

If this Actor saves you time, a ⭐ review really helps.

Changelog

0.1.29 — 2026-09-25

  • One product, one entry. "monday.com", "monday work management" and "monday AI Workspace" were counted as three competitors, because the domain ending kept the names apart. Names are now compared without a domain ending (.com, .io, .app…).

0.1.28 — 2026-09-25

  • Professional bodies are no longer counted as competitors. Names such as "Türk Diş Hekimleri Birliği", "İstanbul Barosu" or a ministry are dropped by rule. In the first platform run of 0.1.27, the discovery model let one through despite its instruction.

0.1.27 — 2026-09-25

  • ChatGPT now runs only on your own OpenAI key (openaiApiKey), like Perplexity. Earlier versions offered our OpenAI key, which ran out of credit in early September 2026. Since then, ChatGPT was skipped in runs without your key while this page said it would run. The default engines are now Gemini and Claude. An engine without a key is listed in enginesSkipped with the field that adds it.
  • Competitor discovery. Every answer is read for the businesses, products and professionals it names. They count towards your rank, the share of voice and the citation gap, and appear in the new discoveredCompetitors. Before, only the competitors you typed in were seen. With none given, the share of voice was a meaningless 100% and your rank was always 1. Names are kept only when they appear verbatim in the answer.
  • Turkish questions and a language setting. A category written in Turkish is now asked about in Turkish. Before, Turkish categories were wrapped in English software-market templates such as "Recommend the top … for a small team in 2026". One English question also changed: "Recommend the top X for a small team in 2026" is now "Which X would you recommend?". A leading "best" / "en iyi" in the category is dropped, because the questions say it themselves.
  • Clean evidence quotes. Quotes no longer break at "Uzm.", "Dr." or list numbers, and no longer carry markdown (**). A bare name line takes the sentence that follows it.
  • Trends compare like with like. The delta is computed only against an earlier run of the same setup. The new trendComparable and trendNote fields explain each case. Your first run after this update shows no delta, on purpose: the questions, rank and share of voice are computed differently from before.
  • Share of voice is null when there is nothing to compare against, and the breakdown lists at most 20 options plus (other options).
  • Sentiment reads Turkish, and negative phrases are counted before the positive words inside them ("önerilmez" no longer counts as "öneril…").
  • Titled names: a brand entered as "Uzm. Dt. Ayşe Yılmaz" is also found where an answer writes "Ayşe Yılmaz".
  • Docs corrected. The page published on 2026-09-07 was generated from another Actor's template. It described registry lookups, legal-form fields and per-record pricing, none of which this Actor has. Billing is per AI query, as it always was.

0.1.26 — 2026-09-20 — README examples corrected against the real input schema

  • The README's code examples did not match this Actor. They used queries and maxResultsPerQuery, keys that do not exist in this Actor's input schema, with a placeholder value, and the input table listed those same phantom fields. Anyone who copied the AI-agent, cURL, JavaScript or Python example got a failing run. Every example now uses the real schema and matches the Console prefill: {"brand":"Notion","category":"project management software"}
  • The input table is regenerated from input_schema.json, so it lists the fields the Actor actually accepts.
  • Removed claims carried over from the same generator template where present: "formation / status monitoring", "a canonical registry record for KYB and due diligence", "every row carries query", and industry described as a NACE code.
  • No code, output field or pricing change.

0.1 — 2026-09-07

  • Dropped empty-promise columns: competitorsMentioned, competitorsMentionedText, competitors, citationRatePct, sourceGap, sourceGapText. Correction (2026-09-25): this was wrong. None of these columns was removed; every version emits them.
  • Enabled AI-agent payments (x402) and rebuilt the README (What-is / when, AI agents + x402 + MCP, Overview, Features, Use cases, Integration, FAQ, Troubleshooting, Support & contact).

0.1.17 — 2026-07-28

  • Skipped engines no longer report a measurement they never made. An engine disabled mid-run (dead key or out of credit) used to appear in the engine count with mentionRatePct: 0. That read as "this engine never mentions your brand", when it was never queried. Such engines now carry skipped: true with mentionRatePct: null / avgRank: null, are excluded from the engine count, and stay listed in enginesSkipped with the reason.

0.1.16 — 2026-07-28

  • Graceful engine degradation. An engine whose key is dead or out of credit is disabled at the first failure and reported once in enginesSkipped [{ engine, engineLabel, reason }], instead of emitting an error row for every remaining prompt. Skipped queries are never charged.
  • Dotted-brand sentiment & excerpt fix. Brand names containing dots ("Uzm. Dt. Ayşe Yılmaz", "Acme Inc.") were chopped by the sentence splitter, so excerpts came back empty and sentiment null even when the brand was mentioned.
  • Honest index recalibration. citationRatePct measures the share of all answer samples citing your domain, and the index's rank and citation parts scale with the mention rate.

0.1.15 — 2026-07-09

  • Made brand and category required, added the Getting accurate results guide and a runtime check that fails fast if the category is missing.

0.1.10 — 2026-07-05

  • Hardened output handling so an edge-case value can never trip dataset-schema validation.

0.1.9 — 2026-06-27

  • API quota and billing-exhaustion errors (HTTP 429 insufficient_quota) are failed fast instead of retried as transient rate limits.

Part of the foXLabs data platform: company, contact, ownership, procurement, financial and AI-search visibility intelligence. More AI-visibility tools: GEO Auditor · GEO Benchmark.