catalog to search every catalog your API key can access. Include catalog only when you want to restrict search to one granted catalog.
How search works
When you callPOST /v1/products/search, Octogen runs the query against all granted catalogs by default, or one granted catalog when catalog is provided. The response returns a page of matching items and an opaque nextCursor you use to fetch subsequent pages. Each item in items is a lightweight product record — enough to render a card or feed a ranking model — while the full canonical record is available via product lookup.
Basic keyword search
Pass a free-text string asq to search by keyword. Omit q entirely to browse without any keyword filter.
Faceted filtering
Facets let you filter by structured product attributes. Each facet is an object with aname and a values array. You can apply multiple facets in a single request — the filters are combined with AND logic, so each additional facet narrows the result set.
The FacetName enum defines the supported facet keys:
| Facet name | Description |
|---|---|
brand_name | Canonical brand name (e.g. "Warren Lotas") |
brand_slug | URL-safe brand identifier (e.g. "warren-lotas") |
product_type | Product category type (e.g. "hoodie", "sneaker") |
gender | male, female, or unisex |
age_groups | infant, toddler, kids, or adult |
color | Specific color label (e.g. "black", "vintage white") |
color_family | Broad color family: Black, Blue, Green, Gray, Pink, Purple, Red, Orange, Brown, Yellow, White |
category_path.depth_0 – depth_6 | Hierarchical category path at a given depth |
fit, or its fully-qualified form attribute_facets.fit).
Price range filtering
Useprice_min and price_max to restrict results to a price range. Both bounds are inclusive. You can use either bound on its own.
Combined example: keyword, facets, and price range
You can combineq, facets, and price filters in a single request. All active filters are applied together.
Understanding results
Each search response contains two top-level fields:| Field | Type | Description |
|---|---|---|
items | array | List of product records matching the query. |
nextCursor | string | null | Pagination cursor. Non-null means more pages are available. See Pagination. |
items contains the following fields:
| Field | Type | Description |
|---|---|---|
uuid | string | Stable unique identifier for the product. |
productUrl | string | Canonical URL on the retailer’s site. |
title | string | null | Product display name. |
brand | object | null | Brand with name and optional slug, url, description. |
currentPrice | number | null | Current selling price. |
originalPrice | number | null | Pre-discount price, if available. |
imageUrl | string | null | Primary product image URL. |
images | string[] | All product image URLs. |
rating | object | null | Average rating and review count, if available. |
updatedAt | string | null | ISO 8601 timestamp of the last catalog update. |