include.aioverview, so no separate API call is needed.
Overview

AI Overview in Google Search
Example request
AI Overview is opt-in: setinclude.aioverview in your request to include it in the response.
aioverview object documented below.
AI Overview structure
| Field | Type | Description |
|---|---|---|
result.aioverview | object | Google AI Overview data (if requested) |
result.aioverview.text | string | AI Overview text content |
result.aioverview.markdown | string | AI Overview in markdown format (if requested) |
result.aioverview.sources | array | Sources referenced in AI Overview |
result.aioverview.citationPills | array | Inline citation pills, denormalized per cited source (when present) |
result.aioverview.videos | array | Videos included in AI Overview |
result.aioverview.ads | array | Sponsored ads injected in AI Overview |
Sources
result.aioverview.sources follows the common sources structure (position, url, label, and description).

Sources in AI Overview
Citation pills
Inline citation pills (e.g.[Chase Bank +3]) Google renders next to the AI Overview text are exposed denormalized: each entry is one (pill, source) pair carrying a per-source label (the source’s own page title). When a pill cites N sources, the array contains N entries sharing the same citationPillId but carrying different per-source label, url, and domain. Group by citationPillId to recover the pill-level structure. The field is omitted when the answer carries no pills.
| Field | Type | Description |
|---|---|---|
label | string | Per-source title from the sources rail (e.g. "Best laptops for developers"). Always present; may be an empty string when the rail has no title for this source — read domain / url for source identity in that case. |
citationPillId | integer | Stable identifier shared by all entries from the same visible chip. 1-based ordinal assigned in document order. |
url | string | Direct URL of the cited source. |
domain | string | Host extracted from url, for grouping and display. |
description | string | Source snippet from the sources rail when Google ships one. Omitted when absent. |
position | integer | 1-based position of this source in the sibling result.aioverview.sources array. |
Videos
Video content included in AI Overview. Videos appear in the order Google embeds them in the AI Overview answer; array index0 is the first card shown.

Videos in AI Overview
| Field | Type | Description |
|---|---|---|
url | string | Direct URL to the video |
title | string | Video title |
thumbnail | string | Thumbnail image URL |
source | string | Channel or source name |
platform | string | Video platform (e.g., YouTube) |
date | string | Upload date |
duration | string | Video duration |
Only
url is guaranteed. Every other field is best-effort: Google does not
attach every piece of metadata to every video card, and thumbnail and
duration in particular are only available when Google renders the rich
carousel preview (roughly 60% and 15% of videos in practice). Check for
field presence before reading.Ads
Sponsored ads injected by Google inside the AI Overview. Each entry inads[] is one of two sub-types — text/lead-gen or shopping/product — discriminated by the type field. Sub-type-exclusive fields are only present when they apply to that ad.

Ads in AI Overview
| Field | Type | Always present | Description |
|---|---|---|---|
position | number | Yes | Position of ad (1-indexed) |
title | string | Yes | Ad title |
url | string | Yes | Ad destination URL |
type | string | Yes | Sub-type discriminator: "TEXT" or "SHOPPING" |
domain | string | When type is TEXT | Domain name of the advertiser |
description | string | When type is TEXT | Ad description text |
price | object | When type is SHOPPING | Product price |
old_price | object | When type is SHOPPING, with sale pricing | Original price before discount |
store | string | When type is SHOPPING | Retailer name |
image | string | When extracted | Ad image URL (product photo for shopping ads, hero image for text ads) |
Ad price object
price and old_price carry both a parsed and a raw representation:
| Field | Type | Description |
|---|---|---|
value | number | Numeric price. Present when the visible string parses unambiguously into a number. |
currency | string | Currency symbol (e.g. $, £, €). Present when a recognized symbol is detected. |
raw | string | Visible price text verbatim (e.g. "$1,499", "$0 down with 24 monthly payments"). |
raw is always present when price is emitted; value and currency only when the string parses unambiguously. Installment / down-payment labels parse the leading "$0" as value: 0 — use raw to disambiguate.