Zomato Restaurant Scraper
MCP serverEverything elseZomato Restaurant Scraper - City, Cuisine, Contact
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use Zomato Restaurant Scraper
Install Zomato Restaurant Scraper
The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http zomato-restaurant-scraper 'https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraperAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=zomato-restaurant-scraper&config=eyJ1cmwiOiJodHRwczovL21jcC5hcGlmeS5jb20vP3Rvb2xzPWFuc2h1bWFuYXRyZXkvem9tYXRvLXJlc3RhdXJhbnQtc2NyYXBlciJ9Open the link and Cursor adds the server at that address.
ChatGPT
https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraperIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add zomato-restaurant-scraper --url 'https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper'Run it once, then sign in with codex mcp login zomato-restaurant-scraper if the server asks for an account.
From the project's README
As published by AnshumanAtrey/zomato-restaurant-scraper in README.md.
📦 Open source · MIT: github.com/AnshumanAtrey/zomato-restaurant-scraper
Scrape restaurant listings from Zomato by city and cuisine. Get structured records with name, phone, address, cuisines, rating, and cost for two — no Zomato account required.
Built for B2B sales teams, food-tech researchers, ghost-kitchen operators, lead-gen agencies, and competitor intelligence.
Quick start
- Pick a City from the dropdown (Bangalore, Delhi NCR, Mumbai, Dubai, Singapore, etc. — 40 cities)
- Pick a Listing Type (Best, All, Dinner, Breakfast)
- Optionally pick a Cuisine filter (Biryani, Pizza, North Indian, Chinese, etc. — 24 options)
- Set how many restaurants you want (default 50, up to 1000)
- Click Run
Typical 50-restaurant scan completes in 3-7 minutes.
What you get
Each restaurant is pushed as one dataset record:
| Field | Example |
|---|---|
name | Truffles |
url | https://www.zomato.com/bangalore/truffles-st-marks-road-central-bangalore/info |
slug | truffles-st-marks-road-central-bangalore |
phone | +91 80 4111 2400 |
address | 22, St Marks Road, Bangalore |
cuisines | American, Burger, Continental |
rating | 4.5 |
costForTwo | ₹800 |
city | bangalore |
area | Central Bangalore |
timestamp | 2026-05-22T09:43:18Z |
A final summary record reports restaurantsScraped, restaurantsFound, failures, duration, and sourceUrls.
Common use cases
Build a B2B restaurant lead list
Pick Mumbai, Best restaurants, maxRestaurants: 200. Export the CSV. You now have 200 verified phone numbers + addresses for outreach.
Scrape a specific cuisine in a specific city
Pick Hyderabad, All restaurants, Cuisine: Biryani, maxRestaurants: 100.
Scrape a city not in the dropdown
Use the Custom city field under "Advanced overrides". Type Tirunelveli, Erode, Coorg, Manali, Madurai, Varanasi — auto-converted to the right Zomato URL.
Scrape a category not in the dropdown
Use the Custom cuisine field. Momos, Kebab, Hyderabadi, Awadhi all work.
Scrape an exact Zomato URL you already have
Paste it into Custom URL under "Advanced overrides". Overrides every other dropdown.
Inputs
Main fields
- City — Pick from 40 Zomato cities across India, UAE, Qatar, Oman, Malaysia, Singapore, Philippines, Sri Lanka, Portugal
- Listing Type —
Best restaurants(curated top picks),All restaurants,Dinner spots, orBreakfast spots - Cuisine — Optional filter across 24 cuisine categories, or "Any" for no filter
- How many restaurants — Cap on results (1-1000). Start with 20-50 to verify, then scale up
- Scan depth:
Quick— restaurant URLs + names only (fast, cheap, useful for bulk URL lists)Standard— full data: phone, address, rating, cost (default — recommended for B2B leads)Deep— full data with extra retries for blocked pages (slowest, highest yield)
Advanced overrides (optional)
- Custom city — Type any Zomato city not in the dropdown. Auto-slugified
- Custom cuisine — Type any Zomato cuisine category not in the dropdown
- Custom URL — Paste any Zomato listing URL to scrape it directly. Overrides everything above
Runtime
- Run timeout (seconds) — Hard kill after this many seconds (default 1800 = 30 min)
How it works
- Listing page: navigates to the constructed Zomato URL, scrolls to load lazy content, extracts all restaurant detail URLs (handles both
/infoand/orderURL patterns) - Detail pages: visits each restaurant page concurrently using fast HTTP fetches (Cheerio) — typically 5-10x faster than full browser rendering
- Auto-fallback: if the primary URL returns 0 restaurants, automatically retries
/{city}/restaurantsas a fallback
Uses Apify Residential Proxy to avoid rate-limit issues.
Pricing
$0.005 per restaurant record. A typical 50-restaurant scan costs ~$0.26.
| Scan size | Approx cost |
|---|---|
| 20 restaurants | $0.10 |
| 50 restaurants | $0.25 |
| 100 restaurants | $0.50 |
| 500 restaurants | $2.50 |
| 1000 restaurants | $5.00 |
FAQ
Does it scrape menu items / dishes?
No — it scrapes restaurant listings (name, phone, address, etc.), not menus. For menu data, use a different actor that hits individual restaurant pages with menu rendering.
Can I scrape "Dahi Puri" or "Tandoor"?
Zomato organizes by cuisine category, not by individual dish. Specific dishes like dahi-puri don't have their own URL on Zomato. Use a broader category like Street Food or North Indian instead.
Can I scrape an entire state like "Tamil Nadu"?
Zomato has no state-level URLs. Pick a specific city instead — e.g., for Tamil Nadu use Chennai, Coimbatore, or custom-city Madurai/Tirunelveli.
Does it work for cities outside the dropdown?
Yes. Use the Custom city field with the city name — Erode, Coorg, Manali, Varanasi, etc. The actor auto-slugifies and auto-falls-back to /{city}/restaurants if /best-restaurants doesn't exist for that smaller city.
Why didn't I get any results?
Most likely causes:
- Off-list cuisine combined with quick scan — try
Standarddepth - City has no listings for that cuisine — try removing the cuisine filter
- Custom URL is malformed — paste it in a browser first to verify
What about international cities?
Dubai, Abu Dhabi, Sharjah (UAE), Doha (Qatar), Muscat (Oman), Kuala Lumpur (Malaysia), Singapore, Manila, Colombo, Lisbon are in the dropdown. Other Zomato international cities (e.g., Sydney, Auckland) work via the Custom city field.
Is the data accurate / fresh?
Pulled live from Zomato at run time. Phone numbers and addresses are exactly what Zomato displays today. Ratings may lag slightly behind Zomato's internal scoring.
Is this legal?
Scrapes only publicly visible data on Zomato. You are responsible for complying with Zomato's Terms of Service, GDPR/DPDP, and local laws. Don't use phone numbers for mass cold-calling without consent.
Output structure
{
"recordType": "restaurant",
"name": "Truffles",
"url": "https://www.zomato.com/bangalore/truffles-st-marks-road-central-bangalore/info",
"slug": "truffles-st-marks-road-central-bangalore",
"phone": "+91 80 4111 2400",
"address": "22, St Marks Road, Bangalore",
"cuisines": ["American", "Burger", "Continental"],
"rating": 4.5,
"costForTwo": "₹800",
"city": "bangalore",
"area": "Central Bangalore",
"timestamp": "2026-05-22T09:43:18Z"
}
Plus one summary record per run:
{
"recordType": "summary",
"restaurantsScraped": 50,
"restaurantsFound": 52,
"failures": 2,
"duration": 287,
"sourceUrls": ["https://www.zomato.com/bangalore/best-restaurants"]
}
Pairs nicely with
Enrich your restaurant lead lists with deeper intel:
- Holehe Email OSINT — After scraping restaurant emails from their websites, check which platforms each restaurant owner is on
- NetIntel — WHOIS, DNS, SSL, GeoIP of each restaurant's website
- Social Analyzer — Find a restaurant brand's social media presence across 900+ platforms
- theHarvester — Discover all subdomains + emails for a restaurant chain's primary domain
- nmap — Network recon (for IT/security workflows, not lead-gen)
- Bug Bounty Finder — Audit a restaurant chain's disclosure-program coverage
Credits
Built by Anshuman Atrey using Apify SDK, Crawlee, Puppeteer, and Cheerio.
Disclaimer
This scraper accesses publicly available data on Zomato. You are responsible for complying with Zomato's Terms of Service and applicable laws in your jurisdiction. Use the data responsibly — avoid mass cold-calling without consent.
Advanced
- Delivery
- zomato-restaurant-scraper MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
- Catalog kind
- mcp-server
- Gateway key
io-github-anshumanatrey-zomato-restaurant-scraper- Source
- github.com/AnshumanAtrey/zomato-restaurant-scraper
- Hosted endpoint
https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper