Returns the brand vocabulary for the brand filter used by Brand Products
, Search
and the discovery endpoints. Brands have no ids: the exact brand string returned here is the value to pass. Names are case-sensitive (Como Tú and Como tú are different brands) and never translated. Without warehouse or postal_code, the list is the union over the 7 online hubs, so it can include brands a given warehouse does not stock. Pass the same warehouse or postal_code you will use on /brand-products to get that warehouse’s brands and counts.
HTTP Request
GET /brands
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | No | - | Case- and accent-insensitive substring match on the brand name (dan matches Danone and Danacol; hac matches Hacendado and La Hacienda del Ibérico). Omit for the full list |
warehouse | string | No | - | Restrict to one warehouse’s assortment and counts. Omit for the union over the 7 hubs |
postal_code | string | No | - | Spanish 5-digit postal code, resolved to the warehouse that serves it. Takes precedence over warehouse |
category_id | integer | No | - | Only brands with products in this category (any level, see /categories ) |
fresh | boolean | No | false | Bypass the 15-minute cache. Only affects answers with source: live; catalog_index answers come from the daily catalog snapshot and refresh once a day |
language | enum | No | es | es, en or ca. Echoed only: brand names are not translated, so the list is the same in every language |
Response
Example for q=hacendado:
| |
Response Fields
| Field | Type | Description |
|---|---|---|
status | boolean | true when the request succeeded |
request_id | string | Unique request identifier |
cached_at | string | null | ISO timestamp when served from cache, null when fetched for this request |
data | object | Response payload |
data.results[] | array | Matching brands |
data.results[].brand | string | Exact brand name. Pass it verbatim as brand on other endpoints |
data.results[].products_count | integer | Products of this brand in the warehouse, or across the 7 hubs when no warehouse is set |
data.total | integer | Brands matched |
data.source | string | catalog_index (daily catalog snapshot) or live |
data.snapshot_date | string | Date of the catalog snapshot used |
data.resolved_filters.warehouse | object | null | Warehouse used for the counts. null when no warehouse filter was sent (union of the hubs) |
data.language | string | Language echoed back |
request_params | object | Query parameters you sent, echoed back as strings |
When you pass warehouse or postal_code, data.resolved_filters.warehouse is an object with input, resolved (the warehouse code) and source (postal_code or param).
Error Responses
Invalid input returns HTTP 400, and error is a plain string:
| |
| Status Code | Cause | Description |
|---|---|---|
| 400 | Invalid warehouse | Must be a hub code like vlc1 or a 4-digit store code from /warehouses |
| 400 | Invalid parameter value | For example a language other than es, en or ca |
Code Examples
| |
| |
| |
Related Endpoints
- Brand Products
: list every product of a brand, passing the exact
brandstring from this endpoint - Product Search
: keyword search restricted to one or more brands with
brand - Category Tree
: get a
category_idto list only the brands present in a category