AI Overview
Describes the aioverview object that cloro's Google Search endpoint attaches to a response when you opt into Google's AI-generated summary, covering its text, cited sources, inline citation pills, embedded videos, and sponsored ads.
Overview
AI Overview is the AI-written summary Google places above certain organic results. cloro folds this block into the standard Google Search response rather than exposing it through a separate route, so you retrieve it in the same call that returns your other search data. The payload bundles a plain-text summary, an optional markdown rendering, the sources Google cited, any citation chips shown beside the text, video cards, and, when Google shows them, sponsored placements.
The feature is opt-in. Set include.aioverview in your request body and the response gains a result.aioverview object built from the fields below. Omit it and no overview data is collected.
Example request
{
"query": "best laptops for programming",
"country": "US",
"include": {
"aioverview": {
"markdown": true
}
}
}
Passing markdown: true additionally populates result.aioverview.markdown with a formatted version of the summary that preserves emphasis and inline links.
AI Overview structure
| Field | Type | Description |
|---|---|---|
| result.aioverview | object | Container for the collected AI Overview, present only when requested. |
| result.aioverview.text | string | Plain-text form of the summary. |
| result.aioverview.markdown | string | Markdown rendering of the summary; returned only when markdown is requested. |
| result.aioverview.sources | array | The reference sources Google attributed the summary to. |
| result.aioverview.citationPills | array | Inline citation chips, flattened to one row per cited source; appears only when the answer carries pills. |
| result.aioverview.videos | array | Video cards embedded within the overview. |
| result.aioverview.ads | array | Sponsored placements Google inserted into the overview. |
Sources
Each entry in result.aioverview.sources uses cloro's shared source shape, exposing position, url, label, and description so you can list and rank the pages Google drew from.
Citation pills
The chips Google renders next to the summary text (for example [Chase Bank +3]) are returned in a flattened form: every row represents a single pill-and-source pairing rather than a whole chip. A chip that references several sources therefore yields several rows that share one citationPillId while differing in label, url, and domain. Reassemble the original chips by grouping on citationPillId.
| Field | Type | Description |
|---|---|---|
| label | string | The source's own page title as shown in the sources rail. Always sent, but may be empty when the rail supplies no title — fall back to domain or url for identity in that case. |
| citationPillId | integer | 1-based ordinal, assigned in document order, that is identical across every row belonging to the same visible chip. |
| url | string | Direct link to the cited page. |
| domain | string | Host parsed from url, convenient for grouping and display. |
| description | string | Snippet from the sources rail, included only when Google provides one. |
| position | integer | 1-based rank of this source within the matching result.aioverview.sources array. |
Videos
Video cards are listed in the order Google embeds them, so index 0 is the first card shown in the overview.
| Field | Type | Description |
|---|---|---|
| url | string | Direct link to the video. |
| title | string | Video title. |
| thumbnail | string | Preview image URL. |
| source | string | Channel or publisher name. |
| platform | string | Hosting platform, such as YouTube. |
| date | string | Publication or upload date. |
| duration | string | Runtime of the clip. |
Only url is guaranteed. Every other field is best-effort, because Google does not tag every card with full metadata; thumbnail and duration in particular surface only when the rich carousel preview is rendered. Test for a field before reading it.
Ads
Sponsored entries in ads[] come in two flavours — a text/lead-gen variant and a shopping/product variant — separated by the type discriminator. Variant-specific fields appear only for the matching sub-type.
| Field | Type | Description |
|---|---|---|
| position | number | 1-based slot of the ad. Always present. |
| title | string | Ad headline. Always present. |
| url | string | Ad destination link. Always present. |
| type | string | Sub-type discriminator, either "TEXT" or "SHOPPING". Always present. |
| domain | string | Advertiser host; present for TEXT ads. |
| description | string | Ad body copy; present for TEXT ads. |
| price | object | Current price; present for SHOPPING ads. |
| old_price | object | Pre-discount price; present for SHOPPING ads on sale. |
| store | string | Retailer name; present for SHOPPING ads. |
| image | string | Ad image URL — a product photo for shopping ads or a hero image for text ads — when one can be extracted. |
Ad price object
Both price and old_price carry a parsed reading alongside the original text.
| Field | Type | Description |
|---|---|---|
| value | number | Numeric amount, set only when the visible string parses cleanly. |
| currency | string | Currency symbol (for example $, £, €) when one is recognized. |
| raw | string | The price text exactly as shown (for example "$1,499" or "$0 down with 24 monthly payments"). |
raw is always present whenever a price is emitted, while value and currency appear only on an unambiguous parse. Watch for installment or down-payment copy: a leading "$0" parses to value: 0, so consult raw when the number looks suspicious.
Response example
{
"success": true,
"result": {
"aioverview": {
"text": "For programming, prioritize a laptop with 16GB or more of RAM, a fast SSD, and a keyboard you can type on comfortably...",
"markdown": "For programming, prioritize a laptop with **16GB or more of RAM**, a fast SSD, and a keyboard you can type on comfortably...[Best laptops for developers](https://example.com/best-dev-laptops)",
"sources": [
{
"position": 1,
"url": "https://example.com/best-dev-laptops",
"label": "Best laptops for developers",
"description": "A buyer's guide to laptops for software work."
}
],
"citationPills": [
{
"label": "Best laptops for developers",
"citationPillId": 1,
"url": "https://example.com/best-dev-laptops",
"domain": "example.com",
"description": "A buyer's guide to development laptops",
"position": 1
}
],
"videos": [
{
"url": "https://www.youtube.com/watch?v=example",
"title": "Top 5 Laptops for Programmers",
"thumbnail": "https://i.ytimg.com/vi/example/hqdefault.jpg",
"source": "Tech Channel",
"platform": "YouTube",
"date": "2026-02-10",
"duration": "12:34"
}
],
"ads": [
{
"position": 1,
"type": "TEXT",
"title": "Dell XPS 15 — Developer Edition",
"url": "https://www.dell.com/xps-15-developer",
"domain": "dell.com",
"description": "Pre-configured for Linux development with 32GB of RAM.",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ..."
},
{
"position": 2,
"type": "SHOPPING",
"title": "ThinkPad X1 Carbon Gen 12",
"url": "https://www.bestbuy.com/site/thinkpad-x1-carbon-gen-12/abc123",
"price": {
"value": 1499,
"currency": "$",
"raw": "$1,499"
},
"old_price": {
"value": 1799,
"currency": "$",
"raw": "$1,799"
},
"store": "Best Buy",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR..."
}
]
}
}
}
Notes
AI Overview is not returned on every query — Google only produces it for searches it deems eligible, so treat result.aioverview as optional and check for its presence before reading nested fields. Questions about the endpoint are welcome at [email protected].