Documentation Index
Fetch the complete documentation index at: https://www.octogen.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
POST /products/search lets you search and browse products within a single catalog your organization has been granted access to. You can combine a free-text query (q) with structured facet filters, price range bounds, and a pagination cursor. The response returns a page of MerchantProductListItem objects and an opaque nextCursor for advancing through results.
Request
Body parameters
Key of the catalog to search. Must be a catalog currently granted to your organization. Retrieve available keys from
GET /catalogs. Cross-catalog search is not supported — issue separate requests for each catalog.Free-text keyword query. Omit or set to
null to browse the catalog without keyword filtering. Can be combined with facets and price filters.Array of structured facet filters. Each facet has a See Facet names below for the full list of supported names.
name and a values array. Multiple facets are ANDed; multiple values within a facet are ORed.Inclusive minimum price filter. Only products with
currentPrice >= price_min are returned.Inclusive maximum price filter. Only products with
currentPrice <= price_max are returned.Opaque pagination cursor from a previous response’s
nextCursor field. Pass this value — unmodified — along with the same filters to retrieve the next page. Omit on the first request.Number of products to return per page. Accepted range: 1–100. Defaults to 50.
Example
Response
The current page of product results. See the Product model for the full field reference.
Opaque cursor for the next page of results. Pass as
cursor on your next request with the same filters. null when you have reached the last page.Example response
Facet names
Use these values for thename field in each facet object. Facet values should be lowercase; phrase values may contain spaces.
| Facet name | Description |
|---|---|
brand_name | Canonical brand display name. |
brand_slug | URL-safe brand identifier. |
product_type | Product type classification (e.g. "hoodie", "sneaker"). |
gender | Target gender: male, female, or unisex. |
age_groups | Target age group: infant, toddler, kids, or adult. |
color | Specific color label as indexed from the merchant. |
color_family | Normalized color family: Black, Blue, Brown, Gray, Green, Orange, Pink, Purple, Red, White, Yellow. |
category_path.depth_0 | Top-level category. |
category_path.depth_1 | Second-level category. |
category_path.depth_2 | Third-level category. |
category_path.depth_3 | Fourth-level category. |
category_path.depth_4 | Fifth-level category. |
category_path.depth_5 | Sixth-level category. |
category_path.depth_6 | Seventh-level category. |
fit) or its fully qualified form (e.g. attribute_facets.fit).
Pagination
For a detailed walkthrough of cursor-based pagination, see Pagination guide.
cursor value from the previous response:
- Send your initial search request with the desired filters and an optional
limit. - If
nextCursoris non-null in the response, send a new request withcursorset to that value and all other fields unchanged. - Repeat until
nextCursorisnull.