Skip to content

Retrieve a product

View as Markdown
get /api/products/{id}

Retrieves a Product resource.

Returns a single product by id. Pass expand=variants to embed variants, and resolveContext[*] to populate resolvedPrice on each embedded variant for the chosen channel, country and timestamp.

Headers

NameTypeRequiredDescription
Flowkiwi-Localestring-Specifies the locale for properties that support localization. If not provided, the default locale will be used.

Path parameters

NameTypeRequiredDescription
idstringrequiredProduct 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: variants, options, optionValues, medias, category, collections, channels, metafields, metaobject. Tokens are independent; unknown values are silently ignored. optionValues only has a visible effect when combined with variants. medias and metafields apply to the product and, when combined with variants, to each variant. 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 resource

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
attributesProductAttributeValueResource[]-Attribute values for the attribute definitions attached to the product's category (or one of its ancestors). Each item references a definition (IRI) plus either an option (for list definitions) or a value (for string definitions).
Show attributes fields
PropertyTypeRequiredDescription
codestring | null-The code of the attribute definition (read-only, mirrors definition.code).
definitionstring | nullrequiredThe attribute definition this value is for. Requires the categories:read scope. Returned null when the scope is missing.
optionstring | null-The selected option, for attribute definitions of type list. Must belong to definition. Requires the categories:read scope. Returned null when the scope is missing.
type"string" | "list" | null-The type of the attribute definition (read-only, mirrors definition.type).
valuestring | null-This property supports translations.

The free-text value, for attribute definitions of type string.
categorystring | Category | null-The category to which this product belongs. Serialized as IRI string by default; pass ?expand=category to embed the full CategoryResource. Requires the categories:read scope. Returned null when the scope is missing.
channelsarray-A list of Channel, each one representing a channel associated with the product. Serialized as IRI strings by default; pass ?expand=channels to embed full ChannelResource objects. Requires the channels:read scope. Returned empty when the scope is missing.
collectionsarray-A list of Collection, each one representing a collection associated with the product. Serialized as IRI strings by default; pass ?expand=collections to embed full CollectionResource objects. Requires the collections:read scope. Returned empty when the scope is missing.
createdAtstring-The date and time when the resource was created (ISO 8601 format).
descriptionstring | null-This property supports translations.

A description of the product.
idstring-Stable UUID of the product.
mediasarray-A list of Media, ordered by position. Only media of type "image" can be associated with a product. 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 product. 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.
optionsarray-A list of Product Option, each one representing an option associated with the product. Serialized as IRI strings by default; pass ?expand=options to embed the full Product Option objects. Requires the products:read scope. Returned empty when the scope is missing.
status"/api/statuses/DRAFT" | "/api/statuses/ACTIVE" | "/api/statuses/ARCHIVED"-The status of the product.
tagsstring | null-A string of comma-separated tags.
titlestring | null-This property supports translations.

The name of the product.
updatedAtstring-The date and time when the resource was last modified (ISO 8601 format).
variantsarray-A list of Variant, each one representing a variant associated with the product. Serialized as IRI strings by default; pass ?expand=variants to embed the full Variant objects (including resolvedPrice, lowestPriceLast30Days, medias, and metafields when composed with ?expand=metafields). Requires the products:read scope. Returned empty when the scope is missing.

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-

404 - Not found

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
codestring-Stable identifier of the error in the error code catalogue (see /api/error-codes). Present on catalogued errors only.
descriptionstring | null-
detailstring | null-A human-readable explanation specific to this occurrence of the problem.
instancestring | null-A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
messagestring-End-user message localized in the request locale, with this occurrence's values substituted. Present on catalogued errors only.
slugstring-Stable, readable key of the error in the error code catalogue. Present on catalogued errors only.
statusinteger | null-
titlestring | null-A short, human-readable summary of the problem. For a catalogued error it repeats the slug.
typestring-A URI reference that identifies the problem type. For a catalogued error it is the error code resource, /api/error-codes/{code}.