# Catalogues

Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories. Different catalogues can be used for different assortments, category structures etc.

## GET /v1/catalogues/uids

> Get Uids of all catalogues in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/catalogues/uids":{"get":{"tags":["Catalogues"],"summary":"Get Uids of all catalogues in the system","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","format":"uuid"}}}}}}}}}}
```

## GET /v1/catalogues

> Get all catalogues in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CatalogueModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of catalogue","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias for the catalogue","nullable":true},"Label":{"type":"string","description":"Label of catalogue displayed in the backoffice","nullable":true},"IsMaster":{"type":"boolean","description":"Indicates whether this catalogue is the master catalogue (only one master catalogue can exist in the system)"},"SortOrder":{"type":"integer","description":"Sort order of the catalogue compared to other catalogues","format":"int32"},"IdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a category number in an external system and the internal id of a category of this catalogue in the system","nullable":true},"Configuration":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryConfigurationModel"},"BusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"This business units this catalogue is associated with","nullable":true}},"additionalProperties":false,"description":"Represents a catalogue in the PIM system"},"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"},"Struct.App.Api.Models.Catalogue.CategoryConfigurationModel":{"type":"object","properties":{"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on categories using this category configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The catalogue configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"},"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/catalogues":{"get":{"tags":["Catalogues"],"summary":"Get all catalogues in the system","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Create new catalogue

> \#Available from v.3.3.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CatalogueModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of catalogue","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias for the catalogue","nullable":true},"Label":{"type":"string","description":"Label of catalogue displayed in the backoffice","nullable":true},"IsMaster":{"type":"boolean","description":"Indicates whether this catalogue is the master catalogue (only one master catalogue can exist in the system)"},"SortOrder":{"type":"integer","description":"Sort order of the catalogue compared to other catalogues","format":"int32"},"IdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a category number in an external system and the internal id of a category of this catalogue in the system","nullable":true},"Configuration":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryConfigurationModel"},"BusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"This business units this catalogue is associated with","nullable":true}},"additionalProperties":false,"description":"Represents a catalogue in the PIM system"},"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"},"Struct.App.Api.Models.Catalogue.CategoryConfigurationModel":{"type":"object","properties":{"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on categories using this category configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The catalogue configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"},"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/catalogues":{"post":{"tags":["Catalogues"],"summary":"Create new catalogue","description":"#Available from v.3.3.0","requestBody":{"description":"Catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## DELETE /v1/catalogues

>

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/catalogues":{"delete":{"tags":["Catalogues"],"parameters":[{"name":"catalogueUid","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## Update a catalogue

> \#Available from v.3.3.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CatalogueModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of catalogue","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias for the catalogue","nullable":true},"Label":{"type":"string","description":"Label of catalogue displayed in the backoffice","nullable":true},"IsMaster":{"type":"boolean","description":"Indicates whether this catalogue is the master catalogue (only one master catalogue can exist in the system)"},"SortOrder":{"type":"integer","description":"Sort order of the catalogue compared to other catalogues","format":"int32"},"IdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a category number in an external system and the internal id of a category of this catalogue in the system","nullable":true},"Configuration":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryConfigurationModel"},"BusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"This business units this catalogue is associated with","nullable":true}},"additionalProperties":false,"description":"Represents a catalogue in the PIM system"},"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"},"Struct.App.Api.Models.Catalogue.CategoryConfigurationModel":{"type":"object","properties":{"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on categories using this category configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The catalogue configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"},"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/catalogues":{"patch":{"tags":["Catalogues"],"summary":"Update a catalogue","description":"#Available from v.3.3.0","requestBody":{"description":"Catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## GET /v1/catalogues/{uid}

> Get catalogue by its Uid

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Catalogue.CatalogueModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of catalogue","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias for the catalogue","nullable":true},"Label":{"type":"string","description":"Label of catalogue displayed in the backoffice","nullable":true},"IsMaster":{"type":"boolean","description":"Indicates whether this catalogue is the master catalogue (only one master catalogue can exist in the system)"},"SortOrder":{"type":"integer","description":"Sort order of the catalogue compared to other catalogues","format":"int32"},"IdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a category number in an external system and the internal id of a category of this catalogue in the system","nullable":true},"Configuration":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryConfigurationModel"},"BusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"This business units this catalogue is associated with","nullable":true}},"additionalProperties":false,"description":"Represents a catalogue in the PIM system"},"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"},"Struct.App.Api.Models.Catalogue.CategoryConfigurationModel":{"type":"object","properties":{"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on categories using this category configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The catalogue configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"},"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/catalogues/{uid}":{"get":{"tags":["Catalogues"],"summary":"Get catalogue by its Uid","parameters":[{"name":"uid","in":"path","description":"Unique id of catalogue","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Get all categories in a catalogue

> 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":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"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."},"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/catalogues/{uid}/descendants":{"get":{"tags":["Catalogues"],"summary":"Get all categories in a catalogue","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":"uid","in":"path","description":"Unique id of catalogue","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","description":"Max number of categories til return","schema":{"type":"integer","format":"int32","default":1000}},{"name":"afterId","in":"query","description":"Only return categories with id larger than this","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoriesResultSet"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## GET /v1/catalogues/{uid}/children

> Get all children to a catalogue

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"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/catalogues/{uid}/children":{"get":{"tags":["Catalogues"],"summary":"Get all children to a catalogue","parameters":[{"name":"uid","in":"path","description":"Unique id of catalogue","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryModel"}}}}}}}}}}
```


---

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