Endpoint Playground
Returns one restaurant's full menu grouped into categories. Every item carries a name, description, image, price, and calorie/energy text when the upstream provides it. Items with customization options (e.g. "Dip 1/2") carry a modifier_groups list with each option's own price. Non-restaurant stores (groceries, alcohol, pharmacy, electronics, and similar) return every item under a single "All items" category rather than the site's own finer-grained grouping.
14 Oct 2026: 12 categories; 3 fields had a value in every checked item.
Sample value profiles: name: “World Menu Heist” and 11 other values; items: median 13 entries.
curl 'https://api.crawlora.net/api/v1/justeat/restaurant/menu?unique_name=mcdonalds-victorialondon' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| unique_name | string | Yes | mcdonalds-victorialondon | Restaurant slug, from a search response's unique_name field |
{
"code": 200,
"msg": "OK",
"data": {
"restaurant_id": "120913",
"name": "McDonald's® - Victoria",
"unique_name": "mcdonalds-victorialondon",
"currency_code": "GBP",
"categories": [
{
"id": "09313db0-ebfd-5d2c-80ff-cb203ff60d90",
"name": "What's New",
"items": [
{
"id": "076c474d-0fb0-50e2-b2ab-92afd3f5b85f",
"name": "Mini Hash Browns Sharebox®",
"description": "15 Mini Hash Browns, the perfect side for sharing.",
"image_url": "https://just-eat-prod-eu-res.cloudinary.com/image/upload/v1/uk/dishes/hashbrowns.jpg",
"energy_display": "1318 kJ/316 kcal",
"price": 3.89,
"modifier_groups": [
{
"id": "102f9857-ce3a-5213-bad5-0a4a04dc3d51",
"name": "Dip 1/2",
"min_choices": 1,
"max_choices": 1,
"options": [
{
"id": "16a8b2a8-cd85-506f-a68b-a21214ca22a6",
"name": "Ketchup Dip",
"addition_price": 0,
"energy_display": "114 kJ/27 kcal"
},
{
"id": "a9aad60e-79af-5648-881a-d5b1bd2be70b",
"name": "Korean BBQ Dip",
"addition_price": 0.9,
"energy_display": "333 kJ/78 kcal"
}
]
}
]
}
]
}
],
"item_count": 24
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.