parentId — and are ideal for powering storefront navigation trees, faceted search filters, and merchandising rules. Brands represent the manufacturer or label behind a product, complete with a logo URL, and are scoped per tenant so each of your clients maintains their own brand registry. Both resources live under the /api/v1/pim prefix and follow the same create-and-list pattern.
All requests require the standard headers:
Authorization: Bearer <token>, X-Tenant-ID, and X-Org-ID.Categories
List categories
Retrieve all active categories for your tenant, ordered alphabetically by name.200 OK
string | null
UUID of the parent category, or
null for top-level categories. Use this to reconstruct the tree client-side.string
A URL-safe identifier for this category (e.g.,
knitwear). Must be unique within your tenant.Create a category
string
required
Display name for the category (e.g.,
"Knitwear").string
required
URL-safe unique identifier (e.g.,
"knitwear"). Lowercase letters, numbers, and hyphens only.string
A short description of what belongs in this category.
string
UUID of the parent category. Omit or leave empty to create a root-level category.
200 OK
Brands
List brands
Retrieve all active brands for your tenant, ordered alphabetically by name.200 OK
Create a brand
string
required
The brand’s display name (e.g.,
"NordicThread").string
A short description of the brand’s identity or product range.
string
A fully qualified URL to the brand’s logo image.
200 OK
string
The stored URL of the brand’s logo. Note that the request field is
logoUrl (camelCase) and the response field is logo_url (snake_case).Associate a product with a category or brand
When you create or update a product, pass thecategory field as a free-text label. To associate a product with a structured category or brand record using their UUIDs, include category_id and brand_id in your update payload.