VariantGroups
Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants. The data model for variant groups are described by product structures.
By default, ids for archived variant groups are not returned
Include archived variant groups
false
GET /v1/variantgroups/ids HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
[
1
]
Id of variant group to return
GET /v1/variantgroups/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"Id": 1,
"Name": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"Created": "2025-06-27T08:07:22.103Z",
"CreatedBy": "text",
"LastModified": "2025-06-27T08:07:22.103Z",
"LastModifiedBy": "text",
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"ProductId": 1,
"SortOrder": 1,
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
Id of variant group
Update model containing the updates to make on a variant group. 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 group
Indicate whether the variant group shall be archived or un-archived
Reference to the archive reason when archiving variant group (if IsArchived is true)
Workflow state to set on the variant group
PATCH /v1/variantgroups/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 354
{
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"Classifications": [
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 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/variantgroups/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"
},
"Created": "2025-06-27T08:07:22.103Z",
"CreatedBy": "text",
"LastModified": "2025-06-27T08:07:22.103Z",
"LastModifiedBy": "text",
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"ProductId": 1,
"SortOrder": 1,
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
]
No more than 5000 variant groups can be requested at a time. If no limit is provided, the default limit of 1000 will be used. By default, archived variant groups are not returned
Include archived variant groups
false
Number of variant groups to return
1000
Only return variant groups with id larger than this value
GET /v1/variantgroups HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"VariantGroups": [
{
"Id": 1,
"Name": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"Created": "2025-06-27T08:07:22.103Z",
"CreatedBy": "text",
"LastModified": "2025-06-27T08:07:22.103Z",
"LastModifiedBy": "text",
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"ProductId": 1,
"SortOrder": 1,
"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 variant groups can be created in one request
Model used to create a new variant group
Product to associate variant group to
Workflow state to set on the variant group
POST /v1/variantgroups HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 297
[
{
"ProductId": 1,
"Classifications": [
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 1
}
],
"WorkflowStateUid": "123e4567-e89b-12d3-a456-426614174000",
"BusinessUnits": [
{
"AccessPolicy": "text",
"BusinessUnitUid": "123e4567-e89b-12d3-a456-426614174000"
}
],
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
]
OK
[
1
]
Update model for a variant group
Id of variant group to update
PATCH /v1/variantgroups HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 391
[
{
"VariantGroupId": 1,
"UpdateModel": {
"IsArchived": true,
"ArchiveReason": "123e4567-e89b-12d3-a456-426614174000",
"Classifications": [
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 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/variantgroups/identifiers/{identifierAlias} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"ANY_ADDITIONAL_PROPERTY": 1
}
Alias of identifier type
Identifier value
GET /v1/variantgroups/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/variantgroups/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 group
Indicate if only uids of referenced to global list values shall be returned instead of the materialized values
false
GET /v1/variantgroups/{id}/attributevalues HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{
"VariantGroupId": 1,
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
No more than 5000 variant groups can be requested at a time.
Define which categories to fetch data for and what data to fetch
Ids of variant groups 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/variantgroups/batch/attributevalues HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 264
{
"VariantGroupIds": [
1
],
"IncludeValues": 1,
"Scopes": [
"text"
],
"Aliases": [
"text"
],
"Uids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"LimitToCultureCodes": [
"text"
],
"LimitToSegments": [
"text"
],
"GlobalListValueReferencesOnly": true,
"FromTimestamp": "2025-06-27T08:07:22.103Z"
}
OK
{
"VariantGroupId": 1,
"Values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
Id of variant group
GET /v1/variantgroups/{id}/classifications HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
[
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 1
}
]
Id of variant group
Holds information on variant group placement in categories
Id of category the variant group is placed in
A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null. When creating or updating classifications of variant groups through API this can be set to any value. Thus, classifications made from the API can be distinguished from those made directly in the UI
Sort order of the variant group in this category
POST /v1/variantgroups/{id}/classifications HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 56
[
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 1
}
]
OK
No content
Id of variant group
DELETE /v1/variantgroups/{id}/classifications HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
No content
POST /v1/variantgroups/batch/classifications HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
{
"ANY_ADDITIONAL_PROPERTY": [
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 1
}
]
}
POST /v1/variantgroups/classifications HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 84
{
"ANY_ADDITIONAL_PROPERTY": [
{
"CategoryId": 1,
"OwnerReference": "text",
"SortOrder": 1
}
]
}
OK
No content
DELETE /v1/variantgroups/classifications HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 31
{
"ANY_ADDITIONAL_PROPERTY": [
1
]
}
OK
No content
Id of variant group
Return ids of archived variants as well
false
GET /v1/variantgroups/{id}/variants HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
[
1
]
Return ids of archived variants as well
false
POST /v1/variantgroups/batch/variants HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
{
"ANY_ADDITIONAL_PROPERTY": [
1
]
}
Id of variant group
GET /v1/variantgroups/{id}/references HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
{
"VariantGroupId": 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"
]
}
No more than 5000 values can be requested at a time.
POST /v1/variantgroups/batch/references HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 3
[
1
]
OK
[
{
"VariantGroupId": 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/variantgroups/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 variant groups 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/variantgroups/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"
]
}
]
}
Id of variant group to get insights for
GET /v1/variantgroups/{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
}
]
POST /v1/variantgroups/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
}
]
Uid of enrichment insight to get for batch of variant groups
POST /v1/variantgroups/batch/enrichmentinsights/{enrichmentInsightUid} 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
}
]
Id of variant group
Uid of enrichment insight to toggle ignore for
Indicate whether to ignore the insight for the given enrichment insight and variant groups
PATCH /v1/variantgroups/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
OK
No content
Uid of enrichment insight to toggle ignore for
Indicate whether to ignore the insight for the given enrichment insight and variant groups
PATCH /v1/variantgroups/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