search_products
Search products in Demo Store. Returns matching products with prices, images, availability, and direct links. Results include data for generating a visual product carousel artifact with category filtering.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (1-50) | |
| query | No | Search query (e.g. 'red sneakers', 'winter jacket'). Omit to list all products. | |
| cursor | No | Opaque pagination cursor from next_cursor of a previous response. Only valid for the SAME query, category, price range and sort_by — a cursor replayed against different filters is rejected, not silently applied. | |
| compact | No | When true, the same products are described only once instead of twice. `structuredContent.products` stays the full typed record — every field, every product, untouched — but the text reply becomes a short id/title/price/currency/availability line per product instead of a markdown re-narration of that same data (images, links, ratings inline). Nothing that asserts trust is affected: `merchant_trust`, `rating_provenance` and `sort_provenance_warning` are never trimmed by this flag. Ignored when `field_mask` is also set — a field mask already replaces the narration with a compact listing, so there is nothing left for `compact` to cut. | |
| sort_by | No | Sort order for results | relevance |
| category | No | Filter by category slug | |
| max_price | No | Maximum price filter | |
| min_price | No | Minimum price filter | |
| field_mask | No | Return only these product fields, to spend less of your context on a large catalogue. `id` is always included. Supplying a mask also drops the carousel/UI payloads, which are the bulk of a full response. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| total | Yes | ||
| has_more | No | ||
| products | Yes | ||
| next_cursor | No | ||
| store_environment | No | ||
| sort_provenance_warning | No |