Zomato Delivery Serviceability
zomato.restaurant.delivery
Whether a restaurant delivers to an address right now, with the delivery time and minimum order.
At a glance
- Endpoint ID
zomato.restaurant.delivery- Price
- 2 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.delivery", "input": { "latitude": 28.625789, "longitude": 77.210276, "restaurant_id": "18365882" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "zomato.restaurant.delivery", "input": { "latitude": 28.625789, "longitude": 77.210276, "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.delivery", "input": { "latitude": 28.625789, "longitude": 77.210276, "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 |
|---|---|---|---|---|
latitude |
number | yes | Latitude of the delivery address. | 28.625789 |
longitude |
number | yes | Longitude of the delivery address. | 77.210276 |
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 |
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:
{ "delivery_available": true, "eta_minutes": 35, "online_ordering": true, "res_id": "18365882", "serviceable": true, "source_url": "https://www.zomato.com/ncr/behrouz-biryani-connaught-place-new-delhi/order", "status_reason_code": 2, "tracking_available": true, "location": { "city_id": "1", "city_name": "Delhi NCR", "delivery_subzone_id": "514", "entity_name": "Ywca, Ashoka Rd, Hanuman Road Area, Connaught Place, New Delhi", "entity_type": "subzone", "latitude": 28.625789, "longitude": 77.210276 }, "minimum_order": { "text": "₹ 0", "amount": 0, "currency": "INR" }}
Fields
| Field | Type | What it is | Example |
|---|---|---|---|
serviceable |
boolean | Whether Zomato delivers to the location. | true |
eta_minutes |
integer | Zomato's delivery time estimate, in minutes. | 35 |
minimum_order |
object | The smallest order the restaurant accepts. | 3 fields |
minimum_order.text |
string | The amount as Zomato shows it. | ₹ 0 |
minimum_order.amount |
integer | The amount. | 0 |
minimum_order.currency |
string | The currency. | INR |
online_ordering |
boolean | Whether the restaurant takes online orders. | true |
tracking_available |
boolean | Whether orders can be tracked. | true |
location |
object | The restaurant's location. | 7 fields |
location.entity_name |
string | The place's name. | Ywca, Ashoka Rd, Hanuman Road Area, Connaught Place, New Delhi |
location.city_id |
string | Zomato's ID for the city. | 1 |
location.city_name |
string | The city. | Delhi NCR |
location.delivery_subzone_id |
string | 514 | |
location.entity_type |
string | The kind of place, such as a landmark or locality. | subzone |
location.latitude |
number | Latitude. | 28.63 |
location.longitude |
number | Longitude. | 77.21 |
delivery_available |
boolean | Whether delivery is available. | true |
res_id |
string | Zomato's ID for the restaurant. | 18365882 |
source_url |
string | The Zomato page this came from. | https://www.zomato.com/ncr/behrouz-biryani-connaught-place-new-… |
status_reason_code |
integer | 2 |
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.getRestaurantzomato.restaurant.menuMenu imageszomato.restaurant.menu_imagesMenu imageszomato.restaurant.offersDining offerszomato.restaurant.ordermenuOrder menuzomato.restaurant.reviewsReviewszomato.restaurants.allAll restaurantszomato.restaurants.listRestaurantszomato.searchSearch
Something missing or unclear? Ask the team that builds the Zomato endpoints.