Skip to main content
Creating, retrieving, and assigning categories. The 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 custom section 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 categories
    • sortValue – 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 the filter[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, the withExternData=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 optional createMissing=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 value categoryId: “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 beforeTarget or afterTarget, it is placed on the same level before or after an existing category.
Only one target parameter may be set at a time. Create permissions for category data are required to use this endpoint.

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”).
For rule-based categories, the maximum number of assigned products is technically limited to 1,000 results, regardless of the number of products in the shop or the formulated rule.

GET categories/{categoryId}/products

This endpoint retrieves a list of all products that are assigned to a specific category by its ID. The parameters from 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 parameters from 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 the prodId 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 the prodId 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

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 the content.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).

Support

Bei technischen Fragen und Hilfestellungen ist unser Support-Team für Sie erreichbar: Zum Kundenportal Bitte senden Sie uns eine möglichst detaillierte Beschreibung sowie Screenshots, Requests/Antworten, damit wir Ihre Anfrage zeitnah und zielführend beantworten können.