Glovo stores in a city
The stores Glovo lists for a city and category (food, groceries, shops and others), as the city page ranks them, optionally narrowed to a food type: id, address id, slug, name, link, tag, rating (percent) and votes, ETA, distance, open status, delivery fee and its free/discounted/Prime/surge flags, promotions, top-rated, new and sponsored flags, rank, image and logo, with the total for the city and the food types available there. Up to 50 stores per call: the first 50 of the list; narrow with type to reach more stores of one cuisine.
Optional sort and filters over the listed stores: sort (relevance, rating, votes, delivery_time, delivery_fee), open_now, min_rating (percent), free_delivery, promotions and prime. With any of them set, count is the number of stores kept, listed the number the city page listed and filters echoes the choices.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
countryrequired | string | Two-letter country code: es, it, pt, pl, ro, ua, hr, rs, ba, me, si, bg, md, ge, kz, kg, ma, ke, ng, gh, ci and others. Example: es |
cityrequired | string | City slug as in Glovo links, e.g. madrid, barcelona, milano, lisboa, warszawa, bucuresti, kyiv, nairobi. Example: madrid |
category | string | Category slug with id, e.g. food_1 (default); other categories appear in Glovo's city links. |
type | string | Food type: a name (burgers, pizza, sushi) or the value from available_filters (burgers_34789). Example: burgers |
language | string | Language of the texts: en (default), es, it, pt, pl... |
sort | relevance | rating | votes | delivery_time | delivery_fee | Order of the listed stores: relevance (the site's order, default), rating (highest first), votes (most rated first), delivery_time (fastest first), delivery_fee (cheapest first). |
open_now | 1 | 0 | Set to 1 to keep only stores open now. |
min_rating | number | Keep only stores rated at least this percentage (0-100), e.g. 90. |
free_delivery | 1 | 0 | Set to 1 to keep only stores with free delivery now. |
promotions | 1 | 0 | Set to 1 to keep only stores running a promotion. |
prime | 1 | 0 | Set to 1 to keep only stores with Prime delivery. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/glovo/v1/stores?country=es&city=madrid" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/glovo/v1/stores",
params={"country": "es", "city": "madrid"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/glovo/v1/stores");
url.searchParams.set("country", "es");
url.searchParams.set("city", "madrid");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); 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).