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

# Shopping cards

> Schema for shopping product cards returned by the Google AI Mode endpoint when shopping intent is detected, with pricing, ratings, offers, and reviews.

This section documents the **shopping cards** data returned by the [Google AI Mode endpoint](/api-reference/endpoint/monitor-aimode). Shopping cards are part of the AI Mode response, so no separate API call is needed.

## Example request

Shopping cards are intent-detected. Send a prompt that expresses shopping intent (for example, asking for products, prices, or where to buy). No flag is required.

```json theme={null}
{
  "prompt": "best wireless headphones under $200",
  "country": "US"
}
```

This produces a response containing the `shoppingCards` array documented below.

## Overview

Shopping product information extracted from the response when AI Mode detects shopping intent.

<Frame caption="Shopping cards in AI Mode">
  <img src="https://mintcdn.com/cloro/Qv2xgJAgMecwTTRq/images/aimode/shopping-cards.webp?fit=max&auto=format&n=Qv2xgJAgMecwTTRq&q=85&s=2f8cabb05a1ca318e3bdd664724e1b24" alt="Shopping cards in AI Mode" width="1362" height="1162" data-path="images/aimode/shopping-cards.webp" />
</Frame>

<Note>
  For individual product references embedded inline within the AI response text (rather than in a dedicated carousel), see [inline products](/api-reference/endpoint/aimode/inline-products). Both arrays may appear in the same response.
</Note>

## Shopping card structure

| Field           | Type   | Description                                                                                                                               |
| --------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `title`         | string | Product title                                                                                                                             |
| `position`      | number | 1-indexed rank across the `shoppingCards` array in DOM/render order.                                                                      |
| `price`         | object | Structured pricing with `value`, `currency`, and `raw`                                                                                    |
| `store`         | string | Merchant/store name (conditionally populated — may be absent)                                                                             |
| `rating`        | number | Product rating                                                                                                                            |
| `reviews`       | string | Review count in Google's abbreviated format (e.g., `"2.3k"`, `"1m"`). Parse as a string; convert client-side if you need a numeric value. |
| `thumbnail`     | string | Product image URL                                                                                                                         |
| `productLink`   | string | Direct product URL (conditionally populated — may be absent)                                                                              |
| `oldPrice`      | object | Original price before discount (conditionally populated — absent when no discount)                                                        |
| `snippet`       | string | Product description snippet                                                                                                               |
| `snippet_links` | array  | Links found within the product snippet                                                                                                    |

<Note>
  `store`, `productLink`, and `oldPrice` are conditionally populated — not every item includes all fields. Build your pipeline to handle missing fields on any individual shopping card.
</Note>

### `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. `"$149.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. Use it as a fallback display when `value` is `null` (installment offers, locale-ambiguous numerics) — see the [inline products docs](/api-reference/endpoint/aimode/inline-products#price-and-oldprice) for the full price-shape contract; it's shared across all AI Mode price-bearing fields.

### `snippet_links`

| Field  | Type   | Description |
| ------ | ------ | ----------- |
| `text` | string | Link text   |
| `link` | string | Link URL    |

## Response example

```json theme={null}
{
  "success": true,
  "result": {
    "text": "Here are highly-rated wireless headphones under $200...",
    "shoppingCards": [
      {
        "title": "Sony WH-CH720N Noise Cancelling Headphones",
        "position": 1,
        "price": {
          "value": 149.99,
          "currency": "$",
          "raw": "$149.99"
        },
        "oldPrice": {
          "value": 199.99,
          "currency": "$",
          "raw": "$199.99"
        },
        "store": "Amazon",
        "rating": 4.5,
        "reviews": "2.3k",
        "thumbnail": "https://example.com/product.jpg",
        "productLink": "https://www.amazon.com/sony-wh-ch720n",
        "snippet": "Noise-canceling wireless headphones with 30-hour battery life",
        "snippet_links": [
          {
            "text": "noise canceling",
            "link": "https://www.google.com/search?q=noise+canceling"
          }
        ]
      }
    ]
  }
}
```
