catalog to search every active crawled catalog. Include catalog only when you want to restrict search to one known active crawled catalog.
How search works
When you callPOST /v1/products/search, Octogen runs the query against all active crawled catalogs by default, or one active crawled 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.
If you already have a source product and want similar items, use More Like This instead of inventing a keyword query.
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 values are case-insensitive and phrase values may contain spaces. You can also pass dynamic attribute keys directly (e.g.
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:
Each item in
items contains the following fields: