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

# Google Gemini shopping cards schema

> Schema for product cards returned by the Google Gemini endpoint on shopping answers, with prices, stores, ratings, images, and product IDs.

This section documents the **shopping cards** data returned by the [Google Gemini endpoint](/docs/api-reference/endpoint/monitor-gemini): the product cards Gemini shows in an answer when it detects shopping intent, part of the Gemini response so no separate API call is needed. Cards appear in the order Gemini shows them.

<Note>
  Gemini's product cards are not sources, and they do not appear in [sources](/docs/api-reference/endpoint/gemini/sources) or [citationPills](/docs/api-reference/endpoint/gemini/citation-pills). The field names follow the [AI Mode shopping cards](/docs/api-reference/endpoint/aimode/shopping-cards), with extra fields that only Gemini supplies.
</Note>

## Example request

Shopping cards are intent-detected; no flag is required.

```json theme={null}
{
  "prompt": "best running shoes for beginners",
  "country": "US"
}
```

## Shopping card structure

| Field          | Type    | Description                                                                                           |
| -------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| `position`     | integer | 1-indexed rank across the `shoppingCards` array, in the order Gemini shows the cards                  |
| `title`        | string  | Product title                                                                                         |
| `productLink`  | string  | Google Shopping URL for the product                                                                   |
| `productId`    | string  | Google Shopping product ID                                                                            |
| `price`        | object  | Current price — see [price object](#price-and-oldprice)                                               |
| `oldPrice`     | object  | Price before a discount (same shape as `price`). Absent when there is no discount                     |
| `store`        | string  | Store that sells the product at `price` (e.g. `"Marathon Sports"`)                                    |
| `storeLink`    | string  | Direct URL of the product on the store's site                                                         |
| `storeCount`   | integer | Number of stores that sell the product. Gemini shows "& more" after the store name when it is above 1 |
| `shipping`     | string  | Shipping cost as Gemini displays it (e.g. `"Free"`, `"$8.95"`)                                        |
| `deliveryTime` | string  | Delivery time as Gemini displays it (e.g. `"3-4 days"`)                                               |
| `rating`       | number  | Product rating (0-5)                                                                                  |
| `reviews`      | integer | Number of reviews                                                                                     |
| `brand`        | string  | Product brand                                                                                         |
| `description`  | string  | Product description                                                                                   |
| `thumbnail`    | string  | Image URL that the card shows                                                                         |
| `images`       | array   | All product image URLs. The first one is `thumbnail`                                                  |
| `catalogId`    | string  | Google Shopping catalog ID                                                                            |
| `gpcId`        | string  | Google Shopping product cluster ID                                                                    |

Only `position`, `title`, `productLink` and `productId` are always present. The other fields are absent for cards that carry no such value. `rating` and `reviews` are absent for a product with no reviews.

### `price` and `oldPrice`

| Field      | Type   | Description                                                               |
| ---------- | ------ | ------------------------------------------------------------------------- |
| `value`    | number | Parsed numeric price                                                      |
| `currency` | string | Currency symbol or code as displayed (e.g. `"$"`, `"R$"`, `"¥"`, `"MXN"`) |
| `raw`      | string | Price text as Gemini displays it (e.g. `"$129.95"`)                       |

When several stores sell a product at different prices, Gemini shows a range and names no store. Then `raw` is the range (e.g. `"884.41MXN - 1069MXN"`), `value` is the lowest price, and `store` is absent. `price` is absent for a product that Gemini shows with no price.

For an installment offer, `price` has only `raw` (e.g. `"now + 166.33MXN for 3 months"`). The amount is per month, not the product price, so `value` and `currency` are absent.

## Response example

```json theme={null}
{
  "success": true,
  "result": {
    "text": "Here are some of the best running shoes for beginners...",
    "shoppingCards": [
      {
        "position": 1,
        "title": "ASICS Men's Novablast 5",
        "productLink": "https://google.com/search?q=ASICS+Men%27s+Novablast+5&prds=catalogid%3A15000182008314641842%2Cproductid%3A11413473167792520357&ibp=oshop",
        "productId": "11413473167792520357",
        "price": { "value": 129.95, "currency": "$", "raw": "$129.95" },
        "oldPrice": { "value": 149.99, "currency": "$", "raw": "$149.99" },
        "store": "Marathon Sports",
        "storeLink": "https://www.marathonsports.com/products/asics-mens-novablast-5",
        "storeCount": 2,
        "shipping": "Free",
        "deliveryTime": "Up to 5 days",
        "rating": 4.8,
        "reviews": 11558,
        "brand": "ASICS",
        "description": "The ASICS Novablast is a multi-talented running shoe...",
        "thumbnail": "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:example",
        "images": [
          "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:example",
          "https://encrypted-tbn2.gstatic.com/shopping?q=tbn:example2"
        ],
        "catalogId": "15000182008314641842",
        "gpcId": "1340101364570861215"
      }
    ]
  }
}
```
