GET/zomato/citiesapiKey1 credit/request
Returns Zomato's own curated directory of major Indian cities -- the discovery source for the city value used by zomato-search, zomato-restaurant, zomato-restaurant-menu, zomato-collections, and zomato-collection. This is Zomato's own "popular locations" directory, not an exhaustive list of every city Zomato serves -- some smaller markets resolve to a real Zomato city page without appearing here. A city slug from a caller's own prior knowledge (a restaurant URL's first path segment) can still be valid even if this endpoint does not return it.
Optional: q.
Sampled 14 Oct 2026: 1 item. Filled in every item: name, slug, url. In the sample: name: “Mumbai”; url: zomato.com.
Open in Playground
GET/zomato/collectionapiKey1 credit/request
Returns one Zomato curated collection's restaurant list (name, cuisines, locality, rating, and headline review count where Zomato's own response includes them). Reads the same underlying page-render source as /zomato/restaurant and /zomato/restaurant/menu, pointed at the collection's own page instead of a restaurant's.
Required: url.
Sampled 14 Oct 2026: 52 items. Filled in every item: id, name, url, type, cuisines, locality, image_url. Not in every item: rating (48), rating_count (48). In the sample: type: restaurant (48), chain (4); rating: 3.2 to 4.9, median 4.2; name: “BKC Dive.” and 51 other values; url: zomato.com; cuisines: median 6 entries; locality: “Bandra Kurla Complex, Mumbai” and 21 other values; rating_count: “21.5K” and 47 other values; image_url: b.zmtcdn.com.
Open in Playground
GET/zomato/collectionsapiKey1 credit/request
Returns Zomato's own curated "best of" restaurant collections for a city (e.g. "Best pubs & bars", "Iconic restaurants", "Insta-worthy spots") -- distinct editorial groupings of restaurants, not a keyword/geo search. Each collection's url is the value /zomato/collection takes. Zomato curates collections for larger cities only; a real city it curates none for returns a 404.
Required: city.
Sampled 14 Oct 2026: 22 items. Filled in every item: name, url, num_places, image_url. In the sample: name: “Insta-worthy spots” and 21 other values; url: zomato.com; num_places: “58 Places” and 17 other values; image_url: b.zmtcdn.com.
Open in Playground
GET/zomato/restaurantapiKey1 credit/request
Returns one Zomato restaurant's public detail by its canonical URL: name, address, locality, city, postcode, coordinates, phone, cuisines, headline rating plus Zomato's separate dining and delivery rating aggregates, the full weekly opening-hours table, open/closed and delivery-only/dark-kitchen status, and delivery metadata (ETA, minimum order, pickup availability). Zomato has no lighter restaurant-detail-only source -- this reads the same upstream as /zomato/restaurant/menu, just without the menu items.
Required: url.
Sampled 14 Oct 2026: 25 fields returned with a value. In the sample: rating: 4.2; name: “Persian Darbar”; url: zomato.com; delivery.has_online_ordering: true; cuisines: 7 entries; rating_count: 3,406; locality: “Byculla, Mumbai”; status_text: “Open now”.
Open in Playground
GET/zomato/restaurant/menuapiKey1 credit/request
Returns one restaurant's menu grouped into categories, plus its restaurant summary. A category is named by Zomato's own sub-heading when it has one (e.g. "Veg Burgers") and otherwise by the menu section it sits under (e.g. "Burgers"), since most restaurants name only the section level. Each item carries a name, description, veg/non-veg flag, image, and price when Zomato's own anonymous response includes one -- confirmed live, item prices are commonly gated behind login for the delivery-ordering flow, so price is frequently absent even though the item itself is public.
Required: url.
Open in Playground
GET/zomato/searchapiKey2 credits/request
Returns restaurants in a Zomato city, optionally filtered by a keyword. With no query this reads Zomato's own city-wide delivery listing, which pages through an opaque cursor (~12 restaurants per page: pass a response's next_cursor back as cursor until has_more is false, which marks the end of the city's listing) and accepts Zomato's own sort and Pure Veg filters; with a query it uses Zomato's own keyword search across restaurant names, dishes, and cuisines, which returns a single unpaginated result set. Each restaurant carries its url (the value the restaurant and menu endpoints take), name, cuisines, cost for two, rating, distance from the city location, delivery time, whether Zomato currently delivers from it, whether the placement is promoted (sponsored), and — on the plain city-wide listing — Zomato's own headline offer badges.
Required: city. Optional: query, sort (4 allowed values: popularity_desc, rating_desc, cost_asc, cost_desc), pure_veg, cursor.
Sampled 14 Oct 2026: 6 items. Filled in every item: id, name, url, cuisines, rating, cost_for_two, locality, address and 3 more. Not in every item: delivery_time (2). In the sample: cost_for_two: ₹400 for two (4), ₹600 for two (1), ₹850 for two (1); rating: 3.1 to 4, median 3.6; name: “Domino's Pizza” and 3 other values; url: zomato.com; is_serviceable: true in 2 of 6; cuisines: median 4 entries; locality: “Matunga West, Mumbai” and 4 other values; image_url: b.zmtcdn.com.
Open in Playground