Zomato outlets
Restaurants for a city, locality and/or cuisine.
Address the listing the way Zomato's own URLs do: a city on its own, plus
optionally a locality and/or a cuisine to narrow it. Or pass a full
Zomato listing url and it is used as-is.
Paginated the way Zomato's own page is: page 1 returns 9 restaurants and every page after it returns 12, with no overlap between pages. Cost is flat rather than cumulative, page 20 costs the same two requests as page 2.
One listing yields 500 restaurants at most (through page 42), whatever
total_results says, that figure is the size of the catalogue, not of what
can be paged through. Past the last page you get an empty list with
has_more: false, not an error.
Reaching beyond 500 means narrowing rather than paging, which is what
related_listings is for: it returns the locality and cuisine listings
Zomato itself links from the page, and each has its own 500-row window.
The example response below is real output from this endpoint, not an illustration. Long lists and long strings are shortened to keep the page readable, and each place that happens is marked. This example took 3.8s.
Authorization
ApiKeyAuth Your API key. Sent on every request.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/scrapers/zomato-outlets-v4" \ -H "Content-Type: application/json" \ -d '{ "city": "bangalore", "page": 1 }'{ "request_id": "req_8f2c1d94e7b0", "success": true, "status": { "code": "OK", "message": "Scrape completed.", "retryable": false }, "data": { "city": "bangalore", "has_more": true, "heading": "Restaurants in Bengaluru", "outlets": [ { "address": "1 ITC Gardenia, Opposite Ramana Hotel, Ashok Nagar, Residency Road, Bangalore", "cost_for_two_text": "₹3,500 for two", "cuisines": [ "International" ], "image": "https://b.zmtcdn.com/data/pictures/5/21525125/629963386e340cdebe7b8d5727fa3493_featured_v2.jpg", "locality": "Residency Road, Bangalore", "name": "Cajsa - ITC Gardenia", "rating": 4.6, "rating_count": 158, "rating_label": "Excellent", "ratings": { "dining": { "label": "DINING", "rating": 4.6, "review_count": 158 } }, "res_id": "21525125", "timing_text": "Opens at 7pm", "url": "https://www.zomato.com/bangalore/cajsa-itc-gardenia-residency-road-bangalore/info" }, { "address": "1st Floor, located in 1 Sobha Mall, Shop F-3, Church Street, Bangalore", "cost_for_two_text": "₹1,500 for two", "cuisines": [ "Modern Indian", "Beverages", "… 2 more items in the full response" ], "image": "https://b.zmtcdn.com/images/res_avatar_476_320_1x_new.png", "locality": "Church Street, Bangalore", "name": "Taal Bar at Ishaara", "rating": 4.3, "rating_count": 20, "rating_label": "Very Good", "ratings": { "dining": { "label": "DINING", "rating": 4.3, "review_count": 20 } }, "res_id": "22622569", "url": "https://www.zomato.com/bangalore/taal-bar-at-ishaara-church-street-bangalore/info" }, "… 7 more items in the full response" ], "page": 1, "page_url": "/bangalore/restaurants", "related_listings": [ { "name": "Bakery near me", "url": "https://www.zomato.com/bangalore/restaurants/bakery" }, { "name": "Beverages near me", "url": "https://www.zomato.com/bangalore/restaurants/beverages" }, "… 40 more items in the full response" ], "results_per_page": 9, "returned": 9, "total_results": 18900, "url": "https://www.zomato.com/bangalore/restaurants" }, "error": null, "meta": { "client_id": "client_abc123", "scraper": "zomato-outlets-v4", "billable": true, "duration_ms": 3264 }}