# 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.

## Get ids of all variants in the system

> By default, ids for archived variants are not returned

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/ids":{"get":{"tags":["Variants"],"summary":"Get ids of all variants in the system","description":"By default, ids for archived variants are not returned","parameters":[{"name":"includeArchived","in":"query","description":"Include archived variants","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## GET /v1/variants/{id}

> Get basic model for a variant

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of variant","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"ProductId":{"type":"integer","description":"Id of product to which variant is attached","format":"int32"},"SortOrder":{"type":"integer","description":"#Available from v.3.2.0\r\nThe sort order of the variant compared to other variants of this product","format":"int32"},"VariantGroupId":{"type":"integer","description":"#Available from v.3.11.0\r\nThe variant group this variant is connected to, if any","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"#Available from v.3.11.0\r\nThe sortorder relative to other variants connected to the same variant group","format":"int32","nullable":true},"Created":{"type":"string","description":"Timestamp of variant creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The product structure used by this variant","format":"uuid"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The unique ids of the attributes acting as defining attributes for this variant","nullable":true},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant is associated with","nullable":true}},"additionalProperties":false,"description":"Variant model holding basic information about the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}},"paths":{"/v1/variants/{id}":{"get":{"tags":["Variants"],"summary":"Get basic model for a variant","parameters":[{"name":"id","in":"path","description":"Id of variant","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantModel"}}}}}}}}}
```

## DELETE /v1/variants/{id}

> Delete a variant

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/{id}":{"delete":{"tags":["Variants"],"summary":"Delete a variant","parameters":[{"name":"id","in":"path","description":"Id of variant to delete","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/variants/{id}

> Update a variant

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.UpdateVariantModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to move variant to","format":"int32","nullable":true},"IsArchived":{"type":"boolean","description":"Indicate whether the product shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving variant (if IsArchived is true)","format":"uuid","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of variant compared to other variants of the product","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"Sort order of variant compared to other variants in same variant group","format":"int32","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"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.\r\nThis means you should only set properties that shall be updated on the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}},"paths":{"/v1/variants/{id}":{"patch":{"tags":["Variants"],"summary":"Update a variant","parameters":[{"name":"id","in":"path","description":"Id of variant","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"Update model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.UpdateVariantModel"}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## POST /v1/variants/batch

> Get basic model for a range of variants

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of variant","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"ProductId":{"type":"integer","description":"Id of product to which variant is attached","format":"int32"},"SortOrder":{"type":"integer","description":"#Available from v.3.2.0\r\nThe sort order of the variant compared to other variants of this product","format":"int32"},"VariantGroupId":{"type":"integer","description":"#Available from v.3.11.0\r\nThe variant group this variant is connected to, if any","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"#Available from v.3.11.0\r\nThe sortorder relative to other variants connected to the same variant group","format":"int32","nullable":true},"Created":{"type":"string","description":"Timestamp of variant creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The product structure used by this variant","format":"uuid"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The unique ids of the attributes acting as defining attributes for this variant","nullable":true},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant is associated with","nullable":true}},"additionalProperties":false,"description":"Variant model holding basic information about the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}},"paths":{"/v1/variants/batch":{"post":{"tags":["Variants"],"summary":"Get basic model for a range of variants","requestBody":{"description":"Ids of variants to get models for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantModel"}}}}}}}}}}
```

## Get basic models for variants

> 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

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantsResultSet":{"type":"object","properties":{"Variants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantModel"},"description":"Variants in result set","nullable":true},"Total":{"type":"integer","description":"The total number of items","format":"int32"},"Remaining":{"type":"integer","description":"The remaining items that lie after the last id of the item in this result set","format":"int32"},"LastId":{"type":"integer","description":"The id of the last item in this result set","format":"int32"}},"additionalProperties":false,"description":"Result set of variants from a variant query"},"Struct.App.Api.Models.Variant.VariantModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of variant","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"ProductId":{"type":"integer","description":"Id of product to which variant is attached","format":"int32"},"SortOrder":{"type":"integer","description":"#Available from v.3.2.0\r\nThe sort order of the variant compared to other variants of this product","format":"int32"},"VariantGroupId":{"type":"integer","description":"#Available from v.3.11.0\r\nThe variant group this variant is connected to, if any","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"#Available from v.3.11.0\r\nThe sortorder relative to other variants connected to the same variant group","format":"int32","nullable":true},"Created":{"type":"string","description":"Timestamp of variant creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The product structure used by this variant","format":"uuid"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The unique ids of the attributes acting as defining attributes for this variant","nullable":true},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant is associated with","nullable":true}},"additionalProperties":false,"description":"Variant model holding basic information about the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}},"paths":{"/v1/variants":{"get":{"tags":["Variants"],"summary":"Get basic models for variants","description":"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","parameters":[{"name":"includeArchived","in":"query","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","schema":{"type":"integer","format":"int32","default":1000}},{"name":"afterId","in":"query","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantsResultSet"}}}}}}}}}
```

## Create new variants

> A maximum of 5000 variants can be created in one request

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.CreateVariantModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to attach variant to","format":"int32"},"SortOrder":{"type":"integer","description":"Sort order of variant compared to other variants of the product (when null, variant is placed after existing variants)","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"Sort order of variant compared to other variants in same variant group","format":"int32","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model for creating a new variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"Type":{"type":"string","nullable":true},"Title":{"type":"string","nullable":true},"Status":{"type":"integer","format":"int32","nullable":true},"Detail":{"type":"string","nullable":true},"Instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/v1/variants":{"post":{"tags":["Variants"],"summary":"Create new variants","description":"A maximum of 5000 variants can be created in one request","requestBody":{"description":"Variants","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.CreateVariantModel"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int32"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## DELETE /v1/variants

> Delete multiple variants

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants":{"delete":{"tags":["Variants"],"summary":"Delete multiple variants","requestBody":{"description":"Ids of variants to delete","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/variants

> Update multiple variants

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.BatchUpdateVariantModel":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of variant to update","format":"int32"},"UpdateModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.UpdateVariantModel"}},"additionalProperties":false,"description":"Update model for a variant"},"Struct.App.Api.Models.Variant.UpdateVariantModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to move variant to","format":"int32","nullable":true},"IsArchived":{"type":"boolean","description":"Indicate whether the product shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving variant (if IsArchived is true)","format":"uuid","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of variant compared to other variants of the product","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"Sort order of variant compared to other variants in same variant group","format":"int32","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"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.\r\nThis means you should only set properties that shall be updated on the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}},"paths":{"/v1/variants":{"patch":{"tags":["Variants"],"summary":"Update multiple variants","requestBody":{"description":"Update model","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.BatchUpdateVariantModel"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## GET /v1/variants/identifiers/{identifierAlias}

> Get all identifiers and their internal ids for a specific identifier type

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/identifiers/{identifierAlias}":{"get":{"tags":["Variants"],"summary":"Get all identifiers and their internal ids for a specific identifier type","parameters":[{"name":"identifierAlias","in":"path","description":"Alias of identifier type","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}}}}}}
```

## GET /v1/variants/identifiers/{identifierAlias}/{identifier}

> Get the internal id of a variant based on its identifier

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/identifiers/{identifierAlias}/{identifier}":{"get":{"tags":["Variants"],"summary":"Get the internal id of a variant based on its identifier","parameters":[{"name":"identifierAlias","in":"path","description":"Alias of identifier type","required":true,"schema":{"type":"string"}},{"name":"identifier","in":"path","description":"Identifier value","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int32"}}}}}}}}}
```

## POST /v1/variants/batch/identifiers

> Get internal ids of multiple variants from their identifier

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Shared.IdentifierBatchModel":{"type":"object","properties":{"IdentifierAlias":{"type":"string","description":"The alias of the identifier","nullable":true},"Identifiers":{"type":"array","items":{"type":"string"},"description":"Array of identifiers to return internal ids for","nullable":true}},"additionalProperties":false,"description":"Provide an identifier alias along with an array of identifiers to get the internal entity ids matching those identifiers"}}},"paths":{"/v1/variants/batch/identifiers":{"post":{"tags":["Variants"],"summary":"Get internal ids of multiple variants from their identifier","requestBody":{"description":"Specify alias of identifier type and the identifiers to return internal ids for","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.IdentifierBatchModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}}}}}}
```

## GET /v1/variants/{id}/attributevalues

> Get attribute values for a variant

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantAttributeValuesModel":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of variant","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model containing requested variant attribute values"},"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"Type":{"type":"string","nullable":true},"Title":{"type":"string","nullable":true},"Status":{"type":"integer","format":"int32","nullable":true},"Detail":{"type":"string","nullable":true},"Instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/v1/variants/{id}/attributevalues":{"get":{"tags":["Variants"],"summary":"Get attribute values for a variant","parameters":[{"name":"id","in":"path","description":"Id of variant","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"globalListValueReferencesOnly","in":"query","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantAttributeValuesModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Get attribute values for multiple variants

> No more than 5000 variants can be requested at a time.

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantValuesRequestModel":{"type":"object","properties":{"VariantIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of products to return","nullable":true},"IncludeValues":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ValueIncludeMode"},"Scopes":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Scopes, define which scopes to return values for here","nullable":true},"Aliases":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Aliases, define aliases of the attributes to include values for","nullable":true},"Uids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"If IncludeValues is Uids, define uids of the attributes to include values for","nullable":true},"LimitToCultureCodes":{"type":"array","items":{"type":"string"},"description":"Only return values for specific languages","nullable":true},"LimitToSegments":{"type":"array","items":{"type":"string"},"description":"Only return values for specific dimension segments","nullable":true},"GlobalListValueReferencesOnly":{"type":"boolean","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values"},"FromTimestamp":{"type":"string","description":"Get attribute values back in time","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Define which categories to fetch data for and what data to fetch"},"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"},"Struct.App.Api.Models.Variant.VariantAttributeValuesModel":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of variant","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model containing requested variant attribute values"}}},"paths":{"/v1/variants/batch/attributevalues":{"post":{"tags":["Variants"],"summary":"Get attribute values for multiple variants","description":"No more than 5000 variants can be requested at a time.","requestBody":{"description":"Request model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantValuesRequestModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantAttributeValuesModel"}}}}}}}}}}
```

## Get references to a variant

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantReferences":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of the referenced variant","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this variant","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this variant","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this variant","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this variant","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this variant","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this variant","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a variant"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}},"paths":{"/v1/variants/{id}/references":{"get":{"tags":["Variants"],"summary":"Get references to a variant","description":"#Available from v.3.5.0","parameters":[{"name":"id","in":"path","description":"Id of variant","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantReferences"}}}}}}}}}
```

## Get references to a batch of variants

> \#Available from v.3.5.0> \
> No more than 5000 values can be requested at a time.

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.VariantReferences":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of the referenced variant","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this variant","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this variant","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this variant","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this variant","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this variant","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this variant","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a variant"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}},"paths":{"/v1/variants/batch/references":{"post":{"tags":["Variants"],"summary":"Get references to a batch of variants","description":"#Available from v.3.5.0\r\nNo more than 5000 values can be requested at a time.","requestBody":{"description":"Ids of variants","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantReferences"}}}}}}}}}}
```

## POST /v1/variants/search

> Get ids of variants matching certain criteria

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Shared.SearchModel":{"type":"object","properties":{"IncludeArchived":{"type":"boolean","description":"Include archived items in result"},"QueryModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Search model used for searching products or variants in PIM"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"}}},"paths":{"/v1/variants/search":{"post":{"tags":["Variants"],"summary":"Get ids of variants matching certain criteria","requestBody":{"description":"Query model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.SearchModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## POST /v1/variants/search/paged

> Get paged result of variants matching certain criteria. Result mapped with headers and item results

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Shared.SearchPagedModel":{"type":"object","properties":{"Page":{"type":"integer","format":"int32"},"PageSize":{"type":"integer","format":"int32","nullable":true},"FieldUids":{"type":"array","items":{"type":"string"},"nullable":true},"SortByFieldUid":{"type":"string","nullable":true},"SortDescending":{"type":"boolean","nullable":true},"IncludeArchived":{"type":"boolean","description":"Include archived items in result"},"QueryModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Extended search model used for searching products or variants in PIM with support for paging and sorting"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Shared.SearchResultModel":{"type":"object","properties":{"TotalHits":{"type":"integer","format":"int32"},"Page":{"type":"integer","format":"int32"},"PageSize":{"type":"integer","format":"int32"},"TotalPages":{"type":"integer","format":"int32"},"ItemListHeaders":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ItemListHeader"},"nullable":true},"ListItems":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ListItem"},"nullable":true}},"additionalProperties":false},"Struct.App.Api.Models.Shared.ItemListHeader":{"type":"object","properties":{"FieldUid":{"type":"string","nullable":true},"FieldName":{"type":"string","nullable":true},"FieldType":{"type":"string","nullable":true},"SupportsSearching":{"type":"boolean"},"SupportsSorting":{"type":"boolean"}},"additionalProperties":false},"Struct.App.Api.Models.Shared.ListItem":{"type":"object","properties":{"Id":{"type":"integer","format":"int32"},"ShownValues":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false}}},"paths":{"/v1/variants/search/paged":{"post":{"tags":["Variants"],"summary":"Get paged result of variants matching certain criteria. Result mapped with headers and item results","requestBody":{"description":"Query model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.SearchPagedModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.SearchResultModel"}}}}}}}}}
```

## GET /v1/variants/queryfields

> Get all available query fields in the PIM installation

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Shared.QueryableField":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of field in PIM","nullable":true},"Name":{"type":"string","description":"The display name of the field","nullable":true},"SupportsSorting":{"type":"boolean","description":"If true field can be used for sorting"}},"additionalProperties":false,"description":"Representation of a queryable field in PIM"}}},"paths":{"/v1/variants/queryfields":{"get":{"tags":["Variants"],"summary":"Get all available query fields in the PIM installation","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryableField"}}}}}}}}}}
```

## Get Enrichment Insights for a variant

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight":{"type":"object","properties":{"EnrichmentInsightSetupUid":{"type":"string","description":"Uid of enrichment insight","format":"uuid"},"EntityId":{"type":"integer","description":"Id of entity","format":"int32"},"Completeness":{"type":"integer","description":"Completeness in percentage (0 - 100). Is null, if ignored is true","format":"int32","nullable":true},"MissingData":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.InsightDataReference"},"description":"List of missing data for this entity to reach 100% completeness for this enrichment insight","nullable":true},"Ignored":{"type":"boolean","description":"Indicates whether the completeness is ignored for this entity and this enrichment insight"}},"additionalProperties":false,"description":"Model representing an entity's enrichment insight"},"Struct.App.Api.Models.EnrichmentInsight.InsightDataReference":{"type":"object","properties":{"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing an insights data reference"}}},"paths":{"/v1/variants/{id}/enrichmentinsights":{"get":{"tags":["Variants"],"summary":"Get Enrichment Insights for a variant","description":"#Available from v.3.5.0","parameters":[{"name":"id","in":"path","description":"Id of variant to get insights for","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}}
```

## Get Enrichment Insights for a batch of variants

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight":{"type":"object","properties":{"EnrichmentInsightSetupUid":{"type":"string","description":"Uid of enrichment insight","format":"uuid"},"EntityId":{"type":"integer","description":"Id of entity","format":"int32"},"Completeness":{"type":"integer","description":"Completeness in percentage (0 - 100). Is null, if ignored is true","format":"int32","nullable":true},"MissingData":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.InsightDataReference"},"description":"List of missing data for this entity to reach 100% completeness for this enrichment insight","nullable":true},"Ignored":{"type":"boolean","description":"Indicates whether the completeness is ignored for this entity and this enrichment insight"}},"additionalProperties":false,"description":"Model representing an entity's enrichment insight"},"Struct.App.Api.Models.EnrichmentInsight.InsightDataReference":{"type":"object","properties":{"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing an insights data reference"}}},"paths":{"/v1/variants/batch/enrichmentinsights":{"post":{"tags":["Variants"],"summary":"Get Enrichment Insights for a batch of variants","description":"#Available from v.3.5.0","requestBody":{"description":"Ids of variants to get insights for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}}
```

## Get insights for a batch of variants and a specific Enrichment Insight

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/batch/enrichmentinsights/{enrichmentInsightUid}":{"post":{"tags":["Variants"],"summary":"Get insights for a batch of variants and a specific Enrichment Insight","description":"#Available from v.3.5.0","parameters":[{"name":"enrichmentInsightUid","in":"path","description":"Uid of enrichment insight to get for batch of variants","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Ids of variants to get insights for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int32"}}}}}}}}}
```

## Enable or disable an enrichment insight for a variant

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}":{"patch":{"tags":["Variants"],"summary":"Enable or disable an enrichment insight for a variant","description":"#Available from v.3.5.0","parameters":[{"name":"id","in":"path","description":"Id of variant","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"enrichmentInsightSetupUid","in":"path","description":"Uid of enrichment insight to toggle ignore for","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ignore","in":"path","description":"Indicate whether to ignore the insight for the given enrichment insight and variant","required":true,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## Enable or disable an enrichment insight for a batch of variants

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variants/batch/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}":{"patch":{"tags":["Variants"],"summary":"Enable or disable an enrichment insight for a batch of variants","description":"#Available from v.3.5.0","parameters":[{"name":"enrichmentInsightSetupUid","in":"path","description":"Uid of enrichment insight to toggle ignore for","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ignore","in":"path","description":"Indicate whether to ignore the insight for the given enrichment insight and variants","required":true,"schema":{"type":"boolean"}}],"requestBody":{"description":"Ids of variants to toggle ignore for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## Get attributes which values are inherited from the product

> A maximum of 1000 products can be requested in one request

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Variant.InheritedAttributesRequestModel":{"type":"object","properties":{"ProductIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"The product ids to get inherited attributes for","nullable":true},"InheritedAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The attribute uids to get inherited attributes for","nullable":true}},"additionalProperties":false,"description":"Request model for getting inheritedAttributes for a list of products"},"Struct.App.Api.Models.Variant.InheritedAttributesResponseModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"The product id of the products that owns the attributeValues","format":"int32"},"VariantId":{"type":"integer","description":"The variant id that inherits the attributeValues","format":"int32"},"InheritedAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The attribute uids that are inherited","nullable":true}},"additionalProperties":false,"description":"Request model for getting inheritedAttributes for a list of products"}}},"paths":{"/v1/variants/inheritedAttributeValues":{"post":{"tags":["Variants"],"summary":"Get attributes which values are inherited from the product","description":"A maximum of 1000 products can be requested in one request","requestBody":{"description":"model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.InheritedAttributesRequestModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.InheritedAttributesResponseModel"}}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.struct.com/api-reference/endpoints/variants.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
