Example request
Shopping cards are intent-detected by Perplexity. Send a prompt that expresses shopping intent (for example, asking for product recommendations or where to buy). No flag is required.shopping_cards array documented below.
Overview
Perplexity automatically detects shopping-intent queries and returns structured shopping cards with product listings, pricing, ratings, and offers.Shopping card structure
| Field | Type | Description |
|---|---|---|
result.shopping_cards | array | Shopping product cards with detailed product information |
| Field | Type | Description |
|---|---|---|
products | array | Array of product objects |
tags | array | Optional category tags |
Product structure
Each product object includes:| Field | Type | Always present | Description |
|---|---|---|---|
title | string | Yes | Product name |
id | string | Yes | Product identifier |
url | string | Yes | Product page URL |
price | string | Yes | Current price (e.g., "$140.00") |
merchant | string | Yes | Merchant name |
available | boolean | Yes | Whether the product is currently available |
imageUrls | array | Yes | Product image URLs |
numReviews | number | Yes | Number of reviews (0 when none) |
offers | array | Yes | Shopping offers from individual merchants — see offers |
position | integer | Sometimes | 1-indexed rank across all products in all shopping cards in the response (flat, not reset per card). |
rating | number | Sometimes | Product rating (0-5) |
original_price | string | Sometimes | Original price before discount |
description | string | Sometimes | Product description |
variants | array | Sometimes | Product variants (size, color, etc.) |
Offer structure
Each entry inoffers represents a single merchant listing for the product:
| Field | Type | Always present | Description |
|---|---|---|---|
url | string | Yes | Offer URL with Perplexity referral parameters |
price | string | Yes | Offer price (e.g., "$140.00") |
merchant_name | string | Yes | Merchant name |
product_name | string | Yes | Product name as listed by the merchant |
available | boolean | Yes | Whether the offer is in stock |
price_details | object | Yes | Detailed price breakdown (currently { display_price }) |
original_price | string | Sometimes | Original price before discount (null when not on sale) |