← All use cases

AI visibility monitoring, as an API.

Your customers ask ChatGPT, Perplexity and Google before they ever reach your site — and what those surfaces say about your brand changes without notice. The dashboards that track this (Profound, Otterly, Peec) are products, not building blocks. If you are building the dashboard — or need the raw observations in your own warehouse — you need the capture layer underneath: real consumer-UI captures, on a schedule, in a stable contract you can diff.

The workflow, end to end.

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

  1. step 1 / 4

    Submit the prompt set across surfaces and markets

    One POST per prompt fans out across every surface and region you care about — each (surface × region) becomes an independent child capture. Use /v1/search/batch for up to 500 prompts per call.

    POST /v1/search
    curl -sS -X POST "https://api.aisearchapi.dev/v1/search" \
      -H "Authorization: Bearer $AISEARCH_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "query": "best crm for startups",
        "surfaces": ["chatgpt", "perplexity", "copilot",
                     "google_ai_overview", "google_ai_mode"],
        "regions": [{ "country": "US" }, { "country": "GB" }],
        "webhook": {
          "url": "https://yourapp.com/hooks/aisearch",
          "secret": "whsec_…"
        }
      }'
    # → 202 { "jobId": "…", "children": [ …10 child ids… ] }
  2. step 2 / 4

    Receive each Envelope on your webhook (or poll)

    Each child posts its terminal Envelope to your webhook, HMAC-signed (X-AISearch-Signature over the raw body). No webhook? Poll GET /v1/jobs/:childId. Either way the payload is the same canonical Envelope for every surface.

  3. step 3 / 4

    Extract the visibility signals

    Three fields do the work: answer.text/markdown (what was said), evidence.mentions (was your brand named, at what position, with what sentiment), and evidence.sources (which pages were cited). All of it is positionally stable JSON — no per-provider parsers.

  4. step 4 / 4

    Diff captures over time and alert on change

    Store Envelopes keyed by (prompt, surface, region) and diff runs: a brand disappearing from mentions, a competitor entering the citation set, an AI Overview no longer triggering (surfacePresent flipping to false) — each is a concrete, alertable delta. The durable artifacts mean every alert links to a screenshot of the moment it happened.

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

The visibility signal itself: brand, ordinal position, sentiment, supporting source ids — per capture, separately versioned.

evidence.sources[]

Who gets cited when your brand does (or does not) appear — the competitive citation set.

provenance.surfacePresent

Distinguishes "the surface said nothing" from "the capture failed" — absence is a tracked, truthful data point.

provenance.region

Requested-vs-effective market per capture, so cross-country visibility comparisons are trustworthy.

job.artifacts.screenshotKey

Every visibility claim in your dashboard can link to a durable screenshot of the surface saying it.

Honest limits

Live coverage is the seven consumer surfaces with a v1 lane (ChatGPT, Perplexity, Copilot, Google AI Overview/Mode/Search/News) plus Claude via the official model API (api_surrogate fidelity — the consumer-UI Claude lane is phase-2). Gemini has no v1 path yet and login-walled surfaces like Meta AI, Grok, DeepSeek and Amazon Rufus are phase-2 roadmap — we never report them as monitorable today. Captures are guest sessions; personalized logged-in visibility is a phase-2 concern.

Terms used here, defined precisely: AI visibility · Envelope · Absence-is-data · Own-fleet

Asked precisely.

Is this a dashboard like Profound or Otterly?

No — it is the API those kinds of products need underneath: submit prompts, get back structured Envelopes with mentions, citations and proof artifacts. You own the scheduling, storage, scoring and UI. If you want a finished dashboard, buy one; if you are building one, this is the capture layer.

How often should I capture?

You decide — the API is stateless per request, so daily or weekly per (prompt, surface, region) is a scheduling choice on your side. Batch submits (500 items per call) plus webhooks make a nightly sweep across hundreds of prompts one request cycle. Charged-on-success means empty results never burn budget.

Can I trust the brand-mention extraction?

The mentions layer is derived, and the Envelope says so: it carries its own engine identifier and confidence score, separately versioned from the answer. When you need ground truth, the raw answer text and the durable screenshot are always in the same Envelope to verify against.

What does monitoring a brand cost, roughly?

Per-surface credit costs are published on the pricing page (3–6 credits per successful capture). As a worked example: 20 prompts × 5 surfaces × 2 regions daily is 200 captures/day — comfortably inside the Starter plan’s 150,000 monthly credits.

Build it on the capture layer.

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