Zomato restaurant listings

GET https://api.api.sh/zomato/v1/restaurants
1 credit / call e-commerce try it in the playground →

Restaurants of a Zomato listing for a city (delivery, dining out or nightlife), a locality, a dish or a cuisine, or any zomato.com listing path. Each restaurant: id, name, overall, dining and delivery ratings with review counts, cuisines, cost for two and for one, locality and address, delivery time, serviceable and online-ordering flags, distance, promoted flag, offer, image and link. total is the listing's size; narrow it with locality, dish or cuisine. About 9-12 restaurants per page: pass next_cursor back as cursor (alone) for the next page; null on the last page. Narrow by the site's rating floor (rating_min) and its Pure Veg filter (pure_veg); applied_filters then lists the filters the listing applied, and later pages keep them.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
city string Zomato city slug, e.g. ncr (Delhi NCR), mumbai, bangalore, pune, dubai. Give this or path. Example: ncr
category delivery | dine_out | nightlife Listing type for the city (default delivery).
dish string Delivery restaurants serving a dish, as its slug, e.g. biryani, pizza.
locality string Restaurants in a locality, as its slug, e.g. connaught-place-delhi.
cuisine string Restaurants of a cuisine, as its slug, e.g. chinese, north-indian.
path string Any zomato.com listing path or link, e.g. /ncr/delivery/dish-biryani.
cursor string next_cursor from the previous page (then no other parameter is needed).
rating_min 3.5 | 4 | 4.5 | 5 Only restaurants rated at least this: 3.5, 4, 4.5 or 5.
pure_veg boolean true for pure vegetarian restaurants only.

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/zomato/v1/restaurants?city=ncr" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.