AI Brand Visibility & Citation Audit API avatar

AI Brand Visibility & Citation Audit API

Pricing

from $0.75 / 1,000 completed ai observations

Go to Apify Store
AI Brand Visibility & Citation Audit API

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

Lasse

Maintained by Community

Actor 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

  1. Keep or replace the example prompt.
  2. Replace Example Brand with the brand you want to audit and add its owned domains.
  3. Select one or more AI answer surfaces.
  4. Add the API key for each selected provider.
  5. 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

SurfaceWhat CiteGap observes
OpenAI Responses API + web searchAnswer text, URL citation annotations, observed search-call provenance and supported scope evidence.
Gemini grounded API + Google SearchGrounded answer text, citations and observed Google Search-call provenance.
Perplexity Agent APIAnswer text, documented search-result source set and observed search provenance.
Anthropic Claude Messages API + web searchFinal 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, and sampleIndex;
  • acquisitionStatus: COMPLETE, PARTIAL, BLOCKED, FAILED, NOT_RUN, or UNSUPPORTED;
  • 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

FieldDescription
promptsExact prompts to audit, up to 500.
targetTarget brand ID, canonical name, aliases, and owned domains.
competitorsOptional explicit competitor identities.
surfacesOne or more supported provider API answer surfaces.
scopesOptional requested country, region, city, language, or locale. Requested and applied scope remain separate.
samplesPerObservation1–5 repeated observations of the exact same requested unit.
openaiApiKey / geminiApiKey / perplexityApiKey / anthropicApiKeyBYOK 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.