search_catalog finds products across stores from a text query.
Optional: API key via --header or profile headers.json for Token tier (limits, monetizable links, placements). Without a key, the CLI runs as Anonymous.
Basic search
structuredContent (curl stream) or result (CLI):
products- matches with price, variants, and store infopagination.has_next_page- more results available?pagination.cursor- send this back for the next page
Next page
Filter by store (Channel3 extension)
Limit results to specific merchants:website_ids can be merchant ids or domains. Same as REST website_ids / shop_ids. More filters: Extension reference.
Placement commission data (Token tier)
Opt in withcatalog.placements: ["affiliate"] and a valid API key. Matching variants include placement with commission percentage. Omit placements (or pass []) and responses are unchanged.
Fields worth saving
| Field | Why |
|---|---|
products[].id | Product id for lookup or get_product |
products[].variants[] | Per-store listings (SKUs, prices, seller) |
products[].variants[].seller.domain | Which store |
messages[] | Warnings (empty query, bad filter, etc.) |
options (Color, Size, …) are returned by get_product, not by search.
What’s next
Lookup
You already have ids or URLs
Get product
One product by id