Variants
Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc. Variants cannot exist on its own as they need to be attached to a product. Variants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc.
By default, ids for archived variants are not returned
Include archived variants
false
GET /v1/variants/ids HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
[
1
]
Id of variant
GET /v1/variants/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"Id": 1,
"Name": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"ProductId": 1,
"SortOrder": 1,
"VariantGroupId": 1,
"VariantGroupSortOrder": 1,
"Created": "2025-06-27T08:08:53.926Z",
"CreatedBy": "text",
"LastModified": "2025-06-27T08:08:53.926Z",
"LastModifiedBy": "text",
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"ProductStructureUid": "123e4567-e89b-12d3-a456-426614174000",
"DefiningAttributes": [
"123e4567-e89b-12d3-a456-426614174000"
],
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
Id of variant
Update model containing the updates to make on a variant. Note that properties with null values will be ignored and will not cause an update. This means you should only set properties that shall be updated on the variant
Id of product to move variant to
Indicate whether the product shall be archived or un-archived
Reference to the archive reason when archiving variant (if IsArchived is true)
Sort order of variant compared to other variants of the product
Sort order of variant compared to other variants in same variant group
Workflow state to set on the variant
PATCH /v1/variants/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 333
{
"ProductId": 1,
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"SortOrder": 1,
"VariantGroupSortOrder": 1,
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
OK
No content
POST /v1/variants/batch HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
[
{
"Id": 1,
"Name": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"ProductId": 1,
"SortOrder": 1,
"VariantGroupId": 1,
"VariantGroupSortOrder": 1,
"Created": "2025-06-27T08:08:53.926Z",
"CreatedBy": "text",
"LastModified": "2025-06-27T08:08:53.926Z",
"LastModifiedBy": "text",
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"ProductStructureUid": "123e4567-e89b-12d3-a456-426614174000",
"DefiningAttributes": [
"123e4567-e89b-12d3-a456-426614174000"
],
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
]
No more than 5000 variants can be requested at a time. If no limit is provided, the default limit of 1000 will be used. By default, archived variants are not returned
false
1000
GET /v1/variants HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"Variants": [
{
"Id": 1,
"Name": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"ProductId": 1,
"SortOrder": 1,
"VariantGroupId": 1,
"VariantGroupSortOrder": 1,
"Created": "2025-06-27T08:08:53.926Z",
"CreatedBy": "text",
"LastModified": "2025-06-27T08:08:53.926Z",
"LastModifiedBy": "text",
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"ProductStructureUid": "123e4567-e89b-12d3-a456-426614174000",
"DefiningAttributes": [
"123e4567-e89b-12d3-a456-426614174000"
],
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
],
"Total": 1,
"Remaining": 1,
"LastId": 1
}
A maximum of 5000 variants can be created in one request
Model for creating a new variant
Id of product to attach variant to
Sort order of variant compared to other variants of the product (when null, variant is placed after existing variants)
Sort order of variant compared to other variants in same variant group
Workflow state to set on the variant
POST /v1/variants HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 262
[
{
"ProductId": 1,
"SortOrder": 1,
"VariantGroupSortOrder": 1,
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
]
1
Update model for a variant
Id of variant to update
PATCH /v1/variants HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 365
[
{
"VariantId": 1,
"UpdateModel": {
"ProductId": 1,
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"SortOrder": 1,
"VariantGroupSortOrder": 1,
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
}
]
OK
No content
Alias of identifier type
GET /v1/variants/identifiers/{identifierAlias} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"ANY_ADDITIONAL_PROPERTY": 1
}
Alias of identifier type
Identifier value
GET /v1/variants/identifiers/{identifierAlias}/{identifier} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
1
Provide an identifier alias along with an array of identifiers to get the internal entity ids matching those identifiers
The alias of the identifier
Array of identifiers to return internal ids for
POST /v1/variants/batch/identifiers HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 49
{
"IdentifierAlias": "text",
"Identifiers": [
"text"
]
}
OK
{
"ANY_ADDITIONAL_PROPERTY": 1
}
Id of variant
Indicate if only uids of referenced to global list values shall be returned instead of the materialized values
false
GET /v1/variants/{id}/attributevalues HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{
"VariantId": 1,
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
No more than 5000 variants can be requested at a time.
Define which categories to fetch data for and what data to fetch
Ids of products to return
Defines which attribute values to return
If IncludeValues is Scopes, define which scopes to return values for here
If IncludeValues is Aliases, define aliases of the attributes to include values for
If IncludeValues is Uids, define uids of the attributes to include values for
Only return values for specific languages
Only return values for specific dimension segments
Indicate if only uids of referenced to global list values shall be returned instead of the materialized values
Get attribute values back in time
POST /v1/variants/batch/attributevalues HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 259
{
"VariantIds": [
1
],
"IncludeValues": 1,
"Scopes": [
"text"
],
"Aliases": [
"text"
],
"Uids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"LimitToCultureCodes": [
"text"
],
"LimitToSegments": [
"text"
],
"GlobalListValueReferencesOnly": true,
"FromTimestamp": "2025-06-27T08:08:53.926Z"
}
OK
[
{
"VariantId": 1,
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
]
#Available from v.3.5.0
Id of variant
GET /v1/variants/{id}/references HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"VariantId": 1,
"ReferencingCategories": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingProducts": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingVariantGroups": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingVariants": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingAssets": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingGlobalListValues": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
#Available from v.3.5.0 No more than 5000 values can be requested at a time.
POST /v1/variants/batch/references HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
[
{
"VariantId": 1,
"ReferencingCategories": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingProducts": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingVariantGroups": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingVariants": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingAssets": [
{
"EntityId": 1,
"AttributeUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"ReferencingGlobalListValues": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
Search model used for searching products or variants in PIM
Include archived items in result
POST /v1/variants/search HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 59
{
"IncludeArchived": true,
"QueryModel": {
"BooleanOperator": 0
}
}
OK
[
1
]
Get paged result of variants matching certain criteria. Result mapped with headers and item results
Extended search model used for searching products or variants in PIM with support for paging and sorting
Include archived items in result
POST /v1/variants/search/paged HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 148
{
"Page": 1,
"PageSize": 1,
"FieldUids": [
"text"
],
"SortByFieldUid": "text",
"SortDescending": true,
"IncludeArchived": true,
"QueryModel": {
"BooleanOperator": 0
}
}
OK
{
"TotalHits": 1,
"Page": 1,
"PageSize": 1,
"TotalPages": 1,
"ItemListHeaders": [
{
"FieldUid": "text",
"FieldName": "text",
"FieldType": "text",
"SupportsSearching": true,
"SupportsSorting": true
}
],
"ListItems": [
{
"Id": 1,
"ShownValues": [
"text"
]
}
]
}
#Available from v.3.5.0
Id of variant to get insights for
GET /v1/variants/{id}/enrichmentinsights HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
[
{
"EnrichmentInsightSetupUid": "123e4567-e89b-12d3-a456-426614174000",
"EntityId": 1,
"Completeness": 1,
"MissingData": [
{
"Type": "text",
"DataReference": "text"
}
],
"Ignored": true
}
]
#Available from v.3.5.0
POST /v1/variants/batch/enrichmentinsights HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
[
{
"EnrichmentInsightSetupUid": "123e4567-e89b-12d3-a456-426614174000",
"EntityId": 1,
"Completeness": 1,
"MissingData": [
{
"Type": "text",
"DataReference": "text"
}
],
"Ignored": true
}
]
#Available from v.3.5.0
Uid of enrichment insight to get for batch of variants
POST /v1/variants/batch/enrichmentinsights/{enrichmentInsightUid} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
1
#Available from v.3.5.0
Id of variant
Uid of enrichment insight to toggle ignore for
Indicate whether to ignore the insight for the given enrichment insight and variant
PATCH /v1/variants/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
No content
#Available from v.3.5.0
Uid of enrichment insight to toggle ignore for
Indicate whether to ignore the insight for the given enrichment insight and variants
PATCH /v1/variants/batch/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
No content
A maximum of 1000 products can be requested in one request
Request model for getting inheritedAttributes for a list of products
The product ids to get inherited attributes for
The attribute uids to get inherited attributes for
POST /v1/variants/inheritedAttributeValues HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 81
{
"ProductIds": [
1
],
"InheritedAttributes": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
OK
[
{
"ProductId": 1,
"VariantId": 1,
"InheritedAttributes": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]