Zomato Restaurant Scraper - Listings, Ratings & Prices
Pricing
from $2.00 / 1,000 restaurant listing scrapeds
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
Maintained by CommunityActor 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.
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.00005 / GB | Charged at startup according to Actor memory, with at least one event |
restaurant-scraped | $0.002 | Once per clean listing-only restaurant record |
restaurant-detailed | $0.004 | Only 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, orcafe. - Use
maxResults: 1andminRating: 0for the first run. - Raise
minRatingwhen 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"}}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
city | string | no | Mumbai | Zomato city to search. |
searchQueries | array | no | ["pizza"] | Restaurant or cuisine keywords. Use one keyword for tests. |
categories | array | no | [] | Optional text filters matched against restaurant name, cuisine, locality, and address. |
minRating | number | no | 0 | Only save restaurants at or above this rating. Raise after the first run if needed. |
maxResults | integer | no | 1 | Maximum unique restaurant records to save. Start with one result. |
maxPagesPerQuery | integer | no | 20 | Maximum paginated result pages requested per keyword. |
includeDetails | boolean | no | false | Add public profile details with the enriched-result price. |
proxyConfiguration | object | no | India residential | Proxy 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
- Enter one city, for example
Mumbai,Delhi NCR,Bengaluru,Pune, orHyderabad. - Add one search keyword such as
pizza,biryani,cafe, orfine dining. - Set
maxResultsto1andminRatingto0for the first run. - After checking the output, optionally raise
minRatingor add cuisine/text filters. - 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
nullwhen Zomato does not publish them. - India residential proxies are recommended for stable regional access.
- Pagination uses Zomato's public
pageparameter 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.