GET/v1/tenants/{tenantId}/ecom_stores/{eComStoreId}/products/search

List and search the store's products Experimental

Returns the store's sellable products -- published in the assortment, released and priced -- as summaries with names, main image, prices and availability. Filter by dimensions, search by text, sort, and page with the returned cursor. Without a query the default sort is newest; with a query it is relevance. A cursor is only valid for the filters and sort it was issued for.

Parameters

tenantIdrequired
eComStoreIdrequired
queryoptional

Free text matched against number, name, brand, groups, sku numbers and barcodes. Comma separates alternatives, space requires all words.

productIdoptional

Only these products, by id (repeatable). A lookup: use it to re-read known products rather than searching for them.

brandIdoptional

Repeatable

productCategoryIdoptional

Repeatable

mainProductGroupIdoptional

Repeatable

subProductGroupIdoptional

Repeatable

inStockoptional

true lists only products with a sku available for ecom at its resolved fulfillment warehouse

sortoptional

relevance, newest, name, price_asc or price_desc, optionally prefixed by in_stock to list available products first, e.g. in_stock,name

limitoptional

Page size, default 24, max 100

  • Format: int32
cursoroptional

nextCursor or previousCursor from a page already served

Responses

200Response
application/json
currencyIsoCoderequired

ISO 4217 currency of every price on this page

Example"NOK"
itemsrequired
Show item fields

A product as listed in the storefront catalog

brandrequired
Show child fields
idrequired

Usable as a filter value

namerequired

Dimension name by language code, as the product_schema endpoints return it

Show child fields
valuerequired
Show dictionary values

Each dictionary key maps to .

idrequired

Fetch details with GET /products/{productId}

inStockrequired

Whether any published sku of the product is available from its resolved fulfillment warehouse

Exampletrue
mainImageUrloptional

Delivery URL of the product's main image

mainProductGrouprequired
Show child fields
idrequired

Usable as a filter value

namerequired

Dimension name by language code, as the product_schema endpoints return it

Show child fields
valuerequired
Show dictionary values

Each dictionary key maps to .

newFromoptional

First day the product is marketed as new

  • Format: date
Example"2026-01-14"
newTooptional

Last day the product is marketed as new

  • Format: date
Example"2026-01-14"
offersrequired

Basket offers such as 3 for 2 that cover the product; prices above do not include them

Show item fields

A basket offer that covers the product, such as 3 for 2. It has no unit price of its own; the cart applies it once the basket qualifies.

campaignIdrequired
campaignTyperequired

Kind of offer; currently only THREE_FOR_TWO

Allowed values"NORMAL""THREE_FOR_TWO"
Example"THREE_FOR_TWO"
codeoptional
Example"TFT-SUMMER"
loyaltyProgramMembershipRequiredrequired

Whether only loyalty members get the offer

Examplefalse
namerequired
pricerequired

Gross prices in the store's currency: the ordinary price and, where a campaign covers a sku, the lowest campaign and loyalty member prices

Show child fields
campaignPriceoptional
  • Format: BigDecimal
  • Pattern: ^-?\d+(\.\d{1,2})?$
Example"249.00"
loyaltyMemberPriceoptional
  • Format: BigDecimal
  • Pattern: ^-?\d+(\.\d{1,2})?$
Example"239.00"
pricerequired

Regular price

  • Format: BigDecimal
  • Pattern: ^-?\d+(\.\d{1,2})?$
Example"299.00"
productCategoryrequired
Show child fields
idrequired

Usable as a filter value

namerequired

Dimension name by language code, as the product_schema endpoints return it

Show child fields
valuerequired
Show dictionary values

Each dictionary key maps to .

productNamerequired

Product name by language code, as GET /products/{productId} returns it

Show child fields
valuerequired
Show dictionary values

Each dictionary key maps to .

productNumberrequired
Example"100234"
subProductGrouprequired
Show child fields
idrequired

Usable as a filter value

namerequired

Dimension name by language code, as the product_schema endpoints return it

Show child fields
valuerequired
Show dictionary values

Each dictionary key maps to .

nextCursoroptional

Pass as cursor to get the next page; null on the last page

previousCursoroptional

Pass as cursor to get the previous page; null on the first page

400Invalid filter ID, sort, limit or cursor

Invalid filter ID, sort, limit or cursor

application/json
errorrequired

Stable error code

Example"INVALID_REQUEST"
messagerequired

Human-readable error message

Example"Invalid customer ID format"
resolutionrequired

Suggested next action

Example"Correct the customer ID and retry the request"
401Response
application/json
errorrequired

Stable error code

Example"INVALID_REQUEST"
messagerequired

Human-readable error message

Example"Invalid customer ID format"
resolutionrequired

Suggested next action

Example"Correct the customer ID and retry the request"
403Response
application/json
errorrequired

Stable error code

Example"INVALID_REQUEST"
messagerequired

Human-readable error message

Example"Invalid customer ID format"
resolutionrequired

Suggested next action

Example"Correct the customer ID and retry the request"