Get Categories page
GET/catalog/categories
Returns a paginated list of catalog categories for the company resolved from gateway context. When status is omitted, only active categories are returned.
Optional has_parent restricts results to root categories (false) or to categories that have a parent (true). When parent_id is also supplied, has_parent is ignored.
Request
Query Parameters
true— only categories with a non-nullparent_idfalse— only root categories (parent_idis null)- omitted — no filter by parent presence (subject to other parameters)
Possible values: <= 128 characters
Pagination cursor (opaque token). Invalid or expired cursors yield 400 with code invalid_cursor.
Possible values: [active, inactive, all]
Default value: active
Filter categories by lifecycle status
Possible values: >= 2 characters and <= 128 characters
Case-insensitive text match (per service defaults) against fields exposed by the target list operation. For categories: category name and description. For regular goods: good-level and variation-level name and description, and values in each variation's codes (codes[].value, e.g. SKU or barcode).
Filter by parent category identifier
Filter by whether the category has a parent category.
When query parameter parent_id is present, has_parent is ignored.
Possible values: [created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, name_asc, name_desc]
Default value: created_at_asc
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- 500
- 503
OK
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Token of the next page of the list. null when there is no next page.
items
object[]
required
Possible values: >= 2 characters and <= 128 characters
Display name
Possible values: [active, inactive, unknown]
Default value: active
List of catalog category statuses
Possible values: >= 2 characters and <= 1024 characters
Additional information
external_data
object
nullable
External system reference data; null when no external link exists.
Possible values: >= 4 characters and <= 128 characters
Unique identifier in the external system
External system reference data; null when no external link exists.
Possible values: <= 2048 characters
Link to main image
Parent category identifier (nesting depth as in catalog domain)
Creation date and time. Format: ISO 8601
Update date and time. Format: ISO 8601
Archiving date and time. Format: ISO 8601
Possible values: >= 36 characters and <= 36 characters
Global unique identifier. Format: UUID (id) v4 ISO/IEC 11578:1996
{
"cursor": "aQvigECEB7y9rBL9ObjlA0z0KRmGgHmUPNkQ",
"items": [
{
"name": "Coffee",
"status": "active",
"description": "string",
"external_data": {
"id": "external-system-id-001"
},
"image_url": "string",
"parent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2026-07-28T10:03:43.366Z",
"updated_at": "2026-07-28T10:03:43.366Z",
"archived_at": "2026-07-28T10:03:43.366Z",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
}
Bad request — malformed syntax, invalid parameters, or failed validation.
Typical code values: validation_error, invalid_request.
List endpoints that accept a cursor parameter additionally return invalid_cursor when the cursor is invalid or expired.
- application/problem+json
- Schema
- Example (from schema)
- validation
Schema
Array [
]
Short human-readable summary
URI reference identifying the problem category
URI reference identifying the specific request that caused this error (e.g. the request path).
Correlation id for support (report when contacting support)
HTTP status code
Machine-readable code for client branching
Human-readable explanation (optional)
Stable extension when code is existing_entity_conflict. For a duplicate external_data.id within the company,
the value is duplicate_external_data_id.
errors
object
nullable
Present when code is validation_error. Keys are field names; values are arrays of human-readable error messages for that field.
property name*
string[]
nullable
string
{
"title": "string",
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"instance": "/api/catalog/goods/regular",
"trace_id": "00-84c1fd4063c38d9f3900d06e56542d48-85d1d4-00",
"status": 0,
"code": "validation_error",
"detail": "string",
"reason": "duplicate_external_data_id",
"errors": {
"uom_id": [
"'uom_id' must not be empty."
],
"vat": [
"'vat' must not be empty."
],
"variations": [
"'variations' must contain between 1 and 150 items."
]
}
}
{
"title": "One or more errors occurred.",
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"trace_id": "00-00000000000000000000000000000000-00000000-00",
"status": 400,
"instance": "/api/catalog/goods/regular",
"code": "validation_error",
"errors": {
"name": [
"'name' must not be empty."
]
}
}
Missing or invalid credentials before the gateway forwards context (when applicable). The response has no body (empty payload).
Caller is not allowed to access this resource or company. The response has no body (empty payload).
Resource not found or not visible for the resolved company. The response has no body (empty payload).
Rate limit exceeded.
Response Headers
Retry-After
integer
Seconds to wait before retrying
- application/problem+json
- Schema
- Example (from schema)
- rateLimit
Schema
Array [
]
Short human-readable summary
URI reference identifying the problem category
URI reference identifying the specific request that caused this error (e.g. the request path).
Correlation id for support (report when contacting support)
HTTP status code
Machine-readable code for client branching
Human-readable explanation (optional)
Stable extension when code is existing_entity_conflict. For a duplicate external_data.id within the company,
the value is duplicate_external_data_id.
errors
object
nullable
Present when code is validation_error. Keys are field names; values are arrays of human-readable error messages for that field.
property name*
string[]
nullable
string
{
"title": "string",
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"instance": "/api/catalog/goods/regular",
"trace_id": "00-84c1fd4063c38d9f3900d06e56542d48-85d1d4-00",
"status": 0,
"code": "validation_error",
"detail": "string",
"reason": "duplicate_external_data_id",
"errors": {
"uom_id": [
"'uom_id' must not be empty."
],
"vat": [
"'vat' must not be empty."
],
"variations": [
"'variations' must contain between 1 and 150 items."
]
}
}
{
"title": "Too Many Requests",
"type": "https://tools.ietf.org/html/rfc6585#section-4",
"trace_id": "00-00000000000000000000000000000000-00000000-00",
"status": 429,
"code": "unexpected_error"
}
Unexpected server error.
- application/problem+json
- Schema
- Example (from schema)
- unexpected
Schema
Array [
]
Short human-readable summary
URI reference identifying the problem category
URI reference identifying the specific request that caused this error (e.g. the request path).
Correlation id for support (report when contacting support)
HTTP status code
Machine-readable code for client branching
Human-readable explanation (optional)
Stable extension when code is existing_entity_conflict. For a duplicate external_data.id within the company,
the value is duplicate_external_data_id.
errors
object
nullable
Present when code is validation_error. Keys are field names; values are arrays of human-readable error messages for that field.
property name*
string[]
nullable
string
{
"title": "string",
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"instance": "/api/catalog/goods/regular",
"trace_id": "00-84c1fd4063c38d9f3900d06e56542d48-85d1d4-00",
"status": 0,
"code": "validation_error",
"detail": "string",
"reason": "duplicate_external_data_id",
"errors": {
"uom_id": [
"'uom_id' must not be empty."
],
"vat": [
"'vat' must not be empty."
],
"variations": [
"'variations' must contain between 1 and 150 items."
]
}
}
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
"trace_id": "00-00000000000000000000000000000000-00000000-00",
"status": 500,
"code": "internal_server_error"
}
Service temporarily unavailable.
- application/problem+json
- Schema
- Example (from schema)
- unavailable
Schema
Array [
]
Short human-readable summary
URI reference identifying the problem category
URI reference identifying the specific request that caused this error (e.g. the request path).
Correlation id for support (report when contacting support)
HTTP status code
Machine-readable code for client branching
Human-readable explanation (optional)
Stable extension when code is existing_entity_conflict. For a duplicate external_data.id within the company,
the value is duplicate_external_data_id.
errors
object
nullable
Present when code is validation_error. Keys are field names; values are arrays of human-readable error messages for that field.
property name*
string[]
nullable
string
{
"title": "string",
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"instance": "/api/catalog/goods/regular",
"trace_id": "00-84c1fd4063c38d9f3900d06e56542d48-85d1d4-00",
"status": 0,
"code": "validation_error",
"detail": "string",
"reason": "duplicate_external_data_id",
"errors": {
"uom_id": [
"'uom_id' must not be empty."
],
"vat": [
"'vat' must not be empty."
],
"variations": [
"'variations' must contain between 1 and 150 items."
]
}
}
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.6.4",
"trace_id": "00-00000000000000000000000000000000-00000000-00",
"status": 503
}