Skip to content

Create a category

View as Markdown
post /api/categories

Creates a Category resource.

Creates a category. Set its status, optionally a name, and optionally a parent to nest it under an existing category, plus the products to classify under it.

Headers

NameTypeRequiredDescription
Flowkiwi-Localestring-Specifies the locale for properties that support localization. If not provided, the default locale will be used.

Request body

PropertyTypeRequiredDescription
childrensstring[]-A list of direct child Category IRIs nested under this category. Requires the categories:read scope. Returned empty when the scope is missing.
namestring | null-The name of the category.
parentstring | null-The parent Category to which this category belongs, if any. Requires the categories:read scope. Returned null when the scope is missing.
productsstring[]-List of products associated with the category. Requires the products:read scope. Returned empty when the scope is missing.
status"/api/statuses/DRAFT" | "/api/statuses/ACTIVE" | "/api/statuses/ARCHIVED"requiredThe status of the category.

Response

201 - Category resource created

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
childrensarray-A list of direct child Category, each one representing a category under this one. Serialized as IRI strings by default; pass ?expand=children to embed direct children (one level only). Requires the categories:read scope. Returned empty when the scope is missing.
createdAtstring-Creation date of the resource (ISO 8601 format).
idstring-The resource's unique identifier (UUID).
namestring | null-This property supports translations.

The name of the category.
parentstring | Category | null-The parent Category to which this category belongs, if any. Serialized as IRI string by default; pass ?expand=parent to embed the direct parent (one level only). Requires the categories:read scope. Returned null when the scope is missing.
productsstring[]-List of products associated with the category. Requires the products:read scope. Returned empty when the scope is missing.
status"/api/statuses/DRAFT" | "/api/statuses/ACTIVE" | "/api/statuses/ARCHIVED"-The status of the category.
updatedAtstring-Last modification date of the resource (ISO 8601 format).

Errors

400 - Invalid input

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
codestring-Stable identifier of the error in the error code catalogue (see /api/error-codes). Present on catalogued errors only.
descriptionstring | null-
detailstring | null-A human-readable explanation specific to this occurrence of the problem.
instancestring | null-A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
messagestring-End-user message localized in the request locale, with this occurrence's values substituted. Present on catalogued errors only.
slugstring-Stable, readable key of the error in the error code catalogue. Present on catalogued errors only.
statusinteger | null-
titlestring | null-A short, human-readable summary of the problem. For a catalogued error it repeats the slug.
typestring-A URI reference that identifies the problem type. For a catalogued error it is the error code resource, /api/error-codes/{code}.

403 - Access denied. The caller is missing one or more permissions required for this operation.

Content-Type: application/problem+json

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
detailstring-
missingPermissionsstring[]-Permissions that the caller is missing for this operation. Present only when the 403 is caused by a denied permission.
statusinteger-
titlestring-
typestring-

422 - An error occurred

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
descriptionstring-
detailstring-
instancestring | null-
statusinteger-
titlestring | null-
typestring-
violationsobject[]-
Show violations fields
PropertyTypeRequiredDescription
codestring-The code of the violation
hintstring-An extra hint to understand the violation
messagestringrequiredThe message associated with the violation
parametersobject-Dynamic placeholder values for the violation message template (substitute into the code catalogue message).
payloadobject-The serialized payload of the violation
propertyPathstringrequiredThe property path of the violation
slugstring-Stable centralized error-code slug for this violation (see /api/error-codes).