← All use cases

AI share of voice, computed from real captures.

When a buyer asks an AI surface "best X for Y", a shortlist comes back — and whoever owns that shortlist owns the category. Share-of-voice teams need the distribution: which brands get named, in what order, with what sentiment, citing whose content, per surface and per market. That is an aggregation over many captures, which means it needs structured, aggregatable observations — not screenshots pasted into decks.

The workflow, end to end.

Real endpoints, real field names — nothing below is pseudocode.

  1. step 1 / 4

    Define the category prompt set and submit as a batch

    Share of voice is computed over a prompt basket ("best crm for startups", "top crm tools 2026", …). Submit the whole basket in one batch call — each item fans out across surfaces and regions independently.

    POST /v1/search/batch
    curl -sS -X POST "https://api.aisearchapi.dev/v1/search/batch" \
      -H "Authorization: Bearer $AISEARCH_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "items": [
          { "query": "best crm for startups",
            "surfaces": ["chatgpt", "perplexity", "copilot"],
            "regions": [{ "country": "US" }, { "country": "GB" }] },
          { "query": "top crm tools 2026",
            "surfaces": ["chatgpt", "perplexity", "copilot"],
            "regions": [{ "country": "US" }, { "country": "GB" }] }
        ]
      }'
  2. step 2 / 4

    Read the mentions layer per Envelope

    evidence.mentions.items is the share-of-voice record: brand, ordinal position in the answer, sentiment, and the source ids supporting each mention — with an engine version and confidence score on the layer itself.

    Envelope excerpt — evidence.mentions
    "mentions": {
      "engine": "mentions@0.9.0",
      "confidence": 0.81,
      "items": [
        { "brand": "YourBrand",  "position": 0,
          "sentiment": "positive", "sourceIds": [0] },
        { "brand": "Competitor", "position": 1,
          "sentiment": "neutral",  "sourceIds": [1, 2] }
      ]
    }
  3. step 3 / 4

    Aggregate into share of voice

    Across the basket: mention rate per brand (share of captures naming it), average position, sentiment mix, and citation ownership (whose domains back the mentions, via sourceIds → evidence.sources). Because every surface returns the same shape, one aggregation covers all of them — and per-region children give you the per-market split for free.

  4. step 4 / 4

    Track movement and attribute it

    Re-run the basket on your cadence and diff the aggregates. When a competitor jumps, the same Envelopes show what changed underneath: new cited sources, new fan-out queries, a different answer structure — the "why" behind the share shift.

The Envelope fields that do the work.

Every surface returns the same canonical Envelope, so these fields mean the same thing whether the capture came from ChatGPT, Perplexity or an AI Overview.

evidence.mentions.items[]

Brand, position, sentiment, supporting sources — the atomic share-of-voice observation.

evidence.mentions.confidence + engine

The derived layer self-reports its extraction confidence and version — aggregate with eyes open.

evidence.sources[]

Citation ownership: which domains power the answers your competitors are winning.

provenance.region

Per-market splits with requested-vs-effective geo verified per capture.

answer.text

Ground truth under every mention — verify or re-extract with your own NER whenever you want.

Honest limits

Mentions are a derived layer — engine-versioned with a confidence score, and null when not computed; the raw answer text is always present to verify against. Coverage for share-of-voice math is the live v1 surfaces; Claude contributes api_surrogate answers (the official API, not the consumer UI) and Gemini, Meta AI, Grok, DeepSeek and Rufus are not in the denominator until their lanes ship. Guest sessions today — logged-in personalization is out of scope until the phase-2 account pool.

Terms used here, defined precisely: AI share of voice · Envelope · Consumer-UI fidelity

Asked precisely.

How is AI share of voice different from classic SOV?

Classic SOV counts impressions you buy or earn in media; AI SOV measures presence in generated answers — being named, ranked early, described positively, and cited when a buyer asks an open question. It is computed from captured answers, which is why it needs a capture API rather than an ad-intelligence feed.

Can I bring my own entity extraction?

Yes — many teams do. answer.text/markdown ship in every Envelope, so you can run your own NER/sentiment and treat evidence.mentions as a baseline or cross-check. The derived layer is versioned precisely so you can hold it at arm’s length.

How many prompts make share of voice statistically meaningful?

That depends on your category, and we won’t invent a number. The mechanics are what we provide: batches of up to 500 prompts per call, independent per-item billing, and stable (prompt, surface, region) keys so your analysts can size the basket to the confidence they need.

Can I prove a share-of-voice number to a client?

Every underlying capture retains its screenshot and proof-of-page HTML durably — so any cell in your SOV table can expand to the actual rendered answers behind it. That is the difference between reporting a number and being able to defend one.

Build it on the capture layer.

500 free credits, charged only on successful captures — the whole workflow above runs on two endpoints.