Gets variants from given companyId and catalogId using cursor pagination.
If no data is found, HttpStatus.NO_CONTENT is returned.
Catalog identifier whose variants should be listed.
Controls whether active attributes, inactive attributes, or all attributes are included in the returned variant data. Defaults to ALL.
Selects which product data layer to query. Defaults to COMBINED.
Forward pagination cursor. Returns variants after this document id; the cursor value itself is excluded. Cannot be used together with firstId.
Backward pagination cursor. Returns variants before this document id; the cursor value itself is excluded. Cannot be used together with lastId.
Maximum number of variants to return in one page. Defaults to 100; values less than 1 or greater than 100 are normalized to 100.
Filters variants modified at or after this timestamp. The value is epoch milliseconds and the lower bound is inclusive. If this is provided, toModifiedTimestamp is required. For paginated scans, capture this value once before the first page and keep it unchanged for every page.
Filters variants modified at or before this timestamp. The value is epoch milliseconds, the upper bound is inclusive, it must not be greater than the current server time, and it is required when fromModifiedTimestamp is provided. For paginated scans, capture this value once before the first page and keep it unchanged for every page.
Paginated variants found
{
"productViewPayloads": [
{
"variant_id": "V-1001",
"product_id": "P-500",
"status": {
"value": 1,
"label": "active"
},
"availability": {
"value": true,
"label": "available"
},
"catalog_id": 123,
"source_creation_time": 1783502993000,
"source_update_time": 1783503093000,
"enriched_creation_time": 1783503193000,
"enriched_update_time": 1783503293000,
"color": {
"en-GB": "Navy Blue",
"de-DE": "Marineblau"
},
"fashion_material": "leather",
"fashion_season": "summer"
},
{
"variant_id": "V-1002",
"product_id": "P-500",
"status": {
"value": 1,
"label": "active"
},
"availability": {
"value": true,
"label": "available"
},
"catalog_id": 123,
"source_creation_time": 1783503393000,
"source_update_time": 1783503493000,
"enriched_creation_time": 1783503593000,
"enriched_update_time": 1783503693000,
"size": {
"US": "M",
"EU": "38"
},
"fashion_material": "leather",
"fashion_season": "summer"
}
],
"paginationCursor": {
"lastId": "687d57eb6986be26d3f7e0b4",
"firstId": "687d57eb6986be26d3f7e0a3",
"previousPageExists": false,
"nextPageExists": true
}
}Flat variant payload based on the unified product catalog schema, where:
- predefined SOURCE attributes are documented as fields here.
- custom SOURCE attributes are added dynamically on top-level as fields.
- ENRICHED attributes are added dynamically on top-level as fields.
- SOURCE attributes have no prefix, while ENRICHED attributes have the 'fashion_' prefix.
Client-defined unique identifier of the purchasable variant.
Identifier used for grouping all variants belonging to the same product.
Groups variants that share colour or style but differ by option attributes such as size.
Catalog identifier.
SOURCE data creation timestamp in milliseconds. Present when SOURCE data is available.
SOURCE data last update timestamp in milliseconds. Present when SOURCE data is available.
ENRICHED data creation timestamp in milliseconds. Present when ENRICHED data is available.
ENRICHED data last update timestamp in milliseconds. Present when ENRICHED data is available.
Product brand name.
Current selling price keyed by ISO 3166-1 alpha-2 country code or '*' fallback.
Current selling price keyed by ISO 3166-1 alpha-2 country code or '*' fallback.
Currency keyed by the same country codes as price. Values are ISO 4217 currency codes.
Currency keyed by the same country codes as price. Values are ISO 4217 currency codes.
Size keyed by ISO 3166-1 alpha-2 country code or '*' fallback.
Size keyed by ISO 3166-1 alpha-2 country code or '*' fallback.
Localized colour keyed by BCP 47 locale or '*' fallback.
Localized colour keyed by BCP 47 locale or '*' fallback.
Manufacturer Part Number. Maximum length is 70 characters.
Global Trade Item Number. Expected length is 8-14 digits.
Material of the product.
Gender value for fashion catalogs.
Category hierarchy.
Category hierarchy.
Supported locales for this variant.
Supported locales for this variant.
Standardised article number.
Multipack quantity.
Retailer-specific collaboration values.
Retailer-specific collaboration values.
Human-readable title of the variant.
Human-readable title of the style.
Localized product title keyed by BCP 47 locale or '*' fallback.
Localized product title keyed by BCP 47 locale or '*' fallback.
Localized product description keyed by BCP 47 locale or '*' fallback.
Localized product description keyed by BCP 47 locale or '*' fallback.
List of product image URLs.
List of product image URLs.
Localized product detail page URL keyed by BCP 47 locale or '*' fallback.
Localized product detail page URL keyed by BCP 47 locale or '*' fallback.
Indicates whether the product belongs to a seasonal assortment.
Former selling price keyed by ISO 3166-1 alpha-2 country code or '*' fallback.
Former selling price keyed by ISO 3166-1 alpha-2 country code or '*' fallback.
Identifier for products sold as a set.
Additional localized or country-specific product identifier.
Additional localized or country-specific product identifier.
Additional product identifier.
Minimal age in months for children's wear.
Maximum age in months for children's wear.
Best model image URL.
Best product-only image URL.
Only set when pagination is used
No variants were found for the requested page and filters.
Pagination is missing or invalid, modification date filters are invalid, or catalog attributes are not configured.
{
"message": "Cannot specify both lastId and firstId",
"httpStatus": 400,
"errorCode": "400 Bad Request",
"timestamp": "2026-07-08T12:00:00Z"
}Catalog was not found.
{
"message": "Product feed not found for companyId: 456 and feedId: 123",
"httpStatus": 404,
"errorCode": "404 Not Found",
"timestamp": "2026-07-08T12:00:00Z"
}Unexpected error while fetching paginated variants.
{
"message": "Unexpected error while processing request",
"httpStatus": 500,
"errorCode": "500 Internal Server Error",
"timestamp": "2026-07-08T12:00:00Z"
}