categories/ endpoint provides you with an interface for managing category data in our shop system. With this interface, you can retrieve, create, and delete categories and assign products to categories.
Supported methods
List of all supported methods.Data fields of a category (Category Resource)
The data fields of a category are managed in the configuration and stored internally as a JSON object.A distinction is made between the following field types:
- Standard fields: Predefined by the system and always present (e.g.
id,name,descr,hidden) - User-defined fields: Can be created flexibly and are located in the
customsection of the object - Technical fields for structure representation: Used to represent the category structure in the shop
These include:_parent– ID of the parent category_children– List of subordinate categoriessortValue– technical sort value to determine the actual order in the shop
Additional fields
Example data record
Methods for categories
GET categories
This endpoint returns a list of categories from the shop system. Sorting, text search, or complex filtering is currently not possible. However, subcategories of a specific category can be filtered by using thefilter[parent] parameter.
If parent=root is set, all main top-level categories are returned.
With the withExternData=yes parameter, the IDs of the parent category (_parent) and the child categories (_children) can additionally be loaded.
With subshopId, the categories of a specific subshop can be queried.
Read permissions for category data are required to use this endpoint.
Example
Response
Filter fields
parent
Sort fields
Not supported
Error codes
GET categories/{categoryId}
This endpoint loads the complete data of a single category by its ID. Optionally, thewithExternData=yes parameter can be used to additionally include the ID of the parent category (_parent) and the list of all directly subordinate categories (_children).
Read permissions for category data are required to use the endpoint.
Example
Response
Error codes
PUT categories/{categoryId}
This endpoint can be used to update an existing category by its ID. The request body only needs to contain the fields that are actually to be changed — a complete category definition is not required. If the optionalcreateMissing=yes parameter is set and no category with the specified ID exists, a new category with this ID is created instead.
Write permissions for category data are required to use this endpoint.
Example
Request body
Response
Error codes
PUT categories/{categoryId}/assign
This endpoint can be used to assign multiple subcategories to an existing category by its ID. The special valuecategoryId: “root” causes the categories to be placed at the top level as main categories.
In the request body, an array of category IDs must be passed, which should be assigned as subordinate (_children) to the specified category.
Write permissions for category data are required to use this endpoint.
Example
Request body
Response
Error codes
POST categories/{categoryId}/move
This endpoint can be used to move an existing category by its ID within the category structure. Positioning is done either by assigning as a subcategory (intoTarget) or by sorting on the same level (beforeTarget or afterTarget). Only one of these target parameters may be set.
Write permissions for category data are required to use this endpoint.
Example
Request body
Response
Error codes
POST categories/{categoryId}/setRule
This endpoint can be used to assign multiple products to an existing category by its ID. In the request body, an array of rules serialized as JSON must be passed. Products that match the rules are assigned to the category.rebuilt in the response indicates whether the rule could be applied immediately. If the value is false, it will be retried later — the endpoint does not need to be triggered again.
Write permissions for category data are required to use this endpoint.
Example
Request body
Response
Error codes
POST categories/rebuildRules
This endpoint updates products in categories with rule-based product assignment. Write permissions for category data are required to use this endpoint.Example
Request body
Response
Error codes
POST categories
This endpoint can be used to create a new category in the shop system.The optional parameters
intoTarget, beforeTarget, or afterTarget can be used to specify where the new category should be placed in the category structure:
- With
intoTarget, it is created as a subcategory of an existing category. - The special value
intoTarget: "root"causes the new category to be created as a main category at the top level. - With
beforeTargetorafterTarget, it is placed on the same level before or after an existing category.
Example
Request body
Response
Error codes
DELETE categories/{categoryId}
This endpoint can be used to delete an existing category by its ID.This removes not only the selected category itself but also all associated subcategories from the system. Delete permissions for category data are required to use this endpoint.
Example
Response
Error codes
Methods for product assignment
Technical limits
Products can be assigned to categories either manually or rule-based:- Manual assignment means that specific products are deliberately assigned to individual categories (e.g. “Product A belongs to Category B”).
- Rule-based assignment allows categories to be automatically filled with products that meet certain criteria (e.g. “all reduced products” or “all products with stock > 0”).
GET categories/{categoryId}/products
This endpoint retrieves a list of all products that are assigned to a specific category by its ID. The parametersfrom and size are used to split large result sets into pages — so that the API does not have to transmit, for example, 10,000 products at once. from specifies how many entries are skipped at the beginning, size specifies the maximum number of products returned.
Additionally, with the optional textSearch parameter, a text search can be performed within the assigned products.
Read permissions for category data are required to use this endpoint.
Example
Response
Filter fields
not supported
Sort fields
productId (does not need to be specified explicitly. sort:asc or sort:desc is sufficient)
Error codes
GET categories/products/unassigned
This endpoint retrieves a list of all products that are currently not assigned to any category. The parametersfrom and size are used to split large result sets into pages — so that the API does not have to transmit, for example, 10,000 products at once. from specifies how many entries are skipped at the beginning, size specifies the maximum number of products returned.
The optional textSearch parameter enables a text search within the unassigned products.
Read permissions for category data are required to use this endpoint.
Example
Response
Filter fields
not supported
Sort fields
productId (does not need to be specified explicitly.sort:ascorsort:desc is sufficient)
Error codes
POST categories/{categoryId}/products/assign
This endpoint can be used to assign one or more products by their product IDs to a specific category by its category ID. The product IDs are passed in theprodId field — either as a string (a single product) or as an array of strings (multiple products).
Optionally, with the parameters beforeTarget or afterTarget, you can specify the position within the category where the products should be placed. Both must not be set simultaneously.
Write permissions for category data are required to use this endpoint.
Example
Request body
Response
Error codes
POST categories/{categoryId}/products/swap
This endpoint makes it possible to swap the position of two products within a specific category. The product IDs are passed in the request body. The response indicates whether the swap could be performed successfully. Write permissions for category data are required to use this endpoint.Example
Request body
Response
Error codes
DELETE categories/{categoryId}/products/{productId}
This endpoint removes a product by its ID from a specific category by its ID. This removes the link between product and category — the product itself remains in the system but is no longer assigned to this category. Write permissions for category data are required to use this endpoint.Example
Response
Error codes
DELETE categories/{categoryId}/products/
This endpoint can be used to remove multiple products at once from a specific category by its ID. The product IDs to be removed are passed as an array in theprodId field.This removes the assignment of the products to the specified category — the products themselves remain in the system. Write permissions for category data are required to use this endpoint.
Example
Request body
Response
Error codes
Related references
Note on category data fields
New category data fields (additional descriptions, images, etc.) cannot be created directly via the category API. The API serves exclusively for reading and maintaining existing fields. To define new fields, the configuration in thecontent.customCategoryField node must be used. → content - catalog (categories & products)
Individual fields can be defined there. Once a field has been configured there, it is automatically available afterwards in the product API (e.g. in GET categories or POST categories).
