AI Brand Visibility & Citation Audit API
Pricing
from $0.75 / 1,000 completed ai observations
AI Brand Visibility & Citation Audit API
Audit how your brand and competitors appear in OpenAI and Claude web-search API answers. Capture mentions, citations, competitor gaps, cited domains, answer coverage, and inspectable evidence. BYOK. Only completed provider observations are billed
Pricing
from $0.75 / 1,000 completed ai observations
Rating
0.0
(0)
Developer
Lasse
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Audit AI brand visibility and citations with evidence
Run your exact prompts against supported web-grounded AI APIs and capture what was actually returned: brand mentions, cited domains, competitor gaps, answer coverage, provider provenance, and deterministic findings linked to evidence.
Use the Actor for AI visibility monitoring, AI citation tracking, GEO / generative engine optimization, AEO, competitor research, and machine-readable client reporting across OpenAI, Gemini, Perplexity, and Anthropic Claude APIs. CiteGap audits provider API answer surfaces; it does not relabel API output as a consumer ChatGPT, Gemini, Claude, or Perplexity session.
Quick start
- Keep or replace the example prompt.
- Replace Example Brand with the brand you want to audit and add its owned domains.
- Select one or more AI answer surfaces.
- Add the API key for each selected provider.
- Run the Actor and open the default Dataset.
The Store form intentionally contains no prefilled secret. If you run the example without a provider key, CiteGap returns an explicit NOT_RUN Dataset row explaining that the credential is missing. It sends no provider request and that row is not billable. This keeps missing input distinct from a broken Actor run.
Supported answer surfaces
| Surface | What CiteGap observes |
|---|---|
| OpenAI Responses API + web search | Answer text, URL citation annotations, observed search-call provenance and supported scope evidence. |
| Gemini grounded API + Google Search | Grounded answer text, citations and observed Google Search-call provenance. |
| Perplexity Agent API | Answer text, documented search-result source set and observed search provenance. |
| Anthropic Claude Messages API + web search | Final answer text, answer-linked web citations, search queries, search-result execution and provider-reported web-search request count. |
Provider support is explicit and versioned. A provider API surface is not evidence of what the provider's consumer chat product would have returned.
What each Dataset row contains
Every requested prompt × surface × scope × sample resolves to one auditable row. Important fields include:
prompt,answerSurface,requestId, andsampleIndex;acquisitionStatus:COMPLETE,PARTIAL,BLOCKED,FAILED,NOT_RUN, orUNSUPPORTED;- the observed answer text when available;
- normalized citations and citation coverage;
- requested scope separately from applied/confirmed scope;
- deterministic findings such as target mentioned/cited and competitor-gap findings;
- bounded evidence, diagnostics, limitations, and acquisition provenance;
- charge eligibility for that observation.
A partial, failed, blocked, unsupported, or unrun observation can never silently become "not mentioned" or "not cited".
Brand and competitor matching
You provide the identities CiteGap is allowed to match:
- canonical brand name;
- optional aliases;
- owned domains;
- optional competitor names, aliases, and domains.
Matching uses deterministic normalization. CiteGap does not guess brand aliases, discover competitors automatically, or infer domain ownership.
Input
| Field | Description |
|---|---|
prompts | Exact prompts to audit, up to 500. |
target | Target brand ID, canonical name, aliases, and owned domains. |
competitors | Optional explicit competitor identities. |
surfaces | One or more supported provider API answer surfaces. |
scopes | Optional requested country, region, city, language, or locale. Requested and applied scope remain separate. |
samplesPerObservation | 1–5 repeated observations of the exact same requested unit. |
openaiApiKey / geminiApiKey / perplexityApiKey / anthropicApiKey | BYOK secret for the selected provider. |
BYOK credentials and provider cost
Provider credentials are encrypted secret inputs in Apify. They are kept outside the audit definition and must never appear in Dataset rows, KVS records, evidence, diagnostics, or logs.
Provider usage is billed by the provider to your account and is separate from any Apify Store charge for this Actor. A missing key produces NOT_RUN; a rejected/invalid key can produce FAILED. Neither state is evidence that a brand or citation is absent.
Anthropic web search is a separately metered server tool in addition to Claude model-token usage. CiteGap caps the Anthropic web-search tool at three uses per observation in the current implementation.
Findings
CiteGap can produce deterministic finding families including:
- target brand mentioned;
- target domain cited;
- competitor brand mentioned;
- competitor domain cited;
- target absent from a complete answer;
- target domain absent from a complete citation set;
- competitor mentioned while target is absent;
- competitor cited while target is not cited;
- third-party domain cited;
- repeated cited domain in checked scope.
Negative findings require sufficient answer or citation coverage. Directly observed positive evidence can still be retained when a broader observation is partial.
Output and automation
The default Dataset contains one row per requested observation, including explicit non-success rows. KVS also contains:
RUN_SUMMARY— requested/observed counts, status totals, per-surface counts, finding counts, and billing eligibility totals;CHARGE_JOURNAL— per-row charging decision audit trail.
Use the Dataset through Apify exports, API clients, schedules, webhooks, or MCP-compatible workflows. If you compare runs over time, preserve the observation timestamps and requested scope rather than treating sampled answers as a stable model ranking.
Pricing
One logical unit is one prompt × surface × scope × sample observation. The Pricing tab on the Apify listing is the authority for any active Store price. Product policy never makes PARTIAL, BLOCKED, FAILED, NOT_RUN, or UNSUPPORTED observations charge-eligible. Provider API charges remain separate BYOK costs.
FAQ
Do I need my own provider API keys?
Yes for live provider acquisition. Add only the keys for surfaces you select. Running the no-key Store example is safe: it returns an explicit NOT_RUN row and does not contact the provider.
Does this measure ChatGPT, Gemini, Claude, or Perplexity consumer rankings?
No. CiteGap reports the specific provider API surface that was queried. It does not claim that an API answer reproduces a consumer-product session or a durable universal ranking.
What happens when the provider fails?
The requested observation remains in the Dataset with FAILED, BLOCKED, PARTIAL, or another explicit status plus diagnostics. CiteGap does not convert that uncertainty into a negative brand/citation finding.
Can I compare competitors?
Yes. Supply explicit competitor identities and CiteGap can return deterministic findings where competitor mentions/citations differ from the target within sufficiently checked observations.
Does CiteGap generate prompts, competitors, content recommendations, or outreach?
No. The current product audits exact customer-supplied prompts and identities. It does not generate prompts, discover competitors, produce an opaque visibility score, recommend content, or perform outreach.
Limits
- up to 500 prompts, 50 scopes, 100 competitors, and 5 samples per requested unit;
- hard requested-observation admission cap;
- answer text bounded to 200,000 characters and citations to 200 per observation;
- provider HTTP requests bounded by timeout, response-size, retry, and concurrency limits;
- no claim of durable AI rank or model preference from sampled answers.
