answer.text · answer.markdownNormalized text from the answer-bearing modules the rendered page showed; empty (with surfacePresent:false) when the SERP had no answer module, never fabricated.
answer.markdown (inline results)Where the page surfaced an answer with links, they come through inline in the markdown, ready for your own extraction.
provenance.regionRequested-vs-effective country, rankings are geo-sensitive, and the Envelope proves which market you actually measured.
provenance.surfacePresentWhether the page carried an answer module at all, recorded honestly rather than fabricated.
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 real rendered SERP, fetchable at GET /v1/artifacts/{key}, not a re-serialized guess. Off by default.
Envelope excerpt, google_search
{
"job": {
"id": "job_7a25c8e3.google_search.US",
"surface": "google_search",
"status": "completed",
"warnings": []
},
"provenance": {
"surfacePresent": true,
"region": { "requested": "US", "effective": "US" }
},
"answer": { "text": "…", "markdown": "…", "blocks": [ … ] }
}