## Inline products in AI Mode

This section documents the **inline products** data returned by the [Google AI Mode endpoint](/content/docs/api-reference/endpoint/monitor-aimode/index.html): product cards found within the AI response text, part of the AI Mode response so no separate API call is needed. Unlike [shopping cards](/content/docs/api-reference/endpoint/aimode/shopping-cards/index.html) — which group multiple products into a dedicated carousel — inline products are stand-alone product references embedded directly in the AI’s prose. Both arrays may coexist in a single response. For use cases, pricing context, and copy-paste examples, see the [AI Mode shopping API](/content/ai-mode/shopping/index.html) page on the product site.

## Example request

Inline products are intent-detected; no flag is required.

```
{
  "prompt": "what are the best wireless headphones for travel",
  "country": "US"
}
```

## Inline product structure

| Field      | Type     | Description                                                                                                                                   |
|------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| `title`    | string   | Product title                                                                                                                                |
| `position` | integer  | 1-indexed rank across the `inlineProducts` array in DOM/render order. Always emitted.                                                      |
| `price`    | object   | Structured pricing — see [price object](/content/docs/api-reference/endpoint/aimode/inline-products#price-and-oldprice/index.html) for the shape |
| `oldPrice` | object   | Original price before discount (same shape as `price`)                                                                                      |
| `store`    | string   | Merchant/store name (e.g. "Amazon", "Mercado Livre")                                                                                     |
| `thumbnail`| string   | Product image URL. May be a `https://` URL or a `data:image/jpeg;base64,...` blob injected by Google’s client JS.                         |
| `productLink` | string | Direct product URL                                                                                                                          |

### `price` and `oldPrice`

| Field      | Type              | Description                                                                                       |
|------------|-------------------|---------------------------------------------------------------------------------------------------|
| `value`    | number  null  | Parsed numeric price. `null` when the visible text can’t be unambiguously parsed.             |
| `currency` | string  null  | Currency symbol (e.g. `"$"`, `"£"`, `"R$"`, `"€"`). `null` when no symbol was found.  |
| `raw`      | string            | Visible card text verbatim (e.g. `"$329.99"`, `"R$ 4,40/mês"`). Always present when the parser had any input text. |

The `raw` field captures the price string exactly as Google rendered it, which covers three cases:

- **Parseable** — `{value, currency, raw}` all populated. Use `value` for math/aggregation.
- **Installment** — Brazilian and other locales render monthly-payment offers like `R$ 4,40/mês`. We emit `{raw}` only (no `value`) because shipping `4.40` as the product price would be wrong. Fall back to `raw` for display.
- **Unparseable / locale-ambiguous** — e.g. `"Free"`, `"€1.234"` in an unknown locale context. We emit whatever was extractable (often just `raw`) so you can render the card text without losing the signal.

## Response example

```
{
  "success": true,
  "result": {
    "text": "Based on expert reviews, here are the top wireless headphones for travel...",
    "inlineProducts": [
      {
        "title": "Sony WH-1000XM5",
        "position": 1,
        "price": {
          "value": 298.0,
          "currency": "$",
          "raw": "$298.00"
        },
        "oldPrice": {
          "value": 399.99,
          "currency": "$",
          "raw": "$399.99"
        },
        "store": "Amazon",
        "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...",
        "productLink": "https://www.google.com/shopping/product/example"
      },
      {
        "title": "Short Floral Estampa Floral - Compre Já",
        "position": 2,
        "price": {
          "raw": "R$ 4,40/mês"
        },
        "store": "Mercado Livre",
        "productLink": "https://www.google.com/shopping/product/example2"
      }
    ]
  }
}
```
