Search Documentation
Search for a documentation page...
Brands API
REST API endpoints for managing product brands.
Brands group products by manufacturer or label (e.g. "Acme", "Nike"). Each product can be assigned to a single brand, and brands can be shown and filtered on your storefront. A brand can be addressed by its UUID or by its URL slug.
List Brands
Returns a paginated list of brands for the store, ordered by newest first. Pass ?lang= to overlay translated fields onto each brand.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | 10 | Brands per page (1-100) |
offset | number | 0 | Brands to skip |
query | string | — | Search by brand name |
active | boolean | — | Filter by active status |
lang | string | — | Locale code for translations (e.g. pl-PL) |
Response
Create Brand
Creates one brand (object body, returns 201) or many brands at once (array body of up to 500 items, returns 200). Slug is auto-generated from the name when omitted. Unknown fields are rejected. In batch mode, per-row errors (such as slug conflicts) are reported without aborting the other rows.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Brand display name |
slug | string | No | URL slug, lowercase letters, numbers, and hyphens only (auto-generated from name) |
description | string | No | Plain text description |
image | string | No | Brand logo / image URL |
website | string | No | Brand website URL |
active | boolean | No | Visible on storefront (default: true) |
Response (201, single)
Response (200, batch)
A single-mode create returns 409 when a brand with the same slug already exists.
Get Brand
Returns a single brand by UUID or slug, including its translations and the count of products currently assigned to it.
Response
A 404 is returned when no brand matches the identifier.
Update Brand
Partially updates a brand by UUID or slug. Unknown fields are rejected. Pass image: null or website: null to clear those fields.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Brand display name |
slug | string | No | URL slug (lowercase letters, numbers, and hyphens only) |
image | string | null | No | Image URL, or null to clear |
website | string | null | No | Website URL, or null to clear |
active | boolean | No | Visible on storefront |
Response
Delete Brand
Hard-deletes the brand. Products previously assigned to this brand have their brandId set to null.
Response
Assign Brand to Products
Sets brandId on every product whose UUID appears in productIds and belongs to the store. Up to 1000 product IDs per request. Idempotent — re-running is safe. The response reports how many were assigned plus any IDs that did not match (wrong store or non-existent). To clear a brand from a single product, use PATCH /api/v1/products/{id} with { "brandId": null }.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
productIds | string[] | Yes | Product UUIDs to assign this brand to (1-1000) |