← All use cases

The measurement API for Generative Engine Optimization.

GEO — getting your pages cited inside AI answers — fails without measurement. You cannot optimize for AI Overviews or ChatGPT citations if you cannot observe which sources they currently cite, which sub-queries they run to build the answer, and whether your change moved anything. Rank trackers watch positions on a SERP; GEO needs the evidence layer inside the answer itself.

The workflow, end to end.

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

  1. step 1 / 4

    Capture the answers for your target queries

    Submit each target query to the surfaces that matter for it — the AI Overview for informational queries, ChatGPT and Perplexity for comparative ones.

    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": "how to choose a password manager",
        "surfaces": ["google_ai_overview", "chatgpt", "perplexity"],
        "regions": [{ "country": "US" }]
      }'
  2. step 2 / 4

    Read the citation set: evidence.sources

    Each Envelope lists every source with a role (cited / retrieved / related), a cited boolean and charRanges — which characters of the answer each page backs. This is your target list: the pages currently winning the answer, and how much of it each one carries.

  3. step 3 / 4

    Read the retrieval behind the answer: evidence.fanOut

    fanOut.queries are the sub-queries the engine ran to build the answer, marked observed when read directly off the page. Pages that match the fan-out queries — not just the visible query — are the ones that get retrieved. This is the GEO keyword research nothing else exposes.

    Envelope excerpt — the GEO fields
    "evidence": {
      "sources": [
        { "id": 0, "url": "https://competitor.com/guide",
          "title": "…", "role": "cited", "cited": true,
          "charRanges": [[102, 288]] },
        { "id": 1, "url": "https://yoursite.com/blog/…",
          "title": "…", "role": "retrieved", "cited": false }
      ],
      "fanOut": {
        "provenance": "observed",
        "queries": [
          "password manager security comparison",
          "best password manager families 2026"
        ]
      }
    }
  4. step 4 / 4

    Ship content changes, then re-capture and diff

    After optimizing (answering the fan-out queries, matching the cited pages’ structure), re-run the identical request. Moving from absent → role:"retrieved" → cited:true with growing charRanges is GEO progress measured in contract fields, not vibes — and each state is backed by a dated screenshot.

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.sources[].role + cited

The GEO ladder: absent → retrieved (seen, not used) → cited (in the answer). Your KPI per query per surface.

evidence.sources[].charRanges

How much of the answer a source carries — citation share, not just citation presence.

evidence.fanOut.queries

The sub-queries the engine actually searched — the content targets that make a page retrievable.

evidence.fanOut.provenance

Observed vs inferred — you know whether the fan-out was read off the page or deduced.

job.artifacts.proofHtmlKey

Before/after proof-of-page for every optimization claim you report.

Honest limits

Fan-out visibility varies by surface: fanOut.provenance tells you per capture whether sub-queries were observed or inferred — treat inferred fan-out as directional, not ground truth. Claude runs api_surrogate today (official model API), so its citation behavior is the API’s, not the consumer UI’s. Gemini has no v1 path; AI Overview presence itself is query-dependent (absence is reported honestly, and costs nothing).

Terms used here, defined precisely: Generative engine optimization (GEO) · Fan-out · Provenance · AI Overview

Asked precisely.

What is Generative Engine Optimization, concretely?

The practice of getting your pages retrieved and cited inside AI-generated answers — AI Overviews, ChatGPT with browsing, Perplexity — rather than (only) ranked in classic results. Operationally it reduces to moving your pages up the ladder the Envelope makes measurable: absent → retrieved → cited, with growing character coverage.

How is this different from rank tracking?

A rank tracker reports your position among ten blue links. GEO measurement reports whether the answer itself used you: the citation set, the share of answer text you back (charRanges), and the fan-out queries that decide retrieval. Those fields simply do not exist in a SERP-position feed.

Does this tell me how to optimize, or just measure?

It is the measurement instrument. The optimization loop it enables is concrete though: target the observed fan-out queries with content, study what the cited pages have in common, ship, re-capture, diff. Without the before/after Envelopes you cannot attribute any citation change to your work.

Which surfaces matter most for GEO?

Google AI Overviews for informational volume, ChatGPT for branded and comparative prompts, Perplexity for citation-dense research queries, AI Mode as it rolls out. All four are live v1 surfaces here, and the same request captures them side by side.

Build it on the capture layer.

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