Skip to content

List products

View as Markdown
get /api/products

Retrieves the collection of Product resources.

Returns a paginated collection of products in the current organization, optionally filtered by channel, collection or status, and with pricing resolved against a given channel/country/time when resolveContext is set.

Headers

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

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).
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.
categorystring-Filter by the related "category", given as an IRI or as an identifier.
category[]string[]-Filter by the related "category", given as an IRI or as an identifier.
channelsstring-Filter by the related "channels", given as an IRI or as an identifier.
channels[]string[]-Filter by the related "channels", given as an IRI or as an identifier.
collectionsstring-Filter by the related "collections", given as an IRI or as an identifier.
collections[]string[]-Filter by the related "collections", given as an IRI or as an identifier.
statusstring-Product status
status[]string[]-Product status
createdAt[after]string-Product createdAt
createdAt[before]string-Product createdAt
createdAt[strictly_after]string-Product createdAt
createdAt[strictly_before]string-Product createdAt
updatedAt[after]string-Product updatedAt
updatedAt[before]string-Product updatedAt
updatedAt[strictly_after]string-Product updatedAt
updatedAt[strictly_before]string-Product updatedAt
exists[variants]boolean-Product exists[variants]
exists[category]boolean-Product exists[category]
titlestring-Filter on the translated "title" field (case-insensitive partial match, uses the Flowkiwi-Locale header).
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.
order[title]string-Order by translated field "title" (uses the Flowkiwi-Locale header)
order[createdAt]string-Product order[createdAt]
order[updatedAt]string-Product order[updatedAt]

Response

200 - Product 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[]required
Show member fields
PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
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-