Skip to content

List variants

View as Markdown
get /api/products/{productId}/variants

Retrieves the collection of Product Variant resources.

Returns the paginated collection of variants belonging to a product. When resolveContext is set, each variant’s resolvedPrice is computed for the given channel, country and timestamp.

Path parameters

NameTypeRequiredDescription
productIdstringrequiredProductResource identifier

Query parameters

NameTypeRequiredDescription
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.
expandstring-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).
pageinteger-The collection page number
itemsPerPageinteger-The number of items per page
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}
id[]string[]-Only the items with one of these ids, each a UUID or the item IRI.
createdAt[after]string-Product Variant createdAt
createdAt[before]string-Product Variant createdAt
createdAt[strictly_after]string-Product Variant createdAt
createdAt[strictly_before]string-Product Variant createdAt
updatedAt[after]string-Product Variant updatedAt
updatedAt[before]string-Product Variant updatedAt
updatedAt[strictly_after]string-Product Variant updatedAt
updatedAt[strictly_before]string-Product Variant updatedAt
skustring-Product Variant sku
sku[]string[]-Product Variant sku
barcodestring-Product Variant barcode
barcode[]string[]-Product Variant barcode
metafieldobject-Filter owners by metafield value. Each key is a namespace.key pair from a metafield definition of this owner type; pairs are combined with AND. Scalar types match exactly on the stored string; list types match when the stored array contains the requested value. An unknown namespace.key returns an empty collection. Example: ?metafield[specs.material]=leather.
searchstring-Free-text search across: sku, barcode, product.title (case-insensitive, partial match)
order[sku]string-Product Variant order[sku]
order[barcode]string-Product Variant order[barcode]
order[createdAt]string-Product Variant order[createdAt]
order[updatedAt]string-Product Variant order[updatedAt]

Response

200 - Product Variant collection

PropertyTypeRequiredDescription
searchobject-
Show search fields
PropertyTypeRequiredDescription
@typestring-
mappingobject[]-
Show mapping fields
PropertyTypeRequiredDescription
@typestring-
propertystring | null-
requiredboolean-
variablestring-
templatestring-
variableRepresentationstring-
totalItemsinteger-
viewobject-
Show view fields
PropertyTypeRequiredDescription
@idstring-
@typestring-
firststring | null-
laststring | null-
nextstring | null-
previousstring | null-
memberProduct.Variant[]required
Show member fields
PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
barcodestringrequiredThe barcode, unique UPC, or ISBN number for the product.
createdAtstring-The date and time when the resource was created (ISO 8601 format).
idstring-The resource's unique identifier (UUID).
measurementEmbeddedMeasurementResource | null-The measurement used to compute per-unit prices for the variant.
Show measurement fields
PropertyTypeRequiredDescription
measuredType"volume" | "weight" | "length" | "area" | "unit"requiredThe kind of physical quantity measured (volume, weight, length, area or unit).
quantityUnit"ml" | "cl" | "l" | "mg" | "g" | "kg" | "mm" | "cm" | "m" | "m2" | "unit"requiredThe unit the variant's quantity is expressed in.
quantityValueintegerrequiredThe variant's quantity, expressed in the quantity unit.
referenceUnit"ml" | "cl" | "l" | "mg" | "g" | "kg" | "mm" | "cm" | "m" | "m2" | "unit"requiredThe unit used as the basis for per-unit price calculations.
referenceValueintegerrequiredThe number of reference units used for per-unit price calculations.
mediasarray-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.
metafieldsarray-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.
optionValuesarray-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.
productstring | Product | nullrequiredThe product resource it belongs to. Requires the products:read scope. Returned null when the scope is missing.
resolvedPriceResolvedPriceResource | 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
PropertyTypeRequiredDescription
atstring-The instant used to resolve the price (defaults to request time).
channelIdstring-The Channel used to resolve the price.
countryIdstring-The Country used to resolve the price.
currencystring-ISO 4217 currency code (mirrors price.currency for convenience).
discountPriceEmbeddedMoneyResource | null-The discount price including tax, if any.
discountTaxExcludedPriceEmbeddedMoneyResource | null-The discount price excluding tax, if any.
lowestPriceLast30DaysEmbeddedMoneyResource | 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.
lowestPriceLast30DaysAtstring | null-The instant at which lowestPriceLast30Days was active. Falls back to at when no prior data exists.
priceEmbeddedMoneyResource-The price including tax.
saleOfferIdstring-The SaleOffer that was resolved.
taxExcludedPriceEmbeddedMoneyResource-The price excluding tax.
taxRatenumber-Tax rate applied, in percent (e.g. 20.0).
skustringrequiredA unique identifier for the product variant.
updatedAtstring-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

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
detailstring-
missingPermissionsstring[]-Permissions that the caller is missing for this operation. Present only when the 403 is caused by a denied permission.
statusinteger-
titlestring-
typestring-