Just Eat API endpoint
Returns the exact filter slugs Just Eat's own area page currently offers for a UK postcode -- star-rating thresholds, boolean toggles (open_now, new, free_delivery, halal, vegan, ...), cuisine tiles (pizza, chinese, italian, ...), and non-restaurant top-nav verticals (groceries, alcohol, pharmacy, electronics, flowers, gifts, and more) alike -- each with the live count of restaurants it currently narrows this postcode's listing to. Every filter value is the literal string /justeat/search's repeatable filter parameter accepts. The slug set is genuinely postcode-dependent: a rural postcode's own area page offers fewer cuisine tiles than central London's, because Just Eat's own frontend never advertises a filter with zero local coverage -- call this endpoint again for a different postcode rather than assume one location's slug set applies everywhere.
/justeat/search/filtersThis catalog is postcode-scoped, not a single universal list. Just Eat's own area page never advertises a filter slug with zero local coverage, so a rural postcode returns materially fewer values than central London does. Call this endpoint with the same postcode you intend to search, rather than reusing a slug list captured for a different location.
Query parameters:
postcode (required) — UK postcode to look up, e.g. SW1A 1AA.Response includes postcode (echoing the request), total_count (restaurants matching no filter at all, for this postcode), and filters[]. Each filter has filter (the exact value to pass to /justeat/search's repeatable filter parameter) and count (how many restaurants currently match it at this postcode).
A confirmed live capture for one central-London postcode returned 153 distinct slugs, spanning: star-rating thresholds (one_star through five_star), boolean toggles (open_now, new, free_delivery, with_discounts, deals, favourites, freebies, halal, fsa, stampcards, allnightalcohol, gluten-free-options, vegan, vegetarian), cuisine tiles (pizza, chinese, italian, indian, japanese, sushi, thai, mexican, american, turkish, greek, lebanese, korean, vietnamese, french, spanish, caribbean, african, and many more), and Just Eat's own non-restaurant top-nav verticals (groceries, alcohol, pharmacy, electronics, health-and-beauty, flowers, gifts, convenience, shops). This endpoint always reflects the current live set for the postcode you query rather than this fixed historical capture -- call it directly instead of treating any prior list as exhaustive.
Example response (trimmed):
{"code":200,"msg":"OK","data":{"postcode":"EC1A 1BB","total_count":2173,"filters":[{"filter":"groceries","count":237},{"filter":"open_now","count":842},{"filter":"pizza","count":193},{"filter":"vegan","count":58}]}}
| Field | Filled in, of 153 checked | Values in the sample |
|---|---|---|
| filter | 153 | “Moroccan” and 152 other values |
| count | 153 | 0 to 1,672, median 9 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| postcode | string | Yes | UK postcode to look up | SW1A 1AA | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/justeat/search/filters?postcode=SW1A+1AA" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"postcode": "EC1A 1BB",
"total_count": 2173,
"filters": [
{
"filter": "groceries",
"count": 237
},
{
"filter": "open_now",
"count": 842
},
{
"filter": "pizza",
"count": 193
},
{
"filter": "vegan",
"count": 58
}
]
}
}Request schema
No body schema
Response schema
#/definitions/justeat.filtersResponseDoc
| 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 | justeat.FiltersResponse | No | ||||
| data.filters | array | No | ||||
| data.filters[].count | integer | No | ||||
| data.filters[].filter | string | No | ||||
| data.postcode | string | No | ||||
| data.total_count | 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/justeat/search/filters?postcode=SW1A+1AA" \
-H "x-api-key: $CRAWLORA_API_KEY"