VOOZH about

URL: https://apify.com/crawlerbros/zomato-scraper

โ‡ฑ Zomato Scraper ยท Apify


Pricing

from $1.00 / 1,000 results

Go to Apify Store

Scrape restaurant data from Zomato for major Indian and UAE cities. Get cuisine, ratings, cost for two, location, phones, timings, features, and images.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

๐Ÿ‘ Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

5

Monthly active users

2 months ago

Last modified

Share

Scrape restaurant data from Zomato for major Indian and UAE cities. Get structured JSON with cuisines, ratings, cost-for-two, location, phones, timings, features, photos, and more โ€” up to 9 restaurants per URL, ready for food-tech research, market analysis, lead lists, and directory building.


What This Actor Does

The Zomato Scraper extracts restaurant listings and full details from Zomato.com using two complementary modes:

  • URL mode โ€” paste any Zomato city, cuisine, locality, or search URL.
  • Filter builder mode โ€” pick a city and optional filters (cuisine, category, rating, sort, cost range) and the actor constructs the URL for you.

Both modes can be combined in a single run. Optional Expand Cuisines and Expand Localities toggles fan out across dozens of URLs for wider coverage of a single city.


Key Features

  • Structured JSON output โ€” 30+ fields per restaurant, grouped by topic
  • India + UAE coverage โ€” 13 supported cities verified live (Mumbai, NCR/Delhi, Bangalore, Pune, Hyderabad, Chennai, Kolkata, Ahmedabad, Jaipur, Lucknow, Dubai, Abu Dhabi, Sharjah)
  • Four surfaces โ€” Dining Out, Delivery, Cafes, Drinks & Nightlife
  • Rich filters โ€” cuisine ID, category ID, minimum rating, sort order, cost range
  • Full restaurant detail โ€” address, lat/long, phones, cost for two, top dishes, known-for, features, timings
  • Expand modes โ€” auto-fan-out across top cuisines or locality pages for a city
  • Fault tolerant โ€” per-URL retries, optional continue-on-failure
  • No browser โ€” pure HTTP, fast and lightweight

Supported Cities

CountryCities
IndiaMumbai, NCR (Delhi), Bangalore, Pune, Hyderabad, Chennai, Kolkata, Ahmedabad, Jaipur, Lucknow
UAEDubai, Abu Dhabi, Sharjah

Zomato withdrew from other international markets in 2020. URLs for London, NYC, Sydney, etc. are rejected with a clear error.


How to Use

URL mode

Paste any of these URL shapes:

  • https://www.zomato.com/mumbai/restaurants
  • https://www.zomato.com/ncr/delivery
  • https://www.zomato.com/dubai/cafes
  • https://www.zomato.com/bangalore/drinks-and-nightlife
  • https://www.zomato.com/mumbai/restaurants/biryani
  • https://www.zomato.com/mumbai/bandra-west-restaurants
  • https://www.zomato.com/mumbai/restaurants?cuisine=55&rating=4.5

Each URL returns up to 9 restaurants (Zomato's server-side cap). Use Expand modes or supply multiple URLs for wider coverage.

Filter builder mode

  1. Pick a City (e.g. mumbai).
  2. Pick a Search Mode (dining, delivery, cafes, nightlife).
  3. Optionally set Cuisine, Category, Min Rating, Sort, Min/Max Cost.
  4. Run. The actor constructs a single URL under the hood and scrapes it.

Expand modes

  • Expand Cuisines โ€” fans out across ~15 top cuisines for the chosen city (โ‰ˆ135 restaurants).
  • Expand Localities โ€” fans out across locality pages Zomato exposes for the chosen city.

Output Fields

Every field below is guaranteed present โ€” missing data is represented as "", 0, [], or empty object โ€” never null.

FieldTypeDescription
idintZomato restaurant ID
namestringRestaurant name
urlstringAbsolute Zomato URL
typestringAlways "restaurant"
cuisinesstringComma-joined cuisine names
establishmentsarray[{id, name}] establishment types
statusstringHuman-readable (e.g. "Open now")
timingstringOpening hours description
is_delivery_onlybool
is_perm_closedbool
location.addressstring
location.localitystring
location.locality_verbosestring
location.citystring
location.city_idint
location.countrystring
location.country_idint
location.zipcodestring
location.latitudefloat
location.longitudefloat
location.map_urlstringStatic map image URL
ratings.aggregatefloatOverall rating
ratings.textstringe.g. "Very Good"
ratings.votesintReview count
ratings.diningfloatDining-only rating
ratings.deliveryfloatDelivery rating (0 if not offered)
reviews.countint
price.for_twointCost for two
price.currencystring"โ‚น" for India, "AED" for UAE
price.cft_textstringFormatted cost for two
phonesarray of string
photo.url / photo.thumbstringMain restaurant photo
imagesarray[{url, thumb}]
image_countint
featuresobject{feature_slug: bool}
highlightsarray of string
known_forstring
top_dishesarray of string
social.websitestring
search_context.source_urlstringWhich input URL produced this record
search_context.city_slugstring
search_context.scraped_atstringISO8601 UTC

Cuisine & Category ID Reference

Common cuisine IDs for the cuisine filter:

IDCuisineIDCuisine
1American60Japanese
25Chinese66Lebanese
35Continental73Mexican
40Fast Food82Pizza
50North Indian85South Indian
55Italian95Thai

Common category IDs for the category filter:

IDCategoryIDCategory
1Delivery7Daily Menus
2Fine Dining8Breakfast
3Nightlife10Dinner
4Catching-Up11Pubs and Bars
5Takeaway13Pocket-Friendly Delivery
6Cafes14Clubs and Lounges

FAQ

Why is the max 9 restaurants per URL? Zomato's public search surface caps at 9 results per page and does not honour pagination parameters. This is a server-side constraint. To get wider coverage, supply more URLs (one per cuisine/locality/category) or use the Expand Cuisines / Expand Localities toggles.

Why are some cities not supported? Zomato withdrew from many international markets (US, UK, Australia, etc.) in 2020. Only India and UAE have active, reliable data today. The actor validates city input against a live-verified allow-list.

Does the actor use proxies or cookies? No. It runs purely on unauthenticated HTTP against Zomato's public endpoints.

What happens if a URL fails? By default, the actor retries twice with exponential backoff. If retries are exhausted, it logs a warning and continues with the next URL (ignore_url_failures=true). Set ignore_url_failures=false to fail the run on any URL failure.

Why are menu items and review text not in the output? Zomato's current public webroutes API no longer exposes dish-level data, review text, or wishlist counts. They were available on the deprecated v2 developer API. The actor only emits fields we can populate reliably so the output is never null.

How do I scrape reviews? Review scraping is out of scope for this actor โ€” it would require a separate, dedicated review-fetcher with cursor-based pagination.

Can I batch multiple cities in one run? Yes. Pass multiple URLs in start_urls, or combine start_urls + a city selection.


Output Example

{
"id":22244281,
"name":"Luna Et Sol",
"url":"https://www.zomato.com/mumbai/luna-et-sol-lower-parel/info",
"type":"restaurant",
"cuisines":"Italian, Continental",
"establishments":[{"id":18,"name":"Fine Dining"}],
"status":"Open now",
"timing":"12midnight โ€“ 1am, 12noon โ€“ 1am (Mon-Sun)",
"is_delivery_only":false,
"is_perm_closed":false,
"location":{
"address":"Lower Parel, Mumbai",
"locality":"Lower Parel",
"locality_verbose":"Lower Parel, Mumbai",
"city":"Mumbai",
"city_id":3,
"country":"India",
"country_id":1,
"zipcode":"",
"latitude":19.004,
"longitude":72.830,
"map_url":"https://maps.zomato.com/php/staticmap?..."
},
"ratings":{
"aggregate":4.4,"text":"Very Good","votes":903,
"dining":4.4,"delivery":0
},
"reviews":{"count":903},
"price":{"for_two":3500,"currency":"โ‚น","cft_text":"โ‚น3,500 for two"},
"phones":["+91 22XXXXXXXX"],
"photo":{"url":"https://b.zmtcdn.com/...","thumb":"https://b.zmtcdn.com/..."},
"images":[{"url":"โ€ฆ","thumb":"โ€ฆ"}],
"image_count":12,
"features":{"outdoor-seating":true,"credit-card":true},
"highlights":["Fine Dining","Rooftop"],
"known_for":"Ambience, Italian Food",
"top_dishes":["Truffle Pasta","Tiramisu"],
"social":{"website":"https://www.zomato.com/mumbai/luna-et-sol-lower-parel/info"},
"search_context":{
"source_url":"https://www.zomato.com/mumbai/restaurants",
"city_slug":"mumbai",
"scraped_at":"2026-04-11T10:30:00+00:00"
}
}

You might also like

Zomato ๐Ÿ” Scraper

jupri/zomato

Scrape Restaurants data from Zomato.com ๐Ÿ”๐Ÿฅช๐ŸŒฏ๐ŸŸ๐Ÿ•๐ŸŒฎ๐Ÿ๐Ÿฉ๐Ÿฅฏ๐Ÿฅง๐Ÿฒ๐ŸฅŸ๐Ÿฅž๐Ÿฅ˜๐Ÿง๐Ÿง‡๐Ÿซ๐Ÿฐ๐Ÿฑ๐Ÿ›๐Ÿฆ๐Ÿง๐Ÿจ

Zomato Scraper - India Restaurants, Ratings & Delivery Data

thirdwatch/zomato-scraper

Scrape Zomato restaurants across 20 Indian cities. Get ratings (delivery + dining), cuisines, cost for two, delivery times, addresses, and images. Search by dish, cuisine, or browse all restaurants in a city.

Zomato Restaurant Reviews Scraper ๐Ÿฝ๏ธ

easyapi/zomato-restaurant-reviews-scraper

Scrape restaurant reviews from Zomato.com. Extract detailed review data including ratings, review text, user information, and more. Perfect for restaurant analytics, customer feedback analysis, and market research.

Zomato Restaurants Search Scraper

stealth_mode/zomato-restaurants-search-scraper

Scrape comprehensive restaurant data from Zomato search results including menus, ratings, promotions, and delivery options. Ideal for food delivery analytics, competitive research, and market intelligence in India's dynamic F&B sector.

62

Swiggy Restaurant Scraper

infoweaver/my-actor

Effortlessly extract restaurant data from Swiggy with our powerful scraper. Get restaurants URL ,and their ratings, offers, ads, delivery times, distances, cuisines, and more in few seconds.

Swiggy Scraper - India Restaurant & Food Delivery Data

thirdwatch/swiggy-scraper

Scrape restaurant and dish data from Swiggy.com - ratings, cuisines, delivery times, cost for two, offers, Google ratings, badges, addresses, menu items with prices and addons. Covers 30 Indian cities with search, listing, and cuisine collection modes.

Swiggy Restaurant Scraper - Menus, Ratings & Prices

logiover/swiggy-restaurant-scraper

Swiggy restaurant scraper & unofficial API alternative โ€” scrape menus, ratings and prices without an API key; export the dataset to CSV or JSON.

Zomato Scraper

jungle_synthesizer/zomato-scraper

Scrape restaurant listings from Zomato for major Indian and UAE cities. Extracts name, cuisine, ratings, cost for two, address, location, timings, and delivery info from Zomato's internal webroutes API.

๐Ÿ‘ User avatar

BowTiedRaccoon

3

JobServe Jobs Scraper

fetchclub/jobserve-jobs-scraper

Actively Maintained - Jobs Scraper to extract job listings using keywords and filters from jobserve.com, gathering all details for each role. Works for all countries. Export results for analysis, connect via API or Python & integrate with other apps. Save hours searching. Unofficial JobServe API.

71

5.0

Totaljobs Scraper

lexis-solutions/totaljobs-scraper

The Totaljobs scraper is a web scraping tool that retrieves job postings from Totaljobs, a job search website in the UK.

๐Ÿ‘ User avatar

Lexis Solutions

77

2.9