Skip to content

Zomato Scraper

Try for free

Scrape Zomato restaurants by city, locality, cuisine, dish or collection: rating, votes, cuisines, cost for two, address, phone, hours, coordinates and menu images, plus reviews. No login needed.

🍽️ Zomato Scraper

Scrape Zomato restaurants in any Indian city: name, rating and votes, dining and delivery ratings, cuisines, cost for two, address, phone numbers, opening hours, GPS coordinates, menu images, photos and highlights. Switch to review mode to collect restaurant reviews with rating, text, date and reviewer. Paste Zomato links or just type a city, cuisine or locality. No login needed.

✨ Why use Zomato Scraper?

  • 🔗 Any list: city pages, localities, cuisines, delivery dish pages and curated collections, or single restaurant pages.
  • 📞 Contact data: all published phone numbers, full address, pincode and coordinates for every restaurant.
  • ⭐ Ratings that matter: overall rating and votes plus separate dining and delivery ratings and review counts.
  • 🧾 Rich details: opening hours per day, cost for two, highlights (outdoor seating, bar, Wi-Fi, …), "known for" tags, menu images and photos.
  • 💬 Reviews: newest, highest or lowest rated first, dining or delivery only, with reviewer, date and the restaurant's reply.
  • ⚡ Fast and cheap: reads Zomato's own page data, so 500 restaurants from a list arrive in about a minute.

🎯 Use cases

  • 🤝 Lead generation: build restaurant lists with phone numbers and addresses for sales outreach.
  • 📊 Market research: compare cuisines, price levels and ratings across localities and cities.
  • 🗺️ Location analysis: map restaurants with their coordinates and ratings.
  • 💬 Sentiment analysis: collect reviews for your restaurant or your competitors and track ratings over time.
  • 🍕 Menu and pricing research: gather menu images and cost-for-two figures.

🚀 How to use

  1. Open zomato.com, browse to a city, locality, cuisine or collection and copy the URL. Or type a City with optional Cuisines or dishes and Localities.
  2. Paste the URLs into Zomato URLs.
  3. Set Max restaurants. Choose Reviews under What to scrape if you want reviews.
  4. Click Start.
  5. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldDescription
startUrlsZomato restaurant pages or list pages (city, locality, cuisine, dish, collection).
cityCity slug as in Zomato links: bangalore, ncr, mumbai, pune, hyderabad, …
searchTermsCuisines or dishes for the city: biryani, pizza, north indian, cafes.
localitiesNeighbourhoods for the city: Koramangala, Bandra West.
maxResultsMaximum restaurants per run (default 20).
scrapeTyperestaurants (default) or reviews.
includeDetailsPhones, coordinates, hours, menu images and more (default on). With details off, a restaurant whose list card shows no open/closed status still gets its hours (timing) from its page.
maxReviewsPerRestaurant, reviewSort, reviewTypeReview mode options.
{
  "city": "bangalore",
  "searchTerms": ["biryani", "momos"],
  "localities": ["Indiranagar"],
  "maxResults": 100
}

📤 Output

Restaurant rows:

FieldDescription
restaurantId, name, url, shortUrlRestaurant and link
rating, ratingText, votes, diningRating, diningReviews, deliveryRating, deliveryReviewsRatings
cuisines, costForTwo, costForTwoText, costForOneText, paymentInfoFood and price
address, locality, city, zipcode, latitude, longitudeLocation
phone, phonesPublished phone numbers
timing, statusText, openingHoursHours
highlights, knownFor, topTags, menuImages, photos, imageUrlDetails and media
deliveryTime, hasOnlineOrdering, offers, isPromotedDelivery list fields
{
  "restaurantId": 18000000,
  "name": "Example Biryani House",
  "url": "https://www.zomato.com/bangalore/example-biryani-house-indiranagar-bangalore",
  "locality": "Indiranagar, Bangalore",
  "address": "12, 100 Feet Road, Indiranagar, Bangalore",
  "zipcode": "560038",
  "latitude": 12.9719,
  "longitude": 77.6412,
  "phone": "+919800000000",
  "cuisines": ["Biryani", "North Indian"],
  "rating": 4.3,
  "ratingText": "Very Good",
  "votes": 1966,
  "diningRating": 4.3,
  "deliveryRating": 4.1,
  "costForTwo": 800,
  "costForTwoText": "₹800 for two",
  "openingHours": [{"days": "Mon-Sun", "hours": "11am – 11pm"}],
  "highlights": ["Lunch", "Dinner", "Takeaway available", "Indoor seating"],
  "menuImages": [{"label": "Food", "pages": 6, "url": "https://b.zmtcdn.com/data/menus/..."}]
}

Review rows (review mode):

FieldDescription
reviewId, reviewUrl, restaurantId, restaurantName, restaurantUrlReview and restaurant
rating, ratingText, experience, reviewText1–5 rating, label, dining or delivery, text
date, dateApproxZomato's date ("12 days ago", "Mar 01, 2023") and an approximate ISO date
userName, userId, userProfileUrl, userFollowersCountReviewer
likeCount, commentCount, positiveTags, negativeTags, photos, ownerRepliesEngagement and replies
{
  "reviewId": 520000000,
  "restaurantName": "Example Biryani House",
  "rating": 5,
  "ratingText": "Excellent",
  "experience": "dining",
  "reviewText": "Great biryani and quick service.",
  "date": "12 days ago",
  "dateApprox": "2026-10-04",
  "userName": "Asha R.",
  "likeCount": 0,
  "ownerReplies": [{"text": "Thank you for visiting!", "author": "Example Biryani House", "date": "10 days ago"}]
}

💰 Pricing

  • $4.00 per 1,000 restaurants ($0.004 per restaurant).
  • $2.50 per 1,000 reviews ($0.0025 per review).

Platform usage is small and paid separately: about $0.03 to $0.15 for 1,000 restaurants with full details, and about $0.02 for 1,000 restaurants without details. So 1,000 restaurants with details cost about $4.05 to $4.15 in total, and 1,000 reviews about $2.55.

❓ FAQ

Is it legal to scrape Zomato? The actor reads public restaurant pages that any visitor can open. Use the data in line with Zomato's terms and data protection laws.

Do I need a Zomato account or a proxy? No. No login and no proxy setup.

How many restaurants can I get? Zomato shows only the first few hundred restaurants of any single list (about 500 for a whole city). Add cuisines, dishes or localities to reach more; duplicates across lists are removed.

Why is a field empty? Not every restaurant publishes phone numbers, hours or menus. Delivery-only fields (delivery time, online ordering) are filled from delivery pages.

Can I schedule it or use the API? Yes. Schedule runs for rating tracking or new reviews and read results through the API or integrations.

⚠️ Limits

  • India and the other countries where zomato.com still lists restaurants; data in the Zomato app only (such as delivery menus with prices) is not covered.
  • About 500 restaurants per list page, as on the website.
  • Review dates like "12 days ago" are converted to an approximate date.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.