# Categories

Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications

## Get ids of all categories in the system

> Categories are used to organize products within catalogues. Categories can be nested in a hierarchy structure of any depth. The catalogue data model defines attributes which can hold data for each category.> \
> Attributes can be attached to categories in the master catalogue to define a structure of attributes available to products depending on their category placement in the master catalogue.

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/ids":{"get":{"tags":["Categories"],"summary":"Get ids of all categories in the system","description":"Categories are used to organize products within catalogues. Categories can be nested in a hierarchy structure of any depth. The catalogue data model defines attributes which can hold data for each category.\r\nAttributes can be attached to categories in the master catalogue to define a structure of attributes available to products depending on their category placement in the master catalogue.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## Get basic models for categories

> No more than 5000 categories can be requested at a time. If no limit is provided, the default limit of 1000 will be used

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoriesResultSet":{"type":"object","properties":{"Categories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryModel"},"description":"List of categories 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 categories from a category query"},"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories":{"get":{"tags":["Categories"],"summary":"Get basic models for categories","description":"No more than 5000 categories can be requested at a time. If no limit is provided, the default limit of 1000 will be used","parameters":[{"name":"limit","in":"query","description":"Number of categories to return","schema":{"type":"integer","format":"int32","default":1000}},{"name":"afterId","in":"query","description":"Only get categories with id larger than this id","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoriesResultSet"}}}}}}}}}
```

## Create new categories

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

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CreateCategoryModel":{"type":"object","properties":{"CatalogueUid":{"type":"string","description":"Uid of catalogue to add category to","format":"uuid"},"ParentId":{"type":"integer","description":"Id of parent id to place category underneath (set as null, of category shall be at root level of catalogue)","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of category compared to other categories at the same level i the catalogue","format":"int32","nullable":true},"Dynamic":{"type":"boolean","description":"Set if products for this category is found by search query set on category","nullable":true},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the category","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 category","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 category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories":{"post":{"tags":["Categories"],"summary":"Create new categories","description":"A maximum of 5000 categories can be created in one request","requestBody":{"description":"Categories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CreateCategoryModel"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## DELETE /v1/categories

> Delete multiple categories

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories":{"delete":{"tags":["Categories"],"summary":"Delete multiple categories","requestBody":{"description":"Delete model","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## Update multiple categories

> A maximum of 5000 categories can be updated in one request

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.UpdateCategoryModel":{"type":"object","properties":{"SortOrder":{"type":"integer","description":"Set to update sort order of category compared to other categories at the same level in the catalogue (set as null if you do not want to update this)","format":"int32","nullable":true},"MoveCommand":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryMoveModel"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the category","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 representing a category update"},"Struct.App.Api.Models.Catalogue.CategoryMoveModel":{"type":"object","properties":{"ParentId":{"type":"integer","description":"New parent id of category","format":"int32","nullable":true},"CatalogueUid":{"type":"string","description":"New catalogue uid of category","format":"uuid"}},"additionalProperties":false,"description":"Model to represent move operation of category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories":{"patch":{"tags":["Categories"],"summary":"Update multiple categories","description":"A maximum of 5000 categories can be updated in one request","requestBody":{"description":"Update model","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.UpdateCategoryModel"}}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## GET /v1/categories/{id}

> Get basic model for a category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories/{id}":{"get":{"tags":["Categories"],"summary":"Get basic model for a category","parameters":[{"name":"id","in":"path","description":"Id of category","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryModel"}}}}}}}}}
```

## DELETE /v1/categories/{id}

> Delete a category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/{id}":{"delete":{"tags":["Categories"],"summary":"Delete a category","parameters":[{"name":"id","in":"path","description":"Id of category to delete","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/categories/{id}

> Update category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.UpdateCategoryModel":{"type":"object","properties":{"SortOrder":{"type":"integer","description":"Set to update sort order of category compared to other categories at the same level in the catalogue (set as null if you do not want to update this)","format":"int32","nullable":true},"MoveCommand":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryMoveModel"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the category","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 representing a category update"},"Struct.App.Api.Models.Catalogue.CategoryMoveModel":{"type":"object","properties":{"ParentId":{"type":"integer","description":"New parent id of category","format":"int32","nullable":true},"CatalogueUid":{"type":"string","description":"New catalogue uid of category","format":"uuid"}},"additionalProperties":false,"description":"Model to represent move operation of category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories/{id}":{"patch":{"tags":["Categories"],"summary":"Update category","parameters":[{"name":"id","in":"path","description":"Id of category to update","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"Update model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.UpdateCategoryModel"}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## Get basic model for a batch of categories

> \#Available from v.3.2.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories/batch":{"post":{"tags":["Categories"],"summary":"Get basic model for a batch of categories","description":"#Available from v.3.2.0","requestBody":{"description":"Ids of categories to return","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.Catalogue.CategoryModel"}}}}}}}}}}
```

## GET /v1/categories/{id}/children

> Get child categories of a specific category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories/{id}/children":{"get":{"tags":["Categories"],"summary":"Get child categories of a specific category","parameters":[{"name":"id","in":"path","description":"Id of category to get children 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.Catalogue.CategoryModel"}}}}}}}}}}
```

## POST /v1/categories/batch/children

> Get child categories for a range categories

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"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.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/categories/batch/children":{"post":{"tags":["Categories"],"summary":"Get child categories for a range categories","requestBody":{"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.Catalogue.CategoryModel"}}}}}}}}}}
```

## GET /v1/categories/{id}/products

> Get ids of products in a category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/{id}/products":{"get":{"tags":["Categories"],"summary":"Get ids of products in a category","parameters":[{"name":"id","in":"path","description":"Id of category to get products for","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"includeArchived","in":"query","description":"Include archived products","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## POST /v1/categories/batch/products

> Get ids of products in a categories

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryProductsModel":{"type":"object","properties":{"CategoryIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Category ids to request products for","nullable":true},"IncludeArchived":{"type":"boolean","description":"Indicate whether archibed products shall also be included"}},"additionalProperties":false,"description":"Wrapper for product children batch query"}}},"paths":{"/v1/categories/batch/products":{"post":{"tags":["Categories"],"summary":"Get ids of products in a categories","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryProductsModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}}
```

## GET /v1/categories/{id}/products/count

> Get the number of products in a category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/{id}/products/count":{"get":{"tags":["Categories"],"summary":"Get the number of products in a category","parameters":[{"name":"id","in":"path","description":"Id of category to get product count for","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"includeArchived","in":"query","description":"Include archived products in count","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int32"}}}}}}}}}
```

## POST /v1/categories/batch/products/count

> Get the number of products in a batch of categories

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryProductsModel":{"type":"object","properties":{"CategoryIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Category ids to request products for","nullable":true},"IncludeArchived":{"type":"boolean","description":"Indicate whether archibed products shall also be included"}},"additionalProperties":false,"description":"Wrapper for product children batch query"}}},"paths":{"/v1/categories/batch/products/count":{"post":{"tags":["Categories"],"summary":"Get the number of products in a batch of categories","requestBody":{"description":"Categories to get number of products for","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryProductsModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}}}}}}
```

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

> Use to get a map from an identifier to the internal id of a category in the system. Identifiers are based on attribute values that hold references to external systems.> \
> Thus, the identifier can be the id of the category in an external system. You can then use this map to know which category id to update or delete based on the id of the corresponding> \
> category in the external system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/identifiers/{identifierAlias}":{"get":{"tags":["Categories"],"summary":"Get all identifiers and their internal ids for a specific identifier type","description":"Use to get a map from an identifier to the internal id of a category in the system. Identifiers are based on attribute values that hold references to external systems.\r\nThus, the identifier can be the id of the category in an external system. You can then use this map to know which category id to update or delete based on the id of the corresponding\r\ncategory in the external system","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 the internal id of a category based on its identifier

> Use to get a map from an identifier to the internal id of a category in the system. Identifiers are based on attribute values that hold references to external systems.> \
> Thus, the identifier can be the id of the category in an external system. You can then use this map to know which category id to update or delete based on the id of the corresponding> \
> category in the external system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/identifiers/{identifierAlias}/{identifier}":{"get":{"tags":["Categories"],"summary":"Get the internal id of a category based on its identifier","description":"Use to get a map from an identifier to the internal id of a category in the system. Identifiers are based on attribute values that hold references to external systems.\r\nThus, the identifier can be the id of the category in an external system. You can then use this map to know which category id to update or delete based on the id of the corresponding\r\ncategory in the external system","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"}}}}}}}}}
```

## Get internal ids of multiple categories from their identifier

> Use to get a map from an identifier to the internal id of a category in the system. Identifiers are based on attribute values that hold references to external systems.> \
> Thus, the identifier can be the id of the category in an external system. You can then use this map to know which category id to update or delete based on the id of the corresponding> \
> category in the external system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/batch/identifiers":{"post":{"tags":["Categories"],"summary":"Get internal ids of multiple categories from their identifier","description":"Use to get a map from an identifier to the internal id of a category in the system. Identifiers are based on attribute values that hold references to external systems.\r\nThus, the identifier can be the id of the category in an external system. You can then use this map to know which category id to update or delete based on the id of the corresponding\r\ncategory in the external system","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/categories/{id}/attributevalues

> Get attribute values for the category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryAttributeValuesModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category","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":"Category attribute values container"},"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/categories/{id}/attributevalues":{"get":{"tags":["Categories"],"summary":"Get attribute values for the category","parameters":[{"name":"id","in":"path","description":"Id of category","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.Catalogue.CategoryAttributeValuesModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## PATCH /v1/categories/{id}/attributevalues

>

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/{id}/attributevalues":{"patch":{"tags":["Categories"],"summary":"","parameters":[{"name":"id","in":"path","description":"Id of category","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"Dictionary of attribute values to update","content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## Get attribute values for multiple categories

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

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryValueRequestModel":{"type":"object","properties":{"CategoryIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of categories 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.Catalogue.CategoryAttributeValuesModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category","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":"Category attribute values container"},"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/categories/batch/attributevalues":{"post":{"tags":["Categories"],"summary":"Get attribute values for multiple categories","description":"No more than 5000 categories can be requested at a time.","requestBody":{"description":"Request model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryValueRequestModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryAttributeValuesModel"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Update attribute values on multiple categories

> A maximum of 5000 categories can be updated in one request

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryAttributeValuesModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category","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":"Category attribute values container"}}},"paths":{"/v1/categories/attributevalues":{"patch":{"tags":["Categories"],"summary":"Update attribute values on multiple categories","description":"A maximum of 5000 categories can be updated in one request","requestBody":{"description":"Update model","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryAttributeValuesModel"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## GET /v1/categories/productattributes

> Get product attributes on category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.AttributeAttachment":{"type":"object","properties":{"AttributeUid":{"type":"string","description":"Uid of attribute","format":"uuid"},"CategoryId":{"type":"integer","description":"Id of category to which the attribute is connected","format":"int32"},"Owner":{"type":"integer","description":"Id of the category at which this connection originates (will be different from category id if this attachment is inherited from a higher level category)","format":"int32"},"EditableOnEntities":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities"},"SortOrder":{"type":"integer","description":"Sort order of the attribute","format":"int32","nullable":true}},"additionalProperties":false,"description":"Represents an attribute connection to a category in the master catalogue"},"Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities":{"enum":[0,1,2,3],"type":"integer","description":"Represents where attributes added to categories are editable on entities placed in that category \n\n- `0` = **ProductAndVariant**: Attributes are editable on both products and variants\n- `1` = **Product**: Attributes are editable on products only\n- `2` = **Variant**: Attributes are editable on variants only\n- `3` = **None**: Attributes are not editable on any entity","format":"int32"}}},"paths":{"/v1/categories/productattributes":{"get":{"tags":["Categories"],"summary":"Get product attributes on category","parameters":[{"name":"categoryId","in":"query","description":"Id of category to get attached attributes from","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.AttributeAttachment"}}}}}}}}}}
```

## POST /v1/categories/productattributes

> Attach attribute to a category, which is to be visible to products in that category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities":{"enum":[0,1,2,3],"type":"integer","description":"Represents where attributes added to categories are editable on entities placed in that category \n\n- `0` = **ProductAndVariant**: Attributes are editable on both products and variants\n- `1` = **Product**: Attributes are editable on products only\n- `2` = **Variant**: Attributes are editable on variants only\n- `3` = **None**: Attributes are not editable on any entity","format":"int32"},"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/categories/productattributes":{"post":{"tags":["Categories"],"summary":"Attach attribute to a category, which is to be visible to products in that category","parameters":[{"name":"categoryId","in":"query","description":"Id of category to attach attribute to","schema":{"type":"integer","format":"int32"}},{"name":"attributeUid","in":"query","description":"Uid of attribute to attach","schema":{"type":"string","format":"uuid"}},{"name":"editableOnEntities","in":"query","description":"Editable on product and/or variant","schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities"}},{"name":"sortOrder","in":"query","description":"Sort order of attribute on category","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## DELETE /v1/categories/productattributes

> Remove a product attribute from a category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/productattributes":{"delete":{"tags":["Categories"],"summary":"Remove a product attribute from a category","parameters":[{"name":"categoryId","in":"query","description":"Id of category the attribute is attached to","schema":{"type":"integer","format":"int32"}},{"name":"attributeUid","in":"query","description":"Uid of attached attribute","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/categories/productattributes

> Update attribute on a category

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities":{"enum":[0,1,2,3],"type":"integer","description":"Represents where attributes added to categories are editable on entities placed in that category \n\n- `0` = **ProductAndVariant**: Attributes are editable on both products and variants\n- `1` = **Product**: Attributes are editable on products only\n- `2` = **Variant**: Attributes are editable on variants only\n- `3` = **None**: Attributes are not editable on any entity","format":"int32"}}},"paths":{"/v1/categories/productattributes":{"patch":{"tags":["Categories"],"summary":"Update attribute on a category","parameters":[{"name":"categoryId","in":"query","description":"Id of category the attribute is attached to","schema":{"type":"integer","format":"int32"}},{"name":"attributeUid","in":"query","description":"Uid of attached attribute","schema":{"type":"string","format":"uuid"}},{"name":"editableOnEntities","in":"query","description":"Editable on product and/or variant","schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities"}},{"name":"sortOrder","in":"query","description":"Sort order of attribute on category","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## Get references to a category

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryReferences":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of the referenced category","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this category","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this category","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this category","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this category","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this category","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this category","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a category"},"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/categories/{id}/references":{"get":{"tags":["Categories"],"summary":"Get references to a category","description":"#Available from v.3.5.0","parameters":[{"name":"id","in":"path","description":"Id of category","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryReferences"}}}}}}}}}
```

## Get references to a batch of categories

> \#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":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CategoryReferences":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of the referenced category","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this category","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this category","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this category","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this category","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this category","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this category","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a category"},"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/categories/batch/references":{"post":{"tags":["Categories"],"summary":"Get references to a batch of categories","description":"#Available from v.3.5.0\r\nNo more than 5000 values can be requested at a time.","requestBody":{"description":"Ids of categories","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.Catalogue.CategoryReferences"}}}}}}}}}}
```

## Get Enrichment Insights for a category

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/{id}/enrichmentinsights":{"get":{"tags":["Categories"],"summary":"Get Enrichment Insights for a category","description":"#Available from v.3.5.0","parameters":[{"name":"id","in":"path","description":"Id of category 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 categories

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/batch/enrichmentinsights":{"post":{"tags":["Categories"],"summary":"Get Enrichment Insights for a batch of categories","description":"#Available from v.3.5.0","requestBody":{"description":"Ids of categories to get insights for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}
```

## Get insights for a batch of categories 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":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/batch/enrichmentinsights/{enrichmentInsightUid}":{"post":{"tags":["Categories"],"summary":"Get insights for a batch of categories 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 categories","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Ids of categories to get insights for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}
```

## Enable or disable an enrichment insight for a category

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}":{"patch":{"tags":["Categories"],"summary":"Enable or disable an enrichment insight for a category","description":"#Available from v.3.5.0","parameters":[{"name":"id","in":"path","description":"Id of category","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 category","required":true,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"}}}}}}
```

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

> \#Available from v.3.5.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/categories/batch/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}":{"patch":{"tags":["Categories"],"summary":"Enable or disable an enrichment insight for a batch of categories","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 categories","required":true,"schema":{"type":"boolean"}}],"requestBody":{"description":"Ids of categories to toggle ignore for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## POST /v1/categories/search

> Get ids of categories matching certain criteria

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/search":{"post":{"tags":["Categories"],"summary":"Get ids of categories 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/categories/search/paged

> Get paged result of categories 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":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/search/paged":{"post":{"tags":["Categories"],"summary":"Get paged result of categories 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/categories/queryablefields

> 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":"Categories","description":"Categories are used to create hierarchical structures within a catalogue.Categories serves as a means for structuring products in meaningful classifications"}],"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/categories/queryablefields":{"get":{"tags":["Categories"],"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"}}}}}}}}}}
```
