Wolt API endpoint
Returns Wolt's own curated homepage restaurant/store lists for a location (e.g. top-rated, newest, hot-this-week -- whichever collections Wolt's own ops team currently curates for that market), read from Wolt's anonymous homepage endpoint. Each restaurant carries the same fields /wolt/search returns. The response also carries is_serviceable, which says whether Wolt delivers to the requested coordinates at all: false means the coordinates are outside Wolt's delivery coverage, so the empty collections list is a coverage answer rather than a served location whose homepage happens to carry no curated lists.
/wolt/collectionsQuery parameters:
latitude (required) — search center latitude, e.g. 60.1699.longitude (required) — search center longitude, e.g. 24.9384.Response includes collections[] and is_serviceable. Each collection has id (Wolt's own internal section name, e.g. top-rated-venues), title (Wolt's own display title, e.g. "Top-rated"), and restaurants[] -- the same restaurant shape /wolt/search returns (id, slug, name, address, city, country, currency, product_line, short_description, tags[], price_range, rating_score, rating_count, estimate_minutes, estimate_range, online, delivers, image_url, latitude, longitude). Wolt returns its homepage collections without per-venue category ids, so categories[] is omitted here even though /wolt/search's browse modes carry it.
is_serviceable reports whether Wolt delivers to the requested coordinates at all. false means the coordinates are outside Wolt's delivery coverage, so the empty collections list is a coverage answer rather than a served location whose homepage happens to carry no curated lists. The status contract is unchanged: an out-of-coverage location still returns 200 with an empty list, never an error. The same field is returned by /wolt/search.
Which collections a location has, how many, and in what order varies by market -- it is curated per-market by Wolt's own team, not a fixed set this endpoint guarantees.
| Field | Filled in, of 13 checked | Values in the sample |
|---|---|---|
| id | 13 | |
| title | 13 | “Fastest delivery” and 12 other values |
| restaurants | 13 | median 24 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| latitude | number | Yes | Search center latitude | 60.1699 | |
| longitude | number | Yes | Search center longitude | 24.9384 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/wolt/collections?latitude=60.1699&longitude=24.9384" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"collections": [
{
"id": "top-rated-venues",
"title": "Top-rated",
"restaurants": [
{
"id": "6411b53cc19783bc82b1d7cc",
"slug": "cafe-korvari",
"name": "Cafe Korvari",
"address": "Stenbäckinkatu 12",
"country": "FIN",
"currency": "EUR",
"product_line": "restaurant",
"price_range": 1,
"rating_score": 9.2,
"online": true,
"delivers": true,
"image_url": "https://imageproxy.wolt.com/assets/67321485a94945236d40b6ff"
}
]
}
],
"is_serviceable": true
}
}Request schema
No body schema
Response schema
#/definitions/wolt.collectionsResponseDoc
| 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 | wolt.CollectionsResponse | No | ||||
| data.collections | array | No | ||||
| data.collections[].id | string | No | ||||
| data.collections[].restaurants | array | No | Restaurant record, 21 fields: address, categories, city, country, currency, delivers, estimate_minutes, estimate_range, id, image_url, latitude, longitude and 9 more. Described under Wolt Search API. | |||
| data.collections[].title | string | No | ||||
| data.is_serviceable | boolean | No | IsServiceable reports whether Wolt delivers to the requested coordinates at all. False means the coordinates are outside Wolt's delivery coverage, so an empty collections list is a coverage answer rather than a served location whose homepage happens to carry no curated lists. | |||
| 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/wolt/collections?latitude=60.1699&longitude=24.9384" \
-H "x-api-key: $CRAWLORA_API_KEY"