Skip to main content
Synq gives you two independent taxonomy systems for organizing your catalog: categories and brands. Categories are hierarchical — you can nest them to any depth using a 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.
Response 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

Request body
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.
Response 200 OK

Brands

List brands

Retrieve all active brands for your tenant, ordered alphabetically by name.
Response 200 OK

Create a brand

Request body
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.
Response 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 the category 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.
The category (text) and category_id (UUID reference) fields coexist on the product. Using category_id links to a structured category record and is preferred when you need to power hierarchical navigation or merchandising rules. The category text field is useful for quick imports where full taxonomy isn’t yet defined.
Deleting a category or brand does not cascade to products. Products that reference a deleted category or brand by ID will retain the stale reference. Audit and re-associate products before removing taxonomy records.