Returns a single variant of a product by id. Pass resolveContext[*] to populate resolvedPrice for the chosen channel, country and timestamp.
Path parameters
Name
Type
Required
Description
productId
string
required
ProductResource identifier
variantId
string
required
Product Variant identifier
Query parameters
Name
Type
Required
Description
resolveContext[channel]
string
-
Channel IRI used to resolve the variant price. Required together with resolveContext[country].
resolveContext[country]
string
-
Country IRI used to resolve the variant price. Required together with resolveContext[channel].
resolveContext[at]
string
-
ISO 8601 UTC timestamp at which the price is resolved. Defaults to the current time when omitted.
expand
string
-
Comma-separated list of relations to embed as full objects instead of IRI strings. Supported values: optionValues, medias, metafields, metaobject, product. Tokens are independent; unknown values are silently ignored. metaobject only has a visible effect when combined with metafields (it embeds the referenced metaobject on each metafield of type metaobject_reference or list__metaobject_reference).
properties[]
string[]
-
Allows you to reduce the response to contain only the properties you need. If your desired property is nested, you can address it using nested arrays. Example: properties[]={propertyName}&properties[]={anotherPropertyName}&properties[{nestedPropertyParent}][]={nestedProperty}
Response
200 - Product Variant resource
Property
Type
Required
Description
@context
string | object
-
@id
string
required
@type
string
required
barcode
string
required
The barcode, unique UPC, or ISBN number for the product.
createdAt
string
-
The date and time when the resource was created (ISO 8601 format).
id
string
-
The resource's unique identifier (UUID).
measurement
EmbeddedMeasurementResource | null
-
The measurement used to compute per-unit prices for the variant.
Show measurement fields
Property
Type
Required
Description
measuredType
"volume" | "weight" | "length" | "area" | "unit"
required
The kind of physical quantity measured (volume, weight, length, area or unit).
The unit used as the basis for per-unit price calculations.
referenceValue
integer
required
The number of reference units used for per-unit price calculations.
medias
array
-
A list of Media, ordered by position. Only media of type "image" can be associated with a variant. Returned as IRI strings by default; pass ?expand=medias to embed full Media objects. Requires the medias:read scope. Returned empty when the scope is missing.
metafields
array
-
Metafields owned by this variant. Serialized as IRI strings by default; pass ?expand=metafields to embed full MetafieldResource objects. Requires the metafields:read scope. Returned empty when the scope is missing.
optionValues
array
-
A list of Option Value, each one representing an option value associated with the variant. Requires the products:read scope. Returned empty when the scope is missing.
product
string | Product | null
required
The product resource it belongs to. Requires the products:read scope. Returned null when the scope is missing.
resolvedPrice
ResolvedPriceResource | null
-
The price resolved for the current resolveContext (country, channel and instant). Null unless resolveContext[country], resolveContext[channel] and resolveContext[at] are all provided.
Show resolvedPrice fields
Property
Type
Required
Description
at
string
-
The instant used to resolve the price (defaults to request time).
channelId
string
-
The Channel used to resolve the price.
countryId
string
-
The Country used to resolve the price.
currency
string
-
ISO 4217 currency code (mirrors price.currency for convenience).
discountPrice
EmbeddedMoneyResource | null
-
The discount price including tax, if any.
Show discountPrice fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
discountTaxExcludedPrice
EmbeddedMoneyResource | null
-
The discount price excluding tax, if any.
Show discountTaxExcludedPrice fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
lowestPriceLast30Days
EmbeddedMoneyResource | null
-
Lowest price including tax observed on the rolling window [at - 30 days, at] for the same (variant, channel, country). Falls back to the current price when no prior data exists.
Show lowestPriceLast30Days fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
lowestPriceLast30DaysAt
string | null
-
The instant at which lowestPriceLast30Days was active. Falls back to at when no prior data exists.
price
EmbeddedMoneyResource
-
The price including tax.
Show price fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
saleOfferId
string
-
The SaleOffer that was resolved.
taxExcludedPrice
EmbeddedMoneyResource
-
The price excluding tax.
Show taxExcludedPrice fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
taxRate
number
-
Tax rate applied, in percent (e.g. 20.0).
sku
string
required
A unique identifier for the product variant.
updatedAt
string
-
The date and time when the resource was last modified (ISO 8601 format).
Property
Type
Required
Description
barcode
string
required
The barcode, unique UPC, or ISBN number for the product.
createdAt
string
-
The date and time when the resource was created (ISO 8601 format).
id
string
-
The resource's unique identifier (UUID).
measurement
EmbeddedMeasurementResource | null
-
The measurement used to compute per-unit prices for the variant.
Show measurement fields
Property
Type
Required
Description
measuredType
"volume" | "weight" | "length" | "area" | "unit"
required
The kind of physical quantity measured (volume, weight, length, area or unit).
The unit used as the basis for per-unit price calculations.
referenceValue
integer
required
The number of reference units used for per-unit price calculations.
medias
array
-
A list of Media, ordered by position. Only media of type "image" can be associated with a variant. Returned as IRI strings by default; pass ?expand=medias to embed full Media objects. Requires the medias:read scope. Returned empty when the scope is missing.
metafields
array
-
Metafields owned by this variant. Serialized as IRI strings by default; pass ?expand=metafields to embed full MetafieldResource objects. Requires the metafields:read scope. Returned empty when the scope is missing.
optionValues
array
-
A list of Option Value, each one representing an option value associated with the variant. Requires the products:read scope. Returned empty when the scope is missing.
product
string | Product | null
required
The product resource it belongs to. Requires the products:read scope. Returned null when the scope is missing.
resolvedPrice
ResolvedPriceResource | null
-
The price resolved for the current resolveContext (country, channel and instant). Null unless resolveContext[country], resolveContext[channel] and resolveContext[at] are all provided.
Show resolvedPrice fields
Property
Type
Required
Description
at
string
-
The instant used to resolve the price (defaults to request time).
channelId
string
-
The Channel used to resolve the price.
countryId
string
-
The Country used to resolve the price.
currency
string
-
ISO 4217 currency code (mirrors price.currency for convenience).
discountPrice
EmbeddedMoneyResource | null
-
The discount price including tax, if any.
Show discountPrice fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
discountTaxExcludedPrice
EmbeddedMoneyResource | null
-
The discount price excluding tax, if any.
Show discountTaxExcludedPrice fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
lowestPriceLast30Days
EmbeddedMoneyResource | null
-
Lowest price including tax observed on the rolling window [at - 30 days, at] for the same (variant, channel, country). Falls back to the current price when no prior data exists.
Show lowestPriceLast30Days fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
lowestPriceLast30DaysAt
string | null
-
The instant at which lowestPriceLast30Days was active. Falls back to at when no prior data exists.
price
EmbeddedMoneyResource
-
The price including tax.
Show price fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
saleOfferId
string
-
The SaleOffer that was resolved.
taxExcludedPrice
EmbeddedMoneyResource
-
The price excluding tax.
Show taxExcludedPrice fields
Property
Type
Required
Description
amount
string
required
The monetary amount, as a decimal string.
currency
string
required
The ISO 4217 currency code (e.g. EUR).
taxRate
number
-
Tax rate applied, in percent (e.g. 20.0).
sku
string
required
A unique identifier for the product variant.
updatedAt
string
-
The date and time when the resource was last modified (ISO 8601 format).
Errors
403 - Access denied. The caller is missing one or more permissions required for this operation.
Content-Type:application/problem+json
Property
Type
Required
Description
@context
string | object
-
@id
string
required
@type
string
required
detail
string
-
missingPermissions
string[]
-
Permissions that the caller is missing for this operation. Present only when the 403 is caused by a denied permission.
status
integer
-
title
string
-
type
string
-
404 - Not found
Property
Type
Required
Description
@context
string | object
-
@id
string
required
@type
string
required
code
string
-
Stable identifier of the error in the error code catalogue (see /api/error-codes). Present on catalogued errors only.
description
string | null
-
detail
string | null
-
A human-readable explanation specific to this occurrence of the problem.
instance
string | null
-
A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
message
string
-
End-user message localized in the request locale, with this occurrence's values substituted. Present on catalogued errors only.
slug
string
-
Stable, readable key of the error in the error code catalogue. Present on catalogued errors only.
status
integer | null
-
title
string | null
-
A short, human-readable summary of the problem. For a catalogued error it repeats the slug.
type
string
-
A URI reference that identifies the problem type. For a catalogued error it is the error code resource, /api/error-codes/{code}.
Property
Type
Required
Description
code
string
-
Stable identifier of the error in the error code catalogue (see /api/error-codes). Present on catalogued errors only.
detail
string | null
-
A human-readable explanation specific to this occurrence of the problem.
instance
string | null
-
A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
message
string
-
End-user message localized in the request locale, with this occurrence's values substituted. Present on catalogued errors only.
slug
string
-
Stable, readable key of the error in the error code catalogue. Present on catalogued errors only.
status
integer | null
-
title
string | null
-
A short, human-readable summary of the problem. For a catalogued error it repeats the slug.
type
string
-
A URI reference that identifies the problem type. For a catalogued error it is the error code resource, /api/error-codes/{code}.