Search products
search_productsAnswer one free-text shopping query, such as 'TVs under $500 with 120hz refresh rate', 'quiet dishwasher for a small kitchen', 'robot vacuum for pet hair under $600', or 'Sony WH-1000XM5 lowest price'. A query naming one specific product resolves to that product (interpretation.mode 'product'): products[0] holds every seller offer, and shelf_context gives its shelf rank and higher-scoring alternatives. 'A vs B' returns both products with specs in one shared order (mode 'comparison'). Otherwise the category is resolved, hard constraints such as price and specs become filters, and soft wishes such as 'quiet' or 'for pet hair' become ranking preferences that exclude nothing; interpretation.preferences lists them with reasons, and each row's preference_boost shows the effect. The interpretation object records how the query was read: method (deterministic parser or query-understanding model), fit_note (a one-line judgment of the category fit), and match_quality. 'strong' means the shelf plainly fits. 'partial' means either rows are served with some shopper words unexplained (listed in unparsed_tokens and unsupported_terms), or no rows are served because the closest shelf was only a medium-confidence fit (named in interpretation.llm_category). 'weak' and 'none' return no rows and queue the request as demand (queued_for_creation for a missing category, queued_product_request for a missing product). card_specs gives the specs every product card shows, in display order. Responses that carry buy_url links also carry a disclosure field: the commission disclosure for those links.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| query | Yes | ||
| cursor | No | ||
| user_signature | No | Optional opaque, stable, pseudonymous user id: the shopper's own rate-limit quota and click attribution. Format: 'sv1-' + the first 24 hex characters of SHA-256('swervie/v1|' + normalized identifier), or 'sv1r-' + a UUID. A raw email or phone number is hashed server-side before anything is stored. |