Zomato Restaurant Scraper - Listings, Ratings & Prices avatar

Zomato Restaurant Scraper - Listings, Ratings & Prices

Pricing

from $2.00 / 1,000 restaurant listing scrapeds

Go to Apify Store
Zomato Restaurant Scraper - Listings, Ratings & Prices

Zomato Restaurant Scraper - Listings, Ratings & Prices

Scrape paginated public Zomato restaurant listings and optional profile details: ratings, prices, address, coordinates, hours, menus, ordering status, images, and public business phone.

Pricing

from $2.00 / 1,000 restaurant listing scrapeds

Rating

0.0

(0)

Developer

Md Jakaria Mirza

Md Jakaria Mirza

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

14 days ago

Last modified

Categories

Share

Scrape public Zomato restaurant listings by city and keyword with real server-page pagination. Basic mode collects listing facts; optional detail mode adds public profile fields such as coordinates, postal code, hours, separate dining/delivery ratings, ordering status, menu URL, and a restaurant business phone when explicitly published.

For the first run, use one city, one keyword such as pizza, minRating set to 0, maxResults set to 1, and the recommended India residential proxy. Inspect that record, then increase the limit or rating filter.

The scraper supports multiple keywords and up to 50 pages per keyword, deduplicates restaurants by URL, stops as soon as maxResults is reached, handles missing fields with null, and uses a lightweight HTTP crawler with bounded session rotation and retries.

This independent Actor extracts public business listing facts only. It does not collect accounts, orders, customer data, reviews/user identities, private dashboard data, hidden contacts, or emails. Detail mode accepts only phone values explicitly published in the restaurant's structured public business profile.

Live Output Example

View a public enriched Zomato restaurant result. It demonstrates ratings, price, full public address, coordinates, opening hours, menu URL, public business phone, and detailStatus: enriched.

Use Cases

  • Restaurant market research by city, locality, cuisine, or category.
  • Food delivery competitor tracking across visible restaurant listings.
  • Pricing and rating analysis for restaurant discovery products.
  • Local hospitality research for sales, operations, and expansion teams.
  • Building restaurant datasets for dashboards, maps, and BI workflows.

Pricing and cost control

This Actor uses Apify Pay Per Event pricing. Check the run cost estimate and set a maximum cost per run before scaling. Lightweight HTTP compute and optional India residential proxy use affect platform resource consumption.

EventPriceWhen charged
apify-actor-start$0.00005 / GBCharged at startup according to Actor memory, with at least one event
restaurant-scraped$0.002Once per clean listing-only restaurant record
restaurant-detailed$0.004Only when detail mode materially enriches a restaurant profile

Restaurant records are charged only when successfully saved. If an optional detail request adds nothing, the record remains listing-only and uses the lower event.

Cost-control tips:

  • Start with one city, such as Mumbai.
  • Use one keyword or cuisine, such as pizza, biryani, or cafe.
  • Use maxResults: 1 and minRating: 0 for the first run.
  • Raise minRating when you specifically need higher-rated results.
  • Keep the recommended India residential proxy enabled for regional reliability.
  • Set a maximum cost per run in Apify Console. The Actor aborts further crawling when Apify reports that limit.
  • Increase result limits only after a small run returns the expected restaurant records.

Input

Tiny test input:

{
"city": "Mumbai",
"searchQueries": ["pizza"],
"categories": [],
"minRating": 0,
"maxResults": 1,
"maxPagesPerQuery": 20,
"includeDetails": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "IN"
}
}
FieldTypeRequiredDefaultDescription
citystringnoMumbaiZomato city to search.
searchQueriesarrayno["pizza"]Restaurant or cuisine keywords. Use one keyword for tests.
categoriesarrayno[]Optional text filters matched against restaurant name, cuisine, locality, and address.
minRatingnumberno0Only save restaurants at or above this rating. Raise after the first run if needed.
maxResultsintegerno1Maximum unique restaurant records to save. Start with one result.
maxPagesPerQueryintegerno20Maximum paginated result pages requested per keyword.
includeDetailsbooleannofalseAdd public profile details with the enriched-result price.
proxyConfigurationobjectnoIndia residentialProxy settings recommended for regional access.

Output dataset

{
"source": "zomato",
"searchQuery": "pizza",
"city": "Mumbai",
"position": 1,
"restaurantId": "dea-fire-flair-fermentation-prabhadevi",
"restaurantName": "DEA - Fire, Flair, Fermentation",
"cuisines": ["Pizza", "Italian"],
"rating": 4.4,
"reviewCount": 615,
"costForTwo": "INR 4,000 for two",
"priceRange": null,
"locality": "Prabhadevi",
"address": "6th Floor, Swatantrya Veer Savarkar Marg, Mumbai",
"deliveryTime": null,
"diningRating": 4.4,
"diningRatingCount": 615,
"deliveryRating": 4.2,
"deliveryRatingCount": 420,
"postalCode": "400025",
"latitude": 19.0167,
"longitude": 72.8302,
"openingHours": ["Monday 12:00-23:30"],
"onlineOrderingAvailable": true,
"serviceable": true,
"menuUrl": "https://www.zomato.com/mumbai/example/menu",
"publicBusinessPhone": "+91 22 1234 5678",
"detailStatus": "enriched",
"imageUrl": "https://...",
"restaurantUrl": "https://www.zomato.com/mumbai/dea-fire-flair-fermentation-prabhadevi",
"scrapedAt": "2026-06-21T13:42:16.000Z"
}

How to Scrape Zomato Restaurants

  1. Enter one city, for example Mumbai, Delhi NCR, Bengaluru, Pune, or Hyderabad.
  2. Add one search keyword such as pizza, biryani, cafe, or fine dining.
  3. Set maxResults to 1 and minRating to 0 for the first run.
  4. After checking the output, optionally raise minRating or add cuisine/text filters.
  5. Run the Actor and export the dataset as JSON, CSV, Excel, or via API.

Notes

  • Zomato pages can vary by city, query, and region.
  • Some fields remain null when Zomato does not publish them.
  • India residential proxies are recommended for stable regional access.
  • Pagination uses Zomato's public page parameter and deduplicates repeated restaurants across pages and keywords.

Responsible Use

Use this Actor only for lawful purposes and in compliance with Zomato's terms, robots.txt, applicable privacy laws, and local regulations. Do not use it to collect, store, or resell personal data without a lawful basis. This Actor is intended for public restaurant listing research and market analytics and is not affiliated with Zomato.