Glovo API endpoint
Returns Glovo's live directory of every country and city it delivers in, read from the directory its own landing page embeds. Each city carries the slug and the city code; every other Glovo endpoint takes country plus city (either the slug or the code) from here. The countries field always lists every supported country code, so the optional country filter's value space is discoverable; a country Glovo does not serve returns a 400 rather than an empty list. As of 2026-11-02 the directory covers 24 countries and 1,330 cities.
/glovo/citiesEvery other Glovo endpoint takes country and city; this is the discovery step. Each city has a slug (the form used in glovoapp.com URLs, for example madrid) and a code (the form Glovo's API uses, for example mad). Either value is accepted as city everywhere. As of 2026-11-02 the directory covers 24 countries and 1,330 cities.
Query parameters:
country (optional) — two-letter country code to restrict the list to, case-insensitive. A country Glovo does not serve returns a 400 rather than an empty list. The response's countries field always lists every supported country, so the valid values are discoverable from an unfiltered call.Response includes countries[], country (only when filtered), total_results and cities[] with country, slug and code.
| Field | Filled in, of 364 checked | Values in the sample |
|---|---|---|
| country | 364 | es in all 364 |
| slug | 364 | |
| code | 364 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| country | string | No | Optional two-letter country code to restrict the directory to, e.g. es, it, pl. Omit for every country. | es | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/glovo/cities?country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"countries": [
"es",
"it",
"pl"
],
"country": "es",
"total_results": 2,
"cities": [
{
"country": "es",
"slug": "barcelona",
"code": "bcn"
},
{
"country": "es",
"slug": "madrid",
"code": "mad"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/glovo.citiesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | glovo.CitiesResponse | No | ||||
| data.cities | array | No | ||||
| data.cities[].code | string | No | ||||
| data.cities[].country | string | No | ||||
| data.cities[].slug | string | No | ||||
| data.countries | array | No | Countries lists every country code Glovo serves, regardless of the country filter, so the filter's value space is discoverable. | |||
| data.country | string | No | ||||
| data.total_results | integer | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/glovo/cities?country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"