> ## Documentation Index
> Fetch the complete documentation index at: https://cloro.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# AI Overview

> AI Overview data returned by the Google Search endpoint, including text, markdown, sources, citation pills, videos, and sponsored ads.

This section documents the **AI Overview** data returned by the [Google Search endpoint](/api-reference/endpoint/monitor-google). AI Overview is part of the Google response when requested via `include.aioverview`, so no separate API call is needed.

## Overview

<Frame caption="AI Overview in Google Search">
  <img src="https://mintcdn.com/cloro/Qv2xgJAgMecwTTRq/images/google/aioverview.webp?fit=max&auto=format&n=Qv2xgJAgMecwTTRq&q=85&s=6a37030782d20a1b39f5c9de99eb145a" alt="AI Overview in Google Search" width="2258" height="1102" data-path="images/google/aioverview.webp" />
</Frame>

AI Overview is Google's AI-generated summary that appears at the top of certain search results. It includes a text summary, cited sources, optional videos, and occasionally sponsored ads.

<Note>
  AI Overview availability varies by country. Some regions are not supported and return an `UnsupportedInputError` when `include.aioverview` is set — this is a region-level error, not a query failure. Other supported regions may return `aioverview: null` when Google does not show an AI Overview for a specific query. In both cases, all other Google Search result data is returned normally. Use the [`/v1/countries`](/api-reference/endpoint/countries) endpoint with `model=aioverview` to check current regional availability before sending requests.
</Note>

## Example request

AI Overview is opt-in: set `include.aioverview` in your request to include it in the response.

```json theme={null}
{
  "query": "best laptops for programming",
  "country": "US",
  "include": {
    "aioverview": {
      "markdown": true
    }
  }
}
```

This produces a response containing the `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](/guides/making-requests/sync#sources-array-structure) (`position`, `url`, `label`, and `description`).

<Frame caption="Sources in AI Overview">
  <img src="https://mintcdn.com/cloro/Qv2xgJAgMecwTTRq/images/google/aioverview-sources.webp?fit=max&auto=format&n=Qv2xgJAgMecwTTRq&q=85&s=b346351fb5672195a30d0d521993fdaa" alt="Sources in AI Overview" width="896" height="1144" data-path="images/google/aioverview-sources.webp" />
</Frame>

## 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 index `0` is the first card shown.

<Frame caption="Videos in AI Overview">
  <img src="https://mintcdn.com/cloro/Qv2xgJAgMecwTTRq/images/google/aioverview-videos.webp?fit=max&auto=format&n=Qv2xgJAgMecwTTRq&q=85&s=fc6acf74fea04114fe399cfb1bbddf81" alt="Videos in AI Overview" width="1774" height="948" data-path="images/google/aioverview-videos.webp" />
</Frame>

| 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                 |

<Note>
  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.
</Note>

## Ads

Sponsored ads injected by Google inside the AI Overview. Each entry in `ads[]` 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.

<Frame caption="Ads in AI Overview">
  <img src="https://mintcdn.com/cloro/Qv2xgJAgMecwTTRq/images/google/aioverview-ads.webp?fit=max&auto=format&n=Qv2xgJAgMecwTTRq&q=85&s=b0a843353ba6de2e816d87e65145a3e5" alt="Ads in AI Overview" width="1480" height="824" data-path="images/google/aioverview-ads.webp" />
</Frame>

| 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.

## Response example

```json theme={null}
{
  "success": true,
  "result": {
    "aioverview": {
      "text": "For programming, look for laptops with at least 16GB of RAM, a fast SSD, and a comfortable keyboard...",
      "markdown": "For programming, look for laptops with at least **16GB of RAM**, a fast SSD, and a comfortable keyboard...[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": "Guide to laptops for software development."
        }
      ],
      "citationPills": [
        {
          "label": "Best laptops for developers",
          "citationPillId": 1,
          "url": "https://example.com/best-dev-laptops",
          "domain": "example.com",
          "description": "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 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..."
        }
      ]
    }
  }
}
```
