cloro WebsiteAPI Get an API key
API Reference › ChatGPT › Shopping cards

Shopping cards

Product blocks that cloro parses out of a ChatGPT answer — each one carries the title, price, merchant, rating, and per-seller offers behind a recommended item.

Overview

Shopping cards are not a standalone endpoint. They ride along inside the payload returned by the ChatGPT extract call, so there is no separate request to make. When ChatGPT surfaces commercial or product-style content for a prompt, cloro normalizes those cards into a shoppingCards array on the result object.

Extraction is opt-in. Add include.shopping: true to your request body and the cards appear in the response; leave it out and they are skipped. Turning the flag on carries no extra charge. Cards tend to show up when ChatGPT routes the prompt through its lightweight shopping model, and because the model is chosen per request they will not be present in every answer.

Request example

{
  "prompt": "What are the best sneakers under $100?",
  "model": "CHATGPT",
  "country": "US",
  "include": { "shopping": true }
}

Shopping card structure

Every entry in the shoppingCards array holds a set of category tags plus the products grouped under that card.

FieldTypeDescription
tagsarrayCategory labels describing the card, for example ["electronics", "deals"].
productsarrayThe product objects that belong to this card.

Product information

Each product object exposes the commerce details cloro could pull for that item.

FieldTypeDescription
titlestringDisplay name of the product.
positioninteger1-based rank counted flat across every card in the response, not restarted per card.
urlstringLink to the product page, carrying ChatGPT attribution parameters.
descriptionstringShort product description.
pricestringCurrent price as shown, for example "$57.00".
featured_tagstringStyle or category label highlighted for the product.
merchantsstringSummary of sellers, for example "Amazon.in + others".
image_urlsarrayProduct image links.
ratingfloatAverage rating on a 0–5 scale.
num_reviewsintegerCount of reviews behind the rating.
idstringStable identifier for the product.
citestringCitation reference token, for example "turn0product0".
offersarrayPer-merchant offers for the product (see below).
offersSeeMoreBoundaryintegerHow many offers are visible before a "see more" control.
rating_grouped_citationobjectRating source attribution with supporting websites.
showcaseMetadataobjectDisplay metadata used to lay out product imagery.
providersarrayIdentifiers of the data providers that fed the product.
productLookupKeyobjectKey used to look up refreshed product data.
productLookupDataobjectStructured lookup query for the product.
showPriceDisclosurebooleanWhether a price disclosure should be shown.
analyticsMetaobjectAnalytics metadata, including a productEventUuid.
metadataSourcesarrayOrigins of the product metadata, for example ["p2"].
generatedProductQuerystringThe broader shopping query ChatGPT generated for the item.

Offer information

Each element of offers describes one merchant's listing for the product.

FieldTypeDescription
merchant_namestringName of the merchant, for example "Amazon.in".
merchant_subtitlestringSecondary merchant detail.
marketplace_sellerstringThird-party seller operating on the marketplace.
seller_namestringSeller name.
brandstringBrand of the product.
product_namestringProduct name as the merchant lists it.
urlstringOffer link with ChatGPT attribution.
pricestringOffer price.
detailsstringStock and delivery notes.
original_pricestringPre-discount price, when present.
availablebooleanWhether the offer is in stock.
checkoutablebooleanWhether the offer supports direct checkout.
checkout_payloadstringEncoded data for the checkout flow.
checkout_image_urlsarrayImages used during checkout.
is_digitalbooleanWhether the product is a digital good.
price_detailsobjectLine-item price breakdown (see below).
tagobjectPromotional tag on the offer (see below).
shop_idstringIdentifier of the shop.
providerstringProvider code, for example "p2".

Price details

When an offer includes a cost breakdown, price_details splits it out.

FieldTypeDescription
display_pricestringFormatted price for display.
basestringBase price of the product.
shippingstringShipping cost.
taxstringTax amount.
totalstringTotal including any added costs.

Offer tag

FieldTypeDescription
textstringTag label, for example "Best price".
tooltipstringExplanatory text for the tag.

Rating citation information

Products may carry attribution for where their rating came from via rating_grouped_citation.

FieldTypeDescription
titlestringSource title.
urlstringSource URL.
supporting_websitesarrayAdditional websites backing the rating (see below).
attributionstringAttribution text; may be null.
pubDatestringPublication date; may be null.
snippetstringExcerpt of the source; may be null.
attributionSegmentsarraySegmented attribution data; may be null.
refsarrayReference objects.
huestringColor hue hint; may be null.

Supporting website

Entries of rating_grouped_citation.supporting_websites.

FieldTypeDescription
titlestringSupporting website title.
urlstringSupporting website URL.
pub_datestringPublication date; may be null.
snippetstringContent excerpt; may be null.

Showcase metadata

Layout hints for product imagery, primarily on inline products.

FieldTypeDescription
imageobjectImage info: url, width, height.
backgroundobjectBackground colors: type, primary, secondary.
slotsobjectNamed display slots with positioning and fit data.

Response example

{
  "success": true,
  "result": {
    "text": "If you're shopping for sneakers under $100, here are a few options...",
    "shoppingCards": [
      {
        "tags": ["stylish casual leather sneaker", "canvas everyday skate-inspired"],
        "products": [
          {
            "title": "Adidas VL Court 3.0",
            "position": 1,
            "url": "https://www.adidas.com/us/vl-court-3.0-shoes/ID8797.html?utm_source=chatgpt.com",
            "price": "$57.00",
            "featured_tag": "stylish casual leather sneaker",
            "merchants": "adidas + others",
            "cite": "turn0product0",
            "image_urls": ["https://images.example-cdn.com/static/AY2CiYu1..."],
            "id": "3250714974047560249",
            "rating": 4.7,
            "num_reviews": 10394,
            "showPriceDisclosure": false,
            "offersSeeMoreBoundary": 3,
            "providers": ["product_info"],
            "metadataSources": ["p2"],
            "offers": [
              {
                "merchant_name": "adidas",
                "seller_name": "adidas",
                "product_name": "Adidas Women's VL Court 3.0",
                "url": "https://www.adidas.com/us/vl-court-3.0-shoes/ID8797.html?utm_source=chatgpt.com",
                "price": "$57.00",
                "details": "In stock online and nearby, delivery Sat - Mon $4.99",
                "original_price": null,
                "available": true,
                "checkoutable": false,
                "is_digital": null,
                "provider": "p2",
                "price_details": { "base": "$57.00", "total": "$57.00" },
                "tag": { "text": "Best price" }
              }
            ]
          }
        ]
      }
    ]
  }
}

Notes

Shopping cards are best treated as opportunistic: their presence depends on how ChatGPT answers a given prompt, and individual fields can be null or absent. Guard for missing keys when you read them. For help interpreting a specific card, reach out at [email protected].