GET/v1/tenants/{tenantId}/ecom_stores/{eComStoreId}/products/frequently_bought_together
List products frequently bought together with given products Experimental
Suggests up to 6 products that customers often buy on the same order as the given products, best match first. Pass one product for a product page, or every product in a cart. The given products themselves are left out. Every suggestion is sellable and in stock, as /products/search with inStock=true would list it. The list is empty when nothing qualifies.
Parameters
tenantIdrequiredeComStoreIdrequiredproductIdrequiredProducts to suggest for, by id (repeatable, 1 to 50)
Responses
application/jsoncurrencyIsoCoderequiredISO 4217 currency of every price in the list
Example"NOK"itemsrequiredBest match first
Show item fields
A product as listed in the storefront catalog
brandrequiredShow child fields
idrequiredUsable as a filter value
namerequiredDimension name by language code, as the product_schema endpoints return it
Show child fields
valuerequiredShow dictionary values
Each dictionary key maps to .
idrequiredFetch details with GET /products/{productId}
inStockrequiredWhether any published sku of the product is available from its resolved fulfillment warehouse
ExampletruemainImageUrloptionalDelivery URL of the product's main image
mainProductGrouprequiredShow child fields
idrequiredUsable as a filter value
namerequiredDimension name by language code, as the product_schema endpoints return it
Show child fields
valuerequiredShow dictionary values
Each dictionary key maps to .
newFromoptionalFirst day the product is marketed as new
- Format: date
Example"2026-01-14"newTooptionalLast day the product is marketed as new
- Format: date
Example"2026-01-14"offersrequiredBasket 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.
campaignIdrequiredcampaignTyperequiredKind of offer; currently only THREE_FOR_TWO
Allowed values"NORMAL""THREE_FOR_TWO"Example"THREE_FOR_TWO"codeoptional- Example
"TFT-SUMMER" loyaltyProgramMembershipRequiredrequiredWhether only loyalty members get the offer
Examplefalsenamerequired
pricerequiredGross 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"pricerequiredRegular price
- Format: BigDecimal
- Pattern: ^-?\d+(\.\d{1,2})?$
Example"299.00"
productCategoryrequiredShow child fields
idrequiredUsable as a filter value
namerequiredDimension name by language code, as the product_schema endpoints return it
Show child fields
valuerequiredShow dictionary values
Each dictionary key maps to .
productNamerequiredProduct name by language code, as GET /products/{productId} returns it
Show child fields
valuerequiredShow dictionary values
Each dictionary key maps to .
productNumberrequired- Example
"100234" subProductGrouprequiredShow child fields
idrequiredUsable as a filter value
namerequiredDimension name by language code, as the product_schema endpoints return it
Show child fields
valuerequiredShow dictionary values
Each dictionary key maps to .
400productId missing, not a UUID, or given more than 50 times
productId missing, not a UUID, or given more than 50 times
application/jsonerrorrequiredStable error code
Example"INVALID_REQUEST"messagerequiredHuman-readable error message
Example"Invalid customer ID format"resolutionrequiredSuggested next action
Example"Correct the customer ID and retry the request"
401Response
application/jsonerrorrequiredStable error code
Example"INVALID_REQUEST"messagerequiredHuman-readable error message
Example"Invalid customer ID format"resolutionrequiredSuggested next action
Example"Correct the customer ID and retry the request"
403Response
application/jsonerrorrequiredStable error code
Example"INVALID_REQUEST"messagerequiredHuman-readable error message
Example"Invalid customer ID format"resolutionrequiredSuggested next action
Example"Correct the customer ID and retry the request"