Returns the sections of Mercadona’s online home page for the warehouse that serves a postal code, in the order they are displayed: seasonal banners, product carousels such as “Bajadas de precio”, and the Novedades grid. Use the campaign_id of any section with Campaign Products
to get its products. The response is not paginated and has no request_params field.
HTTP Request
GET /campaigns
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
warehouse | string | No | vlc1 | Hub or 4-digit store code (see Warehouses
). Ignored when postal_code is given |
postal_code | string | No | - | Spanish 5-digit postal code, resolved to the warehouse that serves it. Takes precedence over warehouse |
fresh | boolean | No | false | Bypass the 10-minute cache |
language | string | No | es | Language for product and category names: es, en or ca |
Response
| |
Response Fields
| Field | Type | Description |
|---|---|---|
status | boolean | true on success |
request_id | string | Unique request identifier |
cached_at | string | null | ISO timestamp when the answer came from cache, null when fetched for this request |
data | object | Response payload |
data.items[] | array of objects | Home-page sections in display order |
data.items[].campaign_id | string | Section UUID. Built-in sections use fixed ids: 00000000-0000-0000-0000-000000000001 (Novedades), 00000000-0000-0000-0000-000000000002 (Bajadas de precio), 00000000-0000-0000-0000-000000000003 (Han vuelto) |
data.items[].title | string | Section title as shown on the home page |
data.items[].subtitle | string | null | Section subtitle |
data.items[].type | string | Section type: banner, carousel or grid |
data.items[].section_code | string | null | Mercadona section code, e.g. PD, PS, NA. null on banners |
data.items[].image_url | string | null | Banner image URL. null on carousels and grids |
data.items[].items_count | integer | null | Number of products in the section. null for banners |
data.total | integer | Number of sections |
data.resolved_filters.warehouse | object | The warehouse that answered |
data.resolved_filters.warehouse.input | string | null | The postal_code or warehouse you sent, null if none |
data.resolved_filters.warehouse.resolved | string | Warehouse code used, e.g. mad3 |
data.resolved_filters.warehouse.source | string | How it was chosen: postal_code, param or default |
data.language | string | Language used for names: es, en or ca |
Error Responses
Invalid input returns HTTP 400, and error is a plain string:
| |
| Status Code | Cause | Description |
|---|---|---|
| 400 | Invalid parameter | Malformed warehouse or postal_code, or unsupported language |
Code Examples
| |
| |
| |
Related Endpoints
- Campaign Products
: products inside a section, by
campaign_id - New Products : the Novedades grid plus every “Nuevo en …” section in one list
- Price Drops : every product on a price drop, not only the home carousel