Zomato Order Menu
zomato.restaurant.ordermenu
A restaurant's ordering menu: dishes by category with descriptions, veg tags, ratings and the choices each dish offers.
At a glance
- Endpoint ID
zomato.restaurant.ordermenu- Price
- 3 credits per call; failed calls are free
- Runs for up to
- 60 seconds
Request
Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "zomato.restaurant.ordermenu", "input": { "limit": 500, "restaurant_id": "18365882" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "zomato.restaurant.ordermenu", "input": { "limit": 500, "restaurant_id": "18365882" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "zomato.restaurant.ordermenu", "input": { "limit": 500, "restaurant_id": "18365882" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
Input
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
res_id |
string | one of | Another name for restaurant_id, kept for older requests. | |
restaurant_id |
string | one of | The restaurant's numeric Zomato ID. | 18365882 |
url |
string | one of | The restaurant's Zomato order page link, as an alternative to the ID. | |
limit |
integer | no | The most dishes to return. | 500 |
Response
A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.
This is results[0].data from a real run:
{ "count": 66, "fetched_at": "2026-09-24T08:48:44Z", "res_id": "18365882", "restaurant_name": "Behrouz Biryani", "source_url": "https://www.zomato.com/ncr/behrouz-biryani-connaught-place-new-delhi/order", "categories": [ { "menu_name": "Behrouz Recommends", "items": [ { "name": "Lazeez Bhuna Murgh Biryani (Dum Chicken Biryani)", "rating": 4, "description": "A treasured creation prepared with tender chicken pieces infused in freshly ground, aromatic bhuna spices. Slow-cooked with fragrant basmat…", "id": "ctl_765461364", "image_url": "https://b.zmtcdn.com/data/dish_photos/147/551801f387f35a2825128ae2c0793147.jpeg", "is_veg": false, "dietary_tags": [ "non-veg" ], "service_tags": [ "delivery-enabled" ] }, { "name": "Zaikedaar Paneer Biryani (Paneer Dum Biryani)", "description": "Indulge in the splendour of tender, crumbly paneer, marinated with a blend of exquisite royal spices and layered with aromatic basmati, cra…", "id": "ctl_765461365", "image_url": "https://b.zmtcdn.com/data/dish_photos/bde/6993be17047a8e500c3ec030d54a2bde.jpeg", "is_veg": true, "dietary_tags": [ "veg" ], "service_tags": [ "delivery-enabled" ] } ] }, { "menu_name": "Veg Specials", "items": [ { "name": "Classic Subz-e-Biryani (Veg Dum Biryani - Mild Spicy)", "description": "Fresh subz and the longest-grain basmati rice, dum-pukht for hours with 23 shahi masale. This is Behrouz,s classic recipe - mildly spicy. T…", "id": "ctl_804314444", "image_url": "https://b.zmtcdn.com/data/dish_photos/6b4/ee976aecb31531a2dd42ec007c90a6b4.jpeg", "is_veg": true, "dietary_tags": [ "veg" ], "service_tags": [ "delivery-enabled" ] }, { "name": "Classic Zaikedaar Paneer Biryani (Paneer Dum Biryani - Mild Spicy)", "description": "Narm paneer and the longest-grain basmati rice, dum-pukht for hours with 23 shahi masale. This is Behrouz,s classic recipe - mildly spicy. …", "id": "ctl_804314445", "image_url": "https://b.zmtcdn.com/data/dish_photos/418/fd6addac538129bfcf67c2cd903cf418.jpeg", "is_veg": true, "dietary_tags": [ "veg" ], "service_tags": [ "delivery-enabled" ] } ] } ], "modifiers": [ { "name": "Add your Breads or Rice-", "id": "mg_100435857", "max": 3, "items": [ { "name": "Afreen Basmati Rice (300 gm)", "id": "ctl_569524009", "is_available": true, "is_veg": true, "price_minor": 79 }, { "name": "Lachha Paratha (Pack of 2)", "id": "ctl_569524007", "is_available": true, "is_veg": true, "price_minor": 89 } ] }, { "name": "Choose your Kathi roll", "id": "mg_127486877", "max": 2, "items": [ { "name": "Chicken Tikka Kathi Roll", "id": "ctl_754851845", "is_available": true, "is_veg": false, "price_minor": 259 }, { "name": "Paneer Tikka Kathi Roll", "id": "ctl_754851849", "is_available": true, "is_veg": true, "price_minor": 259 } ] } ]}
Fields
| Field | Type | What it is | Example |
|---|---|---|---|
categories |
array | The menu's categories. | 3 records |
categories[].items |
array | The results. | 2 records |
categories[].items[].description |
string | The dish's description. | A treasured creation prepared with tender chicken pieces infuse… |
categories[].items[].dietary_tags |
array | Diet labels on the dish, such as non-veg. | non-veg |
categories[].items[].id |
string | Zomato's ID for the dish. | ctl_765461364 |
categories[].items[].image_url |
string | Link to the dish's photo. | https://b.zmtcdn.com/data/dish_photos/147/551801f387f35a2825128… |
categories[].items[].is_veg |
boolean | Whether the dish is vegetarian. | false |
categories[].items[].name |
string | The dish's name. | Lazeez Bhuna Murgh Biryani (Dum Chicken Biryani) |
categories[].items[].rating |
integer | The dish's rating, out of 5. | 4 |
categories[].items[].service_tags |
array | How the dish can be ordered, such as delivery. | delivery-enabled |
categories[].menu_name |
string | The menu section. | Behrouz Recommends |
count |
integer | How many results this response holds. | 66 |
fetched_at |
string | When this result was collected. | 2026-09-24T08:48:44Z |
modifiers |
array | The choices you can add to the dish. | 3 records |
modifiers[].id |
string | Zomato's ID for the choice group. | mg_100435857 |
modifiers[].items |
array | The results. | 3 records |
modifiers[].items[].id |
string | Zomato's ID for the choice. | ctl_569524009 |
modifiers[].items[].is_available |
boolean | Whether the choice can be ordered now. | true |
modifiers[].items[].is_veg |
boolean | Whether the choice is vegetarian. | true |
modifiers[].items[].name |
string | The choice's name, such as a side or add-on. | Afreen Basmati Rice (300 gm) |
modifiers[].items[].price_minor |
integer | The extra price for the choice, in rupees. | 79 |
modifiers[].max |
integer | The most choices you can pick. | 3 |
modifiers[].name |
string | The name of the city, restaurant, dish or choice. | Add your Breads or Rice- |
res_id |
string | Zomato's ID for the restaurant. | 18365882 |
restaurant_name |
string | The restaurant's name. | Behrouz Biryani |
source_url |
string | The Zomato page this came from. | https://www.zomato.com/ncr/behrouz-biryani-connaught-place-new-… |
If a call fails
A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.
Other Zomato endpoints
zomato.citiesCitieszomato.collectionsCollectionszomato.cuisinesCuisineszomato.location.searchLocation searchzomato.restaurant.deliveryDelivery serviceabilityzomato.restaurant.getRestaurantzomato.restaurant.menuMenu imageszomato.restaurant.menu_imagesMenu imageszomato.restaurant.offersDining offerszomato.restaurant.reviewsReviewszomato.restaurants.allAll restaurantszomato.restaurants.listRestaurantszomato.searchSearch
Something missing or unclear? Ask the team that builds the Zomato endpoints.