Get ingredient sponsored products for a recipe
Fetch all sponsored products explicitly linked to the ingredients of a specific recipe. By targeting a single recipe, you can instantly resolve which branded SKUs should be natively placed when the user is viewing that specific dish. The perfect tool for precisely timed retail media placements. Use Cases: CONTEXTUAL PRODUCT PLACEMENT • User views 'Classic Tiramisu' recipe → 'Brand Y Mascarpone' appears next to ingredient list as sponsored suggestion. High conversion at peak purchase intent. RESTAURANTS — SUPPLIER PARTNERSHIPS • Restaurant shows supplier products next to recipe ingredients in digital menu. Ad revenue from suppliers. 1-CLICK 'BUY THE RECIPE' • Power the 'Add all to cart' button with sponsored SKUs configured in the backoffice. Profitable cart aligned with the recipe.
Response
IngredientSponsoredProductArray
object[]
IngredientSponsoredProductArray
IngredientSponsoredProduct
A recipe ingredient linked to a sponsored product
object
IngredientSponsoredProduct
A recipe ingredient linked to a sponsored product
recipeIngredientId
Unique identifier for this ingredient entry
recipeId
Identifier of the recipe this ingredient belongs to
name
Display name of the ingredient
quantity?
Quantity of the ingredient used
measureUnitId?
Unit of measure identifier for the quantity; resolvable via GET /definitions/measure-units
unitQuantity
Unit quantity of the sponsored product
priority
Recommendation rank of this product for the ingredient, where the lowest value is the best match and ranking starts at 1. The ranking follows the product-category priority of the matched food first; within a category, products are ranked by what you spend to cover the recipe, that is the packs needed times the full price. That spend combines both scores: formatScore times unitPriceScore, divided by 100, is the cheapest possible spend as a percentage of this product's spend. Neither score is therefore monotonic along the list on its own. Ranks may skip values, because a product that has no data in the requested language is left out of the response.
formatScore?
Format compatibility score, from 0.01 to 100: the percentage of what you buy that the recipe actually uses. 100 means the pack size matches the required quantity exactly, 50 means you buy twice what you need. Products with the same score are equally compatible in terms of format, so use priority to pick among them — except at 0.01, where the scale saturates and only tells you the pack is far too large. Null when compatibility cannot be assessed: the product weight is unknown, the ingredient quantity has no gram equivalent (such as to taste), or the association predates this field and has not been recomputed yet. Volumes are treated as 1 ml = 1 g.
unitPriceScore?
Price per kilogram score, from 0.01 to 100: the lowest price per kilogram among the products considered for this ingredient, divided by the price per kilogram of this product. 100 means this is the cheapest per kilogram, 50 means it costs twice as much per kilogram. Prices are full prices, before any discount, and volumes are treated as 1 ml = 1 g. Every product considered for the ingredient takes part in the comparison, so the one scoring 100 may not be among those returned. Null when the association predates this field and has not been recomputed yet.
productId
Identifier of the sponsored product
shopProductId?
Shop-specific identifier for the product
productName
Name of the sponsored product
brand
Brand of the sponsored product
ean?
EAN barcode of the product
format?
Packaging format of the product
netQuantityGrams?
Net quantity of the product in grams, read only from the packaging format the merchant declares (volumes count 1 ml = 1 g); null when the format does not state a weight or a volume
weightGrams?
Deprecated: use netQuantityGrams, which has the same value
imageUrl?
Image url of the product
Unauthorized
ConnectProblemDetails
object
ConnectProblemDetails
type?
title?
status?
detail?
instance?
requestId?
traceId?
Forbidden
ConnectProblemDetails
object
ConnectProblemDetails
type?
title?
status?
detail?
instance?
requestId?
traceId?
Not Acceptable
ConnectProblemDetails
object
ConnectProblemDetails
type?
title?
status?
detail?
instance?
requestId?
traceId?
Unprocessable Entity
ConnectProblemDetails
object
ConnectProblemDetails
type?
title?
status?
detail?
instance?
requestId?
traceId?
Too Many Requests
ConnectProblemDetails
object
ConnectProblemDetails
type?
title?
status?
detail?
instance?
requestId?
traceId?
Internal Server Error
ConnectProblemDetails
object
ConnectProblemDetails
type?
title?
status?
detail?
instance?
requestId?
traceId?