provenance.surfacePresentThe field that matters most here: AI Overviews trigger on some queries and not others. false means the SERP rendered with no Overview, the job completes, flagged surface_absent, recorded rather than dropped.
answer.text · answer.markdown · answer.blocksThe AI Overview’s text as rendered in the block, normalized, with the pages it links preserved inline in the markdown.
answer.markdown (inline links)The sites the Overview cites come through inline in the answer markdown, the citation set GEO teams live on, ready for your own extraction.
provenance.regionRequested-vs-effective country. Overview presence and content vary hard by market, capture the same query across any ISO countries you target and diff.
html (opt-in proof-of-page)Set include.html:true and the Envelope carries a top-level html URL — a proof-of-page snapshot of the rendered SERP, fetchable at GET /v1/artifacts/{key}. Off by default.
Envelope excerpt, google_ai_overview
{
"job": {
"id": "job_c2e84d17.google_ai_overview.US",
"surface": "google_ai_overview",
"status": "completed",
"warnings": []
},
"provenance": {
"surfacePresent": true,
"region": { "requested": "US", "effective": "US" }
},
"answer": {
"text": "To fix a leaking tap, first turn off the supply…",
"markdown": "To fix a leaking tap, first turn off the supply [thespruce.com]…",
"blocks": [ { "type": "paragraph", "text": "…" } ]
}
}
// and when no Overview triggers, absence-is-data:
{
"job": { "status": "completed", "warnings": ["surface_absent"] },
"provenance": { "surfacePresent": false },
"answer": { "text": "", "markdown": "", "blocks": [] }
}