# Products
Products are the central element of the system. Product entities contain attribute data, classifications in categories and variants. The data model for products are described by product structures.
GET /products Get basic models for products
No more than 5000 products can be requested at a time. If no limit is provided, the default limit of 1000 will be used. By default, archived products are not returned
{
"Products": [
{
"Id": 18,
"Name": {
"en-GB": "Mascot work pants",
"da-DK": "Mascot arbejdsbukser"
},
"Created": "2025-05-19T15:17:54.6472492+02:00",
"CreatedBy": "Struct",
"LastModified": "2025-05-19T15:17:54.6472492+02:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "74964932-36b3-4542-9274-8f2fa77b5d3a",
"IsArchived": false,
"ProductStructureUid": "f87552f6-1bce-489f-bfd1-3c3c1f8a01c5"
},
{
"Id": 19,
"Name": {
"en-GB": "Apple Iphone",
"da-DK": "Apple Iphone"
},
"Created": "2025-02-08T14:17:54.6472492+01:00",
"CreatedBy": "Struct",
"LastModified": "2024-12-20T14:17:54.6472492+01:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "74964932-36b3-4542-9274-8f2fa77b5d3a",
"IsArchived": false,
"ProductStructureUid": "f87552f6-1bce-489f-bfd1-3c3c1f8a01c5"
},
{
"Id": 20,
"Name": {
"en-GB": "Samsung 8K series TV",
"da-DK": "Samsung 8K serie"
},
"Created": "2024-11-25T14:17:54.6472492+01:00",
"CreatedBy": "Struct",
"LastModified": "2024-11-25T14:17:54.6472492+01:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "74964932-36b3-4542-9274-8f2fa77b5d3a",
"IsArchived": false,
"ProductStructureUid": "f87552f6-1bce-489f-bfd1-3c3c1f8a01c5"
}
],
"Total": 20102,
"Remaining": 20100,
"LastId": 20
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
includeArchived | query | boolean |
Include archived products |
limit | query | integer |
Number of products to return |
afterId | query | integer |
Only return products with id larger than this value |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
Products | array : ProductModel |
List of products in result set |
Total | integer |
The total number of items |
Remaining | integer |
The remaining items that lie after the last id of the item in this result set |
LastId | integer |
The id of the last item in this result set |
Property name | Data type | Description |
---|---|---|
Id | integer |
Unique id of the product |
Name | object |
Display name of product (Dictionary of ISO culture code and name) Note: Available from 3.7.0 |
Created | string |
Timestamp of the product creation |
CreatedBy | string |
Username of the user who created the product |
LastModified | string |
Timestamp of the last product update |
LastModifiedBy | string |
Username of the user who made the last change to the product |
VariationDefinitionUid | string |
Variation definition reference. For more information, for more information |
IsArchived | boolean |
Indicates whether the product is archived |
ArchiveReason | string |
The uid of the archive reason selected when the product was archived |
ProductStructureUid | string |
The uid of the product structure used for this product |
WorkflowStateUid | string |
The uid of the workflow state of the product |
POST /products Create new products
A maximum of 5000 products can be created in one request
[
{
"ProductStructureUid": "e4b82f38-f32d-4399-a861-a878f736537f",
"VariationDefinitionUid": "b03a6c67-f066-4581-94bd-5d5716437bfb",
"CategoryIds": [
25,
669
],
"PrimaryCategoryId": 25,
"Values": {
"Name": "Samsung QE65Q950T",
"PrimaryImage": "3013",
"ExtraImage": [
"2566",
"5155",
"5664"
],
"Description": [
{
"CultureCode": "en-GB",
"Data": "The best Samsung TV ever produced"
},
{
"CultureCode": "da-DK",
"Data": "Det allerbedste TV Samsung har at byde på"
}
]
}
},
{
"ProductStructureUid": "e4b82f38-f32d-4399-a861-a878f736537f",
"VariationDefinitionUid": "b03a6c67-f066-4581-94bd-5d5716437bfb",
"CategoryIds": [
58
],
"PrimaryCategoryId": 58,
"Values": {
"Name": "Apple Iphone 12 Pro",
"PrimaryImage": "222",
"ExtraImage": [
"5654",
"789",
"2589"
],
"Description": [
{
"CultureCode": "en-GB",
"Data": "Apples flagship phone"
},
{
"CultureCode": "da-DK",
"Data": "Apples flagskib"
}
]
}
}
]
[
10024,
10025,
10026
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
products | body | array : CreateProductModel |
Products |
categoryOwnerRefKey | query | string |
Reference keys for categories |
Property name | Data type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ProductStructureUid | string |
Product structure to use for product |
||||||||||||||||||||||||||||
VariationDefinitionUid | string |
Variation definition to use for product |
||||||||||||||||||||||||||||
CategoryIds | array |
Categories to place product in |
||||||||||||||||||||||||||||
PrimaryCategoryId | integer |
The primary category to set for the product |
||||||||||||||||||||||||||||
WorkflowStateUid | string |
Workflow state to set on the product |
||||||||||||||||||||||||||||
Values | object |
Dictionary of attribute alias and the corresponding attribute value as an object representation The table below shows how different attributes translates to this value model.
|
Response status OK (200)
DELETE /products Delete multiple products
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Ids of products to delete |
Response status OK (200)
PATCH /products Update multiple products
[
{
"ProductId": 20111,
"UpdateModel": {
"Values": {
"Name": "Samsung QE65Q950T",
"PrimaryImage": "3013"
}
}
},
{
"ProductId": 5635,
"UpdateModel": {
"Classifications": {
"CategoryIds": [
392,
23
],
"Primary": 23
}
}
},
{
"ProductId": 18863,
"UpdateModel": {
"Classifications": {
"CategoryIds": [
392,
23
],
"Primary": 23
},
"Values": {
"Description": [
{
"CultureCode": "en-GB",
"Data": "Apples flagship phone"
},
{
"CultureCode": "da-DK",
"Data": "Apples flagskib"
}
]
}
}
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
products | body | array : BatchUpdateProductModel |
Update model |
ownerReference | query | string |
Add a reference to the system that creates this classification to be able to distinguish the classification from classifications made by other systems |
removeCategoriesWithSameOwnerReference | query | boolean |
Set true if you want to remove existing classifications with the provided ownerReference, which is not part to the supplied classifications |
Property name | Data type | Description |
---|---|---|
ProductId | integer |
Id of product to update |
UpdateModel | object : UpdateProductModel |
Model containing updates to make on product (properties with null values are ignored and does not cause an update) |
Property name | Data type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ProductStructureUid | string |
Product structure to set on product |
||||||||||||||||||||||||||||
VariationDefinitionUid | string |
Variation definition to set on product |
||||||||||||||||||||||||||||
IsArchived | boolean |
Indicate whether the product shall be archived or un-archived |
||||||||||||||||||||||||||||
ArchiveReason | string |
Reference to the archive reason when archiving product (if IsArchived is true) |
||||||||||||||||||||||||||||
Classifications | object : AddProductClassificationsModel |
Categories to add the product to |
||||||||||||||||||||||||||||
WorkflowStateUid | string |
Workflow state to set on the product |
||||||||||||||||||||||||||||
Values | object |
Dictionary of attribute alias and the corresponding attribute value as an object representation The table below shows how different attributes translates to this value model.
|
Property name | Data type | Description |
---|---|---|
CategoryIds | array |
Ids of categories to add product to |
CategoryIdsSorted | array : CategoryIdSorted |
Ids of categories to add product to |
Primary | integer |
Category to set as primary category. Leave empty, to make nochange to primary category (if product does not currently have a primary category and this is null, the first category in CategoryIds will be set as primary category) |
Property name | Data type | Description |
---|---|---|
CategoryId | integer |
Id of category to add product to |
SortOrder | integer |
The presented sortorder of the categories |
Response status OK (200)
GET /products/{id} Get basic model for a product
{
"Id": 2011,
"Name": {
"en-GB": "Mascot work pants",
"da-DK": "Mascot arbejdsbukser"
},
"Created": "2025-05-19T15:17:54.6234437+02:00",
"CreatedBy": "Struct",
"LastModified": "2025-05-19T15:17:54.6234437+02:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "20d0b4f5-9986-4a37-a3d4-43e5b1b53891",
"IsArchived": false,
"ProductStructureUid": "6492bfc3-1a64-4523-927f-1672bb35b6d9"
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product to return |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
Id | integer |
Unique id of the product |
Name | object |
Display name of product (Dictionary of ISO culture code and name) Note: Available from 3.7.0 |
Created | string |
Timestamp of the product creation |
CreatedBy | string |
Username of the user who created the product |
LastModified | string |
Timestamp of the last product update |
LastModifiedBy | string |
Username of the user who made the last change to the product |
VariationDefinitionUid | string |
Variation definition reference. For more information, for more information |
IsArchived | boolean |
Indicates whether the product is archived |
ArchiveReason | string |
The uid of the archive reason selected when the product was archived |
ProductStructureUid | string |
The uid of the product structure used for this product |
WorkflowStateUid | string |
The uid of the workflow state of the product |
DELETE /products/{id} Delete a product
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product to delete |
Response status OK (200)
PATCH /products/{id} Update a product
{
"Classifications": {
"CategoryIds": [
392,
23
],
"Primary": 23
},
"Values": {
"Description": [
{
"CultureCode": "en-GB",
"Data": "Apples flagship phone"
},
{
"CultureCode": "da-DK",
"Data": "Apples flagskib"
}
]
}
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
model | body | object : UpdateProductModel |
Update model |
ownerReference | query | string |
Add a reference to the system that creates this classification to be able to distinguish the classification from classifications made by other systems |
removeCategoriesWithSameOwnerReference | query | boolean |
Set true if you want to remove existing classifications with the provided ownerReference, which is not part to the supplied classifications |
Property name | Data type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ProductStructureUid | string |
Product structure to set on product |
||||||||||||||||||||||||||||
VariationDefinitionUid | string |
Variation definition to set on product |
||||||||||||||||||||||||||||
IsArchived | boolean |
Indicate whether the product shall be archived or un-archived |
||||||||||||||||||||||||||||
ArchiveReason | string |
Reference to the archive reason when archiving product (if IsArchived is true) |
||||||||||||||||||||||||||||
Classifications | object : AddProductClassificationsModel |
Categories to add the product to |
||||||||||||||||||||||||||||
WorkflowStateUid | string |
Workflow state to set on the product |
||||||||||||||||||||||||||||
Values | object |
Dictionary of attribute alias and the corresponding attribute value as an object representation The table below shows how different attributes translates to this value model.
|
Property name | Data type | Description |
---|---|---|
CategoryIds | array |
Ids of categories to add product to |
CategoryIdsSorted | array : CategoryIdSorted |
Ids of categories to add product to |
Primary | integer |
Category to set as primary category. Leave empty, to make nochange to primary category (if product does not currently have a primary category and this is null, the first category in CategoryIds will be set as primary category) |
Property name | Data type | Description |
---|---|---|
CategoryId | integer |
Id of category to add product to |
SortOrder | integer |
The presented sortorder of the categories |
Response status OK (200)
GET /products/{id}/attributevalues Get attribute values for a product
{
"ProductId": 2011,
"Values": {
"Name": "Samsung QE65Q950T",
"PrimaryImage": "3013",
"ExtraImage": [
"2566",
"5155",
"5664"
],
"Description": [
{
"CultureCode": "en-GB",
"Data": "The best Samsung TV ever produced"
},
{
"CultureCode": "da-DK",
"Data": "Det allerbedste TV Samsung har at byde på"
}
]
}
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
globalListValueReferencesOnly | query | boolean |
Indicate if only uids of referenced to global list values shall be returned instead of the materialized values |
Response status OK (200)
Property name | Data type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ProductId | integer |
Id of product |
||||||||||||||||||||||||||||
Values | object |
Dictionary of attribute alias and the corresponding attribute value as an object representation The table below shows how different attributes translates to this value model.
|
GET /products/{id}/classifications Get category classifications for a product
[
{
"CategoryId": 12,
"IsPrimary": true,
"SortOrder": 1
},
{
"CategoryId": 1202,
"IsPrimary": false,
"SortOrder": 3
},
{
"CategoryId": 27,
"IsPrimary": false,
"SortOrder": 12
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
CategoryId | integer |
Id of category the product is placed in |
IsPrimary | boolean |
Indication whether this classification is the primary classification for the product |
OwnerReference | string |
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 products 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 |
SortOrder | integer |
Sort order of the product in this category |
POST /products/{id}/classifications Add category classifications to a product
{
"CategoryIds": [
27,
49,
244
],
"CategoryIdsSorted": [
{
"CategoryId": 27,
"SortOrder": 0
},
{
"CategoryId": 49,
"SortOrder": 1
},
{
"CategoryId": 244,
"SortOrder": 2
}
],
"Primary": 27
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
ownerReference | query | string |
Add a reference to the system that creates this classification to be able to distinguish the classification from classifications made by other systems |
removeCategoriesWithSameOwnerReference | query | boolean |
Set true if you want to remove existing classifications with the provided ownerReference, which is not part to the supplied classifications |
classifications | body | object : AddProductClassificationsModel |
Model with product id and categories to classify the product in |
Property name | Data type | Description |
---|---|---|
CategoryIds | array |
Ids of categories to add product to |
CategoryIdsSorted | array : CategoryIdSorted |
Ids of categories to add product to |
Primary | integer |
Category to set as primary category. Leave empty, to make nochange to primary category (if product does not currently have a primary category and this is null, the first category in CategoryIds will be set as primary category) |
Property name | Data type | Description |
---|---|---|
CategoryId | integer |
Id of category to add product to |
SortOrder | integer |
The presented sortorder of the categories |
Response status OK (200)
DELETE /products/{id}/classifications Remove category classifications from a product
[
265,
88,
27
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
categoryIds | body | array : integer |
category ids to remove the product from |
Response status OK (200)
GET /products/{id}/enrichmentinsights Get Enrichment Insights for a product
#Available from v.3.5.0
[
{
"EnrichmentInsightSetupUid": "b9ab083f-d622-4eba-b273-4a9bf26a3a03",
"EntityId": 1974035,
"Completeness": 50,
"MissingData": [
{
"Type": "AttributeInsightsDataReference",
"DataReference": "f9a52541-5712-406b-b4b6-04a94399e00f_9_NA"
}
],
"Ignored": false
},
{
"EnrichmentInsightSetupUid": "731a399b-f61c-48d4-b1c0-251a20d7125a",
"EntityId": 1974035,
"Completeness": 100,
"MissingData": [],
"Ignored": false
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product to get insights for |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
EnrichmentInsightSetupUid | string |
Uid of enrichment insight |
EntityId | integer |
Id of entity |
Completeness | integer |
Completeness in percentage (0 - 100). Is null, if ignored is true |
MissingData | array : InsightDataReference |
List of missing data for this entity to reach 100% completeness for this enrichment insight |
Ignored | boolean |
Indicates whether the completeness is ignored for this entity and this enrichment insight |
Property name | Data type | Description |
---|---|---|
Type | string |
Type of data reference |
DataReference | string |
The data reference itself |
PATCH /products/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore} Enable or disable an enrichment insight for a product
#Available from v.3.5.0
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
enrichmentInsightSetupUid | path | string |
Uid of enrichment insight to toggle ignore for |
ignore | path | boolean |
Indicate whether to ignore the insight for the given enrichment insight and products |
Response status OK (200)
GET /products/{id}/references Get references to a product
#Available from v.3.5.0
{
"ProductId": 12,
"ReferencingCategories": [
{
"EntityId": 100,
"AttributeUid": "972a67d2-32f0-4cb5-a8f3-cb316f0c35f9"
},
{
"EntityId": 101,
"AttributeUid": "972a67d2-32f0-4cb5-a8f3-cb316f0c35f9"
}
],
"ReferencingProducts": [
{
"EntityId": 100010,
"AttributeUid": "6cbb5e03-54ee-43ef-88bf-e6fe56b9d1ec"
},
{
"EntityId": 100011,
"AttributeUid": "6cbb5e03-54ee-43ef-88bf-e6fe56b9d1ec"
},
{
"EntityId": 102354,
"AttributeUid": "6dc807e7-6227-4118-a680-8197eeca8c09"
}
],
"ReferencingVariantGroups": [],
"ReferencingVariants": [
{
"EntityId": 100,
"AttributeUid": "6cbb5e03-54ee-43ef-88bf-e6fe56b9d1ec"
}
],
"ReferencingGlobalListValues": [
"d00b0b8c-5e01-4897-be0d-d50f28a2b05a",
"9777a794-5931-4ed3-8057-44044bbbd53b"
]
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
ProductId | integer |
Id of the referenced product |
ReferencingCategories | array : EntityReferenceDetail |
List of categories referencing this product |
ReferencingProducts | array : EntityReferenceDetail |
List of products referencing this product |
ReferencingVariantGroups | array : EntityReferenceDetail |
List of variant groups referencing this product |
ReferencingVariants | array : EntityReferenceDetail |
List of variants referencing this product |
ReferencingGlobalListValues | array |
List of global list values referencing this product |
Property name | Data type | Description |
---|---|---|
EntityId | integer |
The id of the referencing entity |
AttributeUid | string |
The attribute on the referencing entity that holds the reference |
GET /products/{id}/variantgroups Get ids of variant groups associated to a product
#Available from v.3.11.0
[
12544,
5353,
56843,
8865,
1556
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
includeArchived | query | boolean |
Return ids of archived variant groups as well |
Response status OK (200)
GET /products/{id}/variants Get ids of variants of a product
[
12544,
5353,
56843,
8865,
1556
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
id | path | integer |
Id of product |
includeArchived | query | boolean |
Return ids of archived variants as well |
Response status OK (200)
POST /products/batch Get basic model for a range of products
[
{
"Id": 2011,
"Name": {
"en-GB": "Mascot work pants",
"da-DK": "Mascot arbejdsbukser"
},
"Created": "2025-05-19T15:17:54.6422521+02:00",
"CreatedBy": "Struct",
"LastModified": "2025-05-19T15:17:54.6422521+02:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "bc51bcae-8bad-4077-95af-c3851bcb3c8e",
"IsArchived": false,
"ProductStructureUid": "9639b345-c756-4088-9176-497aca0f7750"
},
{
"Id": 2012,
"Name": {
"en-GB": "Apple Iphone",
"da-DK": "Apple Iphone"
},
"Created": "2025-02-08T14:17:54.6422521+01:00",
"CreatedBy": "Struct",
"LastModified": "2024-12-20T14:17:54.6422521+01:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "bc51bcae-8bad-4077-95af-c3851bcb3c8e",
"IsArchived": false,
"ProductStructureUid": "9639b345-c756-4088-9176-497aca0f7750"
},
{
"Id": 2013,
"Name": {
"en-GB": "Samsung 8K series TV",
"da-DK": "Samsung 8K serie"
},
"Created": "2024-11-25T14:17:54.6422521+01:00",
"CreatedBy": "Struct",
"LastModified": "2024-11-25T14:17:54.6422521+01:00",
"LastModifiedBy": "Struct",
"VariationDefinitionUid": "bc51bcae-8bad-4077-95af-c3851bcb3c8e",
"IsArchived": false,
"ProductStructureUid": "9639b345-c756-4088-9176-497aca0f7750"
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
ids | body | array : integer |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
Id | integer |
Unique id of the product |
Name | object |
Display name of product (Dictionary of ISO culture code and name) Note: Available from 3.7.0 |
Created | string |
Timestamp of the product creation |
CreatedBy | string |
Username of the user who created the product |
LastModified | string |
Timestamp of the last product update |
LastModifiedBy | string |
Username of the user who made the last change to the product |
VariationDefinitionUid | string |
Variation definition reference. For more information, for more information |
IsArchived | boolean |
Indicates whether the product is archived |
ArchiveReason | string |
The uid of the archive reason selected when the product was archived |
ProductStructureUid | string |
The uid of the product structure used for this product |
WorkflowStateUid | string |
The uid of the workflow state of the product |
POST /products/batch/attributevalues Get attribute values for multiple products
No more than 5000 products can be requested at a time.
[
{
"ProductId": 2011,
"Values": {
"Name": "Samsung QE65Q950T",
"PrimaryImage": "3013",
"ExtraImage": [
"2566",
"5155",
"5664"
],
"Description": [
{
"CultureCode": "en-GB",
"Data": "The best Samsung TV ever produced"
},
{
"CultureCode": "da-DK",
"Data": "Det allerbedste TV Samsung har at byde på"
}
]
}
},
{
"ProductId": 54698,
"Values": {
"Name": "Apple Iphone 12 Pro",
"PrimaryImage": "222",
"ExtraImage": [
"5654",
"789",
"2589"
],
"Description": [
{
"CultureCode": "en-GB",
"Data": "Apples flagship phone"
},
{
"CultureCode": "da-DK",
"Data": "Apples flagskib"
}
]
}
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
model | body | object : ProductValuesRequestModel |
Request model |
Property name | Data type | Description |
---|---|---|
ProductIds | array |
Ids of products to return |
IncludeValues | string |
Select if any source of values shall be returned |
Scopes | array |
If IncludeValues is Scopes, define which scopes to return values for here |
Aliases | array |
If IncludeValues is Aliases, define aliases of the attributes to include values for |
Uids | array |
If IncludeValues is Uids, define uids of the attributes to include values for |
LimitToCultureCodes | array |
Only return values for specific languages |
LimitToSegments | array |
Only return values for specific dimension segments |
GlobalListValueReferencesOnly | boolean |
Indicate if only uids of referenced to global list values shall be returned instead of the materialized values |
FromTimestamp | string |
Get attribute values back in time |
Response status OK (200)
Property name | Data type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ProductId | integer |
Id of product |
||||||||||||||||||||||||||||
Values | object |
Dictionary of attribute alias and the corresponding attribute value as an object representation The table below shows how different attributes translates to this value model.
|
POST /products/batch/classifications Get category classifications for a batch of products
[
2003,
2325,
69866
]
{
"2003": [
{
"CategoryId": 12,
"IsPrimary": true,
"SortOrder": 1
},
{
"CategoryId": 1202,
"IsPrimary": false,
"SortOrder": 3
},
{
"CategoryId": 27,
"IsPrimary": false,
"SortOrder": 12
}
],
"2325": [
{
"CategoryId": 12,
"IsPrimary": true,
"SortOrder": 2
},
{
"CategoryId": 27,
"IsPrimary": false,
"SortOrder": 3
}
],
"69866": [
{
"CategoryId": 27,
"IsPrimary": true,
"SortOrder": 1
}
]
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Model containing batch of product ids |
Response status OK (200)
POST /products/batch/enrichmentinsights Get Enrichment Insights for a batch of products
#Available from v.3.5.0
[
{
"EnrichmentInsightSetupUid": "157279f9-2d43-4435-9882-bfc285eb2f4d",
"EntityId": 1974035,
"Completeness": 50,
"MissingData": [
{
"Type": "AttributeInsightsDataReference",
"DataReference": "f9a52541-5712-406b-b4b6-04a94399e00f_9_NA"
}
],
"Ignored": false
},
{
"EnrichmentInsightSetupUid": "157279f9-2d43-4435-9882-bfc285eb2f4d",
"EntityId": 1974043,
"Completeness": 100,
"MissingData": [],
"Ignored": false
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Ids of products to get insights for |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
EnrichmentInsightSetupUid | string |
Uid of enrichment insight |
EntityId | integer |
Id of entity |
Completeness | integer |
Completeness in percentage (0 - 100). Is null, if ignored is true |
MissingData | array : InsightDataReference |
List of missing data for this entity to reach 100% completeness for this enrichment insight |
Ignored | boolean |
Indicates whether the completeness is ignored for this entity and this enrichment insight |
Property name | Data type | Description |
---|---|---|
Type | string |
Type of data reference |
DataReference | string |
The data reference itself |
PATCH /products/batch/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore} Enable or disable an enrichment insight for a batch of products
#Available from v.3.5.0
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Ids of products to toggle ignore for |
enrichmentInsightSetupUid | path | string |
Uid of enrichment insight to toggle ignore for |
ignore | path | boolean |
Indicate whether to ignore the insight for the given enrichment insight and products |
Response status OK (200)
POST /products/batch/enrichmentinsights/{enrichmentInsightUid} Get insights for a batch of products and a specific Enrichment Insight
#Available from v.3.5.0
[
{
"EnrichmentInsightSetupUid": "0d4f9ded-44f8-4e42-9e75-7c9f727bbc1b",
"EntityId": 1974035,
"Completeness": 50,
"MissingData": [
{
"Type": "AttributeInsightsDataReference",
"DataReference": "f9a52541-5712-406b-b4b6-04a94399e00f_9_NA"
}
],
"Ignored": false
},
{
"EnrichmentInsightSetupUid": "0d4f9ded-44f8-4e42-9e75-7c9f727bbc1b",
"EntityId": 1974043,
"Completeness": 100,
"MissingData": [],
"Ignored": false
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Ids of products to get insights for |
enrichmentInsightUid | path | string |
Uid of enrichment insight to get for batch of products |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
EnrichmentInsightSetupUid | string |
Uid of enrichment insight |
EntityId | integer |
Id of entity |
Completeness | integer |
Completeness in percentage (0 - 100). Is null, if ignored is true |
MissingData | array : InsightDataReference |
List of missing data for this entity to reach 100% completeness for this enrichment insight |
Ignored | boolean |
Indicates whether the completeness is ignored for this entity and this enrichment insight |
Property name | Data type | Description |
---|---|---|
Type | string |
Type of data reference |
DataReference | string |
The data reference itself |
POST /products/batch/identifiers Get internal ids of multiple products from their identifier
{
"5796359512359": 10000,
"5756525697563": 11012,
"5756326985442": 15133,
"5799645384354": null
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
model | body | object : IdentifierBatchModel |
Specify alias of identifier type and the identifiers to return internal ids for |
Property name | Data type | Description |
---|---|---|
IdentifierAlias | string |
The alias of the identifier |
Identifiers | array |
Array of identifiers to return internal ids for |
Response status OK (200)
POST /products/batch/references Get references to a batch of products
#Available from v.3.5.0 No more than 5000 values can be requested at a time.
[
{
"ProductId": 12,
"ReferencingCategories": [
{
"EntityId": 100,
"AttributeUid": "ba7caafb-80f8-49e1-89d8-c8c73583c58e"
},
{
"EntityId": 101,
"AttributeUid": "ba7caafb-80f8-49e1-89d8-c8c73583c58e"
}
],
"ReferencingProducts": [
{
"EntityId": 100010,
"AttributeUid": "45647bc3-eb3a-4820-9649-3db339345e2d"
},
{
"EntityId": 100011,
"AttributeUid": "45647bc3-eb3a-4820-9649-3db339345e2d"
},
{
"EntityId": 102354,
"AttributeUid": "81b62efb-25ba-45ce-a0c2-ebc44497f9b0"
}
],
"ReferencingVariantGroups": [],
"ReferencingVariants": [
{
"EntityId": 100,
"AttributeUid": "45647bc3-eb3a-4820-9649-3db339345e2d"
}
],
"ReferencingGlobalListValues": [
"b1b77fc7-6d7b-4925-b60d-4a5b26a48ba2",
"f746a78f-a7be-40d8-be33-f8d8b7e9ea37"
]
},
{
"ProductId": 20,
"ReferencingCategories": [
{
"EntityId": 100,
"AttributeUid": "ba7caafb-80f8-49e1-89d8-c8c73583c58e"
}
],
"ReferencingProducts": [
{
"EntityId": 23553,
"AttributeUid": "45647bc3-eb3a-4820-9649-3db339345e2d"
},
{
"EntityId": 5656,
"AttributeUid": "45647bc3-eb3a-4820-9649-3db339345e2d"
}
],
"ReferencingVariantGroups": [],
"ReferencingVariants": [
{
"EntityId": 568323,
"AttributeUid": "81b62efb-25ba-45ce-a0c2-ebc44497f9b0"
}
],
"ReferencingGlobalListValues": [
"e14fb56c-12fa-4a30-a5a1-1bd9567c8df6",
"b49c63e6-5120-4c0d-b1b9-489ee5cdaf2b"
]
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
ids | body | array : integer |
Ids of products |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
ProductId | integer |
Id of the referenced product |
ReferencingCategories | array : EntityReferenceDetail |
List of categories referencing this product |
ReferencingProducts | array : EntityReferenceDetail |
List of products referencing this product |
ReferencingVariantGroups | array : EntityReferenceDetail |
List of variant groups referencing this product |
ReferencingVariants | array : EntityReferenceDetail |
List of variants referencing this product |
ReferencingGlobalListValues | array |
List of global list values referencing this product |
Property name | Data type | Description |
---|---|---|
EntityId | integer |
The id of the referencing entity |
AttributeUid | string |
The attribute on the referencing entity that holds the reference |
POST /products/batch/variantgroups Get ids of variant groups for a batch of products
#Available from v.3.11.0
{
"10006": [
12544,
5353,
56843,
8865,
1556
],
"5646": [
7424,
5454,
4404
]
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Ids of products |
includeArchived | query | boolean |
Return ids of archived variant groups as well |
Response status OK (200)
POST /products/batch/variants Get ids of variants for a batch of products
{
"10006": [
12544,
5353,
56843,
8865,
1556
],
"5646": [
7424,
5454,
4404
]
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
productIds | body | array : integer |
Ids of products |
includeArchived | query | boolean |
Return ids of archived variants as well |
Response status OK (200)
POST /products/classifications Add category classifications to a batch of products
Use ownerReference to set a tag on these classifications that are made from the API. This way you are able to distinquish these classifications from other classifications made directly in the PIM UI at a later stage. By setting the removeCategoriesWithSameOwnerReference, you can remove all classifications that has the same ownerReference as provided in the
[
{
"ProductId": 30211,
"CategoryIds": [
27,
11
],
"Primary": 27
},
{
"ProductId": 5568,
"CategoryIds": [
11
],
"Primary": 11
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
ownerReference | query | string |
Add a reference to the system that creates this classification to be able to distinguish the classification from classifications made by other systems |
removeCategoriesWithSameOwnerReference | query | boolean |
Set true if you want to remove existing classifications with the provided ownerReference, which is not part to the supplied classifications |
classifications | body | array : BatchAddProductClassificationsModel |
Model containing batch og products and categories to classify these in |
Property name | Data type | Description |
---|---|---|
ProductId | integer |
Id of product |
CategoryIds | array |
Category ids to add products to |
CategoryIdsSorted | array : CategoryIdSorted |
Category ids to sort order |
Primary | integer |
Category to set as primary category. Leave empty, to make nochange to primary category (if product does not currently have a primary category and this is null, the first category in CategoryIds will be set as primary category) |
Property name | Data type | Description |
---|---|---|
CategoryId | integer |
Id of category to add product to |
SortOrder | integer |
The presented sortorder of the categories |
Response status OK (200)
DELETE /products/classifications Remove category classifications from a batch of products
[
{
"ProductId": 302,
"CategoryIds": [
23,
55
]
},
{
"ProductId": 56684,
"CategoryIds": [
88
]
}
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
model | body | array : RemoveClassificationsModel |
Model containing batch of products and the list of categories to remove them from |
Property name | Data type | Description |
---|---|---|
ProductId | integer |
Id to remove classifications from |
CategoryIds | array |
Categories to remove product from |
Response status OK (200)
GET /products/identifiers/{identifierAlias} Get all identifiers and their internal ids for a specific identifier type
{
"5796359512359": 10000,
"5756525697563": 11012,
"5756326985442": 15133
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
identifierAlias | path | string |
Alias of identifier type |
Response status OK (200)
GET /products/identifiers/{identifierAlias}/{identifier} Get the internal id of a product based on its identifier
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
identifierAlias | path | string |
Alias of identifier type |
identifier | path | string |
Identifier value |
Response status OK (200)
GET /products/ids Get ids of all products in the system
By default, ids for archived products are not returned
[
10021,
20311,
234032,
23134,
53451,
32433,
23481
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
includeArchived | query | boolean |
Include archived products |
Response status OK (200)
GET /products/queryablefields Get all available query fields in the PIM installation
[
{
"Uid": "PIM_CategoryIds",
"Name": "CategoryIds",
"SupportsSorting": false
},
{
"Uid": "Name_en-GB",
"Name": "Name (en-GB)",
"SupportsSorting": false
},
{
"Uid": "Name_da-DK",
"Name": "Name (da-DK)",
"SupportsSorting": false
},
{
"Uid": "Description_en-GB",
"Name": "Description (en-GB)",
"SupportsSorting": false
},
{
"Uid": "Description_da-DK",
"Name": "Description (da-DK)",
"SupportsSorting": false
}
]
Response status OK (200)
Property name | Data type | Description |
---|---|---|
Uid | string |
Unique id of field in PIM |
Name | string |
The display name of the field |
SupportsSorting | boolean |
If true field can be used for sorting |
POST /products/search Get ids of products matching certain criteria
{
"IncludeArchived": false,
"QueryModel": {
"SubQueries": [
{
"Filters": [
{
"FieldUid": "ReleasedInCountries_NA_NA",
"QueryOperator": 0,
"FilterValue": "DK"
}
],
"BooleanOperator": 0,
"QueryModelType": "SimpleQueryModel"
},
{
"Filters": [
{
"FieldUid": "Color.BaseColor.Name_en-GB_NA",
"QueryOperator": 0,
"FilterValue": "red"
},
{
"FieldUid": "Color.BaseColor.Name_en-GB_NA",
"QueryOperator": 0,
"FilterValue": "blue"
}
],
"BooleanOperator": 1,
"QueryModelType": "SimpleQueryModel"
}
],
"BooleanOperator": 0,
"QueryModelType": "BooleanQueryModel"
}
}
[
10021,
20311,
234032,
23134,
53451,
32433,
23481
]
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
model | body | object : SearchModel |
Query model |
Property name | Data type | Description |
---|---|---|
IncludeArchived | boolean |
Include archived items in result |
QueryModel | object : QueryModel |
The actual query to get result for |
Property name | Data type | Description |
---|---|---|
Filters | array : FieldFilterModel |
List of filter conditions |
BooleanOperator | string |
The operator of the query. Can be any of:
|
QueryModelType | string |
The type of query model. Name matches exact name of concrete model implementation |
Property name | Data type | Description |
---|---|---|
SubQueries | array : QueryModel |
Sub queries to execute |
BooleanOperator | string |
The operator of the query. Can be any of:
|
QueryModelType | string |
The type of query model. Name matches exact name of concrete model implementation |
Property name | Data type | Description |
---|---|---|
FieldUid | string |
Uid of field to query |
QueryOperator | string |
Operator to use for query. Can be any of:
|
FilterValue | object |
Value to filter for using the QueryOperator. When QueryOperator is "InList", FilterValue must be an array of values to query for |
Response status OK (200)
POST /products/search/paged Get paged result of products matching certain criteria. Result mapped with headers and item results
{
"Page": 1,
"PageSize": 10,
"FieldUids": [
"Id",
"Color.BaseColor.Name_en-GB_NA"
],
"SortByFieldUid": "Color.BaseColor.Name_en-GB_NA",
"SortDescending": true,
"IncludeArchived": false,
"QueryModel": {
"SubQueries": [
{
"Filters": [
{
"FieldUid": "ReleasedInCountries_NA_NA",
"QueryOperator": 0,
"FilterValue": "DK"
}
],
"BooleanOperator": 0,
"QueryModelType": "SimpleQueryModel"
},
{
"Filters": [
{
"FieldUid": "Color.BaseColor.Name_en-GB_NA",
"QueryOperator": 0,
"FilterValue": "red"
},
{
"FieldUid": "Color.BaseColor.Name_en-GB_NA",
"QueryOperator": 0,
"FilterValue": "blue"
}
],
"BooleanOperator": 1,
"QueryModelType": "SimpleQueryModel"
}
],
"BooleanOperator": 0,
"QueryModelType": "BooleanQueryModel"
}
}
{
"TotalHits": 55,
"Page": 1,
"PageSize": 3,
"TotalPages": 19,
"ItemListHeaders": [
{
"FieldUid": "Id",
"FieldName": "Internal Id",
"FieldType": "tableStringRenderer",
"SupportsSearching": true,
"SupportsSorting": true
},
{
"FieldUid": "Color.BaseColor.Name_en-GB_NA",
"FieldName": "Color.Base Color.Name",
"FieldType": "tableStringRenderer",
"SupportsSearching": true,
"SupportsSorting": true
}
],
"ListItems": [
{
"Id": 10021
},
{
"Id": 20311
},
{
"Id": 234032
}
]
}
Request parameters
Property name | Parameter type | Data type | Description |
---|---|---|---|
model | body | object : SearchPagedModel |
Query model |
Property name | Data type | Description |
---|---|---|
Page | integer | |
PageSize | integer | |
FieldUids | array | |
SortByFieldUid | string | |
SortDescending | boolean | |
IncludeArchived | boolean |
Include archived items in result |
QueryModel | object : QueryModel |
The actual query to get result for |
Property name | Data type | Description |
---|---|---|
Filters | array : FieldFilterModel |
List of filter conditions |
BooleanOperator | string |
The operator of the query. Can be any of:
|
QueryModelType | string |
The type of query model. Name matches exact name of concrete model implementation |
Property name | Data type | Description |
---|---|---|
SubQueries | array : QueryModel |
Sub queries to execute |
BooleanOperator | string |
The operator of the query. Can be any of:
|
QueryModelType | string |
The type of query model. Name matches exact name of concrete model implementation |
Property name | Data type | Description |
---|---|---|
FieldUid | string |
Uid of field to query |
QueryOperator | string |
Operator to use for query. Can be any of:
|
FilterValue | object |
Value to filter for using the QueryOperator. When QueryOperator is "InList", FilterValue must be an array of values to query for |
Response status OK (200)
Property name | Data type | Description |
---|---|---|
TotalHits | integer | |
Page | integer | |
PageSize | integer | |
TotalPages | integer | |
ItemListHeaders | array : ItemListHeader | |
ListItems | array : ListItem |
Property name | Data type | Description |
---|---|---|
FieldUid | string | |
FieldName | string | |
FieldType | string | |
SupportsSearching | boolean | |
SupportsSorting | boolean |
Property name | Data type | Description |
---|---|---|
Id | integer | |
ShownValues | array |