answer.text · answer.markdown · answer.blocksThe answer as ChatGPT rendered it — plain text, normalized markdown (always populated), and typed blocks whose referenceIds point into the source list.
evidence.sources[]Every source with a role (cited / retrieved / related), a cited boolean, and charRanges — the exact character spans of the answer each source backs.
evidence.fanOutThe sub-queries ChatGPT actually searched, marked observed when read off the page — the raw material of GEO analysis.
evidence.mentionsThe derived brand-mentions layer: brand, ordinal position, sentiment, and the source ids supporting each mention. Separately versioned; null when not computed.
provenanceHow the capture ran: acquisition lane, consumer_ui fidelity, loginState, observed-vs-inferred model label with confidence, webSearch state, requested-vs-effective region.
job.artifactsDurable R2 keys — screenshot, proof-of-page HTML, raw payload. Not expired at 24h; your audit trail survives.
Envelope excerpt — chatgpt
{
"job": {
"id": "job_8f3c2a1e.chatgpt.own-fleet.US",
"surface": "chatgpt",
"method": "own-fleet",
"status": "completed",
"warnings": [],
"artifacts": {
"screenshotKey": "shots/2026/06/30/job_8f3c2a1e.png",
"proofHtmlKey": "proof/2026/06/30/job_8f3c2a1e.html",
"rawKey": "raw/2026/06/30/job_8f3c2a1e.json"
}
},
"provenance": {
"acquisition": "own-fleet",
"fidelity": "consumer_ui",
"loginState": "logged_out",
"model": { "observedLabel": "GPT-5", "inferred": true, "confidence": 0.62 },
"webSearch": { "enabled": true, "known": true },
"surfacePresent": true,
"region": { "requested": "US", "effective": "US" }
},
"answer": { "text": "…", "markdown": "…", "blocks": [ … ] },
"evidence": {
"sources": [
{ "id": 0, "url": "https://…", "title": "…",
"role": "cited", "cited": true, "charRanges": [[12, 33]] }
],
"fanOut": { "provenance": "observed", "queries": ["…", "…"] },
"mentions": { "engine": "mentions@0.9.0", "confidence": 0.81, "items": [ … ] }
}
}