Understanding Google Search Light Results
Web DataResponse envelope
Every successful Light response uses the same shape:
| Field | Type | Description |
|---|---|---|
job_id | string (uuid) | Unique id for this request |
query | string | Query that was submitted |
pages_requested | integer | Pages asked for (pages; 1 if omitted) |
pages_returned | integer | Pages returned and billed |
pages_stopped | string | null | Why fewer pages returned; null if all returned |
pages | array | Result pages, page 1 first |
Each page
| Field | Type | When | Description |
|---|---|---|---|
page | integer | always | Result page number |
attempts | integer | always | Upstream attempts for this page |
results | array | null | json / both | Organic results in order |
suggestions | string[] | null | json / both | Query suggestions |
spelling_correction | string | null | json / both | Spelling correction if any |
ai_overview | object | null | json / both when requested | Parsed AI Overview (page 1) |
html | string | null | html / both | Page HTML as Google sent it |
Organic result fields
| Field | Type | Description |
|---|---|---|
position | integer | 1-based rank on the page |
title | string | Result title |
url | string | Target URL |
snippet | string | Preview text |
thumbnail | string | null | Thumbnail URL if available |
displayed_url | string | null | Display URL |
source_host | string | null | Hostname |
AI Overview
When ai_overview is true and Google provides an overview on page 1:
| Field | Type | Description |
|---|---|---|
text | string | Overview text |
sources | array | Cited sources (may include Google redirect URLs) |
via | page | async | From the results page, or loaded after the page |
When Google loads the overview after the page, we fetch it too, which can add a few seconds.
HTML-only format does not include a parsed ai_overview object. Overview content may still appear inside html (container marked data-aio-written).
Partial multi-page
If you ask for 3 pages and only 2 return:
pages_requested:3pages_returned:2(billed)pages_stopped: e.g.no_resultspages: two page objects
Stop reasons: no_results, blocked, upstream_unreachable, timeout, warming_up, clock, error.
Was this page helpful?