AI Brand Visibility & Citation Audit API
Under maintenancePricing
from $16.00 / 1,000 completed ai observations
AI Brand Visibility & Citation Audit API
Under maintenanceAudit 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 $16.00 / 1,000 completed ai observations
Rating
0.0
(0)
Developer
Lasse
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
AI Brand Visibility & Citation Auditor
Audit brand and competitor visibility in AI API answers — with inspectable evidence.
Run your exact prompts through supported provider APIs, capture the returned answer and citations, and get structured findings linked to the evidence behind them. Every requested observation produces one auditable row — including the ones that failed, were blocked, or could not run, so nothing is silently dropped.
How it works
- You provide the prompts — verbatim; The Actor never generates, rewrites, or discovers prompts.
- You declare identities — your brand (name, optional aliases and domains) and optionally explicit competitors. The Actor never guesses or discovers competitors.
- You choose automated provider surfaces — and supply your own API key for each selected provider (BYOK). The Actor performs the acquisition for you.
- You get one row per observation — answer text, normalized citations, requested vs. applied scope, coverage, findings, diagnostics, provenance.
Public beta scope
The launch form intentionally exposes more than one provider, but only providers that have passed their live acceptance checks should be published. The current public-beta target is OpenAI + Anthropic Claude. Gemini and Perplexity remain implemented or reserved routes, not part of the public launch promise.
Answer surfaces
| Surface ID | What it is | Status |
|---|---|---|
OPENAI_SEARCH_API | OpenAI Responses API + web search (BYOK) | Public beta — live acceptance still required before Store publication |
CLAUDE_WEB_SEARCH_API | Anthropic Claude Messages API + web search (BYOK) | Public beta — live acceptance still required before Store publication |
GEMINI_GROUNDED_API | Google Gemini API with Search grounding | Not in public beta — hidden pending commercial terms review |
PERPLEXITY_AGENT_API | Perplexity Agent API (BYOK) | Gated — not in public beta pending live verification |
CHATGPT_CONSUMER | ChatGPT consumer product | Capture-only — paste an observed answer; no automated acquisition |
GEMINI_CONSUMER | Gemini consumer product | Capture-only — paste an observed answer; no automated acquisition |
PERPLEXITY_CONSUMER | Perplexity consumer product | Capture-only — paste an observed answer; no automated acquisition |
CLAUDE_CONSUMER | Claude consumer product | Capture-only — paste an observed answer; no automated acquisition |
COPILOT_CONSUMER | Microsoft Copilot consumer product | Capture-only — paste an observed answer; no automated acquisition |
GOOGLE_AI_MODE_PUBLIC | Public Google AI Mode product surface | Capture-only; automated acquisition remains disabled |
GOOGLE_AI_OVERVIEWS_PUBLIC | Public Google AI Overviews surface | Capture-only; automated acquisition remains disabled |
Provider API output is provider API output — a run against
OPENAI_SEARCH_API is never presented as a captured ChatGPT consumer
session, and the same applies to the other surfaces.
What each row contains
status—COMPLETE,PARTIAL,BLOCKED,FAILED,NOT_RUN, orUNSUPPORTED.answer.coverage/citations.coverage— independent coverage states. A partial or failed observation can never become a "not mentioned" or "not cited" finding.requestedScopevs.appliedScope— scope is only claimed as applied where the surface actually supports it.findings— deterministic, evidence-tagged verdicts (e.g.TARGET_BRAND_MENTIONED,COMPETITOR_CITED_WHILE_TARGET_NOT_CITED,REPEATED_CITED_DOMAIN_IN_CHECKED_SCOPE).upstreamProvenance— provider, API family, model/preset, request ID, executed search queries, token usage.diagnostics— sanitized, structured reasons for anything that did not happen.
Credentials and cost — read before running
- BYOK is the standard workflow. Public-beta providers require your own API key, supplied as an encrypted secret input field (
openaiApiKeyoranthropicApiKey). Keys are sent only to that provider's API and are never written to the Dataset, key-value store, logs, or diagnostics. - Two separate costs. Provider usage (searches, tokens) is billed by the
provider to your account and is reported back as provider-reported
telemetry — it is outside this Actor's charge cap. Separately, the Actor
uses Apify pay-per-event pricing: one
observation-evaluatedevent perCOMPLETEobservation.PARTIAL,BLOCKED,FAILED,NOT_RUN, andUNSUPPORTEDobservations are never charged. - An uncertain charge outcome is recorded as unknown and stops billing —
the Actor prefers possible underbilling over any risk of a double charge.
Every unit is recorded in the run's
CHARGE_JOURNAL.
Advanced import
USER_SUPPLIED_CAPTURE remains available through JSON/API for debugging, migration and importing
an answer that was observed elsewhere. It is intentionally hidden from the normal Console form and
is not presented as a free alternative to automated acquisition.
Limits
Hard bounds always apply: 100 prompts, 25 competitors, 5 surfaces,
25 scopes, 5 samples, 500 observations and 500 provider requests per run,
3 retries per observation, 1-hour run deadline. The limits object can
tighten these further.
What CiteGap is not
No dashboard, no prompt or persona generation, no competitor discovery, no sentiment scoring, no recommendations, no cited-page crawling, no monitoring, no universal "visibility score", and no claims about durable AI rankings — single observations are single observations.
Output
- Dataset — one row per requested observation (see What each row contains). Switch to the Findings view for one row per finding.
- Key-value store —
RUN_SUMMARY(counts, outcomes, billing mode, cost state),EVIDENCE_MANIFEST,CHARGE_JOURNAL.
Input reference (API / advanced use)
| Field | Type | Notes |
|---|---|---|
captures | object[] | Advanced JSON/API import only for already-observed answers; hidden from the normal Console form |
prompts | string[] | Exact prompts for automated acquisition, 1–100; optional with captures |
target | object | {name, aliases?, domains?} — the audited brand |
competitors | object[] | Optional explicit list, max 25 |
surfaces | string[] | Automated surface requests, 1–5; optional with captures |
scopes | object[] | Optional {country?, region?, city?, timezone?, language?}, max 25 |
samplesPerObservation | integer | 1–5, default 1 |
openaiApiKey / anthropicApiKey | string | Secret BYOK fields shown in Console for public-beta providers |
geminiApiKey / perplexityApiKey | string | Hidden/reserved fields while those routes remain outside the public beta |
credentials | object | Equivalent nested shape for API use |
limits | object | Optional tightened caps |
Permissions
The Actor runs with limited permissions: it writes only to its own run storage. Automated observations make HTTPS calls only to the selected provider APIs. Advanced user-supplied imports make no provider request. Customer web targets are never fetched. No browser automation is used.