What each surface is for
Eight surfaces are requestable today. Use the exactsurfaces enum value in your request body. Every live surface returns evidence.sources; the table also flags where fan-out queries are directly observable and where brand mentions are available through opt-in Auto Extract.
Request
Fan-out column: Observed means the surface reveals its own search
sub-queries, so
evidence.fanOut.provenance is observed — today only
ChatGPT exposes them; None means the surface doesn’t reveal sub-queries, so
own-fleet captures report provenance: "none" with an empty queries array;
n/a is a results page that is the search. Mentions: set the extract
request field to run Auto Extract on any live surface.
Without that opt-in, evidence.mentions remains null. Auto Extract is BETA
and costs 0 additional credits today.Cost per capture
Each successful capture is billed at that surface’s credit rate. Billing is success-only — an empty or failed capture (provenance.surfacePresent: false) costs nothing. This table is generated from the code source of truth:
Costs are per child — a search across N surfaces and M regions is N × M captures, each billed at its surface’s rate. See Credits for how debits, headers, and the credits object work.
Structured evidence on every surface
Every surface returns the same structured-extraction layers alongside the answer — at no extra credit cost (this is cloro parity, folded into the base capture price):Sources
evidence.sources[] — the pages behind the answer, each with a role
(cited, retrieved, or related), URL, title, and the charRanges it
supports. Present on every surface. answer.blocks[].referenceIds point
back at these ids.Fan-out queries
evidence.fanOut.queries — the sub-queries the surface ran to build its
answer, exposed only where the surface itself reveals them (today, ChatGPT).
provenance is observed there; own-fleet surfaces report none with an
empty queries array.Brand mentions
evidence.mentions — opt-in Auto Extract derived
from the answer text, including position, sentiment, links, and supporting
source ids. Set extract to populate it; otherwise it remains null. Auto
Extract is BETA and costs 0 additional credits today.evidence.shopping and evidence.ads are reserved placeholders and are
currently always null. See The Envelope for the
full evidence shape.Geo targeting at no extra charge
Every live surface supports country targeting, and supported surfaces add state and city precision — request a capture as it appears inCalifornia
or San Francisco, not just the US. Geo targeting is included in the surface’s
base capture rate: there is no per-region surcharge, unlike cloro, which
bills geo targeting as an add-on. See Regional availability
for the regions array, the supported shapes, and requested-vs-effective
region reporting.
Phase 2 — roadmap
These are interface-stubbed or planned, not requestable today (submitting them returns422; unknown enum values return 400):
- Gemini (
gemini) — a valid enum value with no v1 capture path yet. Requesting it returns422 UNSUPPORTED_METHOD_FOR_SURFACErather than a stand-in that isn’t the real Gemini experience. See Gemini for details. - New surfaces — Meta AI, DeepSeek, Amazon Rufus, and Grok. When they land, you request them by adding their value to
surfaces— no integration changes, no new response format.
Discover capabilities programmatically
The live capability matrix is queryable — no docs required:id and whether it’s live (requestable), plus a schemaVersion stamp — it does not carry per-capture credit cost. The cost table above is the source of truth for pricing.
The Envelope
The canonical shape — job, provenance, answer, and evidence — every surface
returns.
Credits
What each surface costs per capture, and how billing is metered.