Glovo store catalogue by collection

GET https://api.api.sh/glovo/v1/menu
1 credit / call food & delivery try it in the playground →

A Glovo store's catalogue the way the store organises it. Without collection: the store's collection groups (supermarkets and shops: Fruit and vegetables, Dairy, Drinks...) with each collection's name, slug, collection value and image, plus the product sections shown on the store's front page (promotions, top sellers; for restaurants the full menu). With collection: that collection's sections, each with every product: id, external id, name, description, price and price text, currency, out-of-stock and restricted flags, promotions, labels, dietary labels, image and option groups; a group's slug returns its collections instead. Also the store id, address id, city code and the store's vertical.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
url string The store's glovoapp.com/<lang>/<country>/<city>/stores/<slug> link (from /glovo/v1/stores). Example: https://glovoapp.com/en/es/madrid/stores/carrefour-madrid
country string With city and slug instead of url.
city string City slug (with country and slug).
slug string Store slug (with country and city).
store_id string Instead of url: the store's id from /glovo/v1/store (with address_id and city_code); answers faster.
address_id string The store's address_id from /glovo/v1/store (with store_id and city_code).
city_code string The store's city_code from /glovo/v1/store, e.g. MAD (with store_id and address_id).
collection string A collection to open: groups[].collections[].collection (or a collection or group slug) from a call without it, e.g. huevos-c.20287387.
language string Language of the texts: en (default), es, it, pt...

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/glovo/v1/menu?url=https%3A%2F%2Fglovoapp.com%2Fen%2Fes%2Fmadrid%2Fstores%2Fcarrefour-madrid" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.