Zomato Scraper
ECOMMERCE
Zomato Scraper
Scrape restaurant listings from Zomato for major Indian and UAE cities. Extracts name, cuisine, ratings, cost-for-two, address, locality, timings, and online delivery status from Zomato's internal JSON API.
What it scrapes
Each result contains:
| Field | Description |
|---|---|
restaurant_id |
Unique Zomato restaurant ID |
name |
Restaurant name |
url |
Zomato listing URL |
cuisine |
Comma-separated cuisine types |
rating |
Aggregate rating (e.g. "4.2") |
rating_text |
Rating label (e.g. "Very Good") |
votes |
Number of ratings |
cost_for_two |
Cost for two people (e.g. "600 for two") |
address |
Full street address |
locality |
Neighbourhood name |
city |
City slug (mirrors input) |
timing |
Opening hours text |
image_url |
Restaurant cover image URL |
has_online_delivery |
Whether delivery is enabled |
scraped_at |
ISO timestamp of when the record was collected |
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
citySlug |
string | yes | ncr |
Zomato city URL slug. Find it in the URL: zomato.com/<city-slug>/restaurants |
maxItems |
integer | no | 10 | Maximum restaurants to return. Leave blank to fetch all available. |
Common city slugs
| City | Slug |
|---|---|
| Delhi NCR | ncr |
| Mumbai | mumbai |
| Bangalore | bangalore |
| Hyderabad | hyderabad |
| Chennai | chennai |
| Pune | pune |
| Dubai | dubai |
Usage
- Open the actor on Apify.
- Set
citySlugto your target city (e.g.mumbai). - Optionally set
maxItemsto limit results. - Click Start and wait for the dataset to populate.
How it works
The actor calls Zomato's undocumented /webroutes/getPage JSON API used by the site's own Next.js frontend. This endpoint returns paginated restaurant cards (~9 per page) for a given city, sorted by popularity. Pagination is driven by a page_number cursor; the actor stops when the API's hasMore flag is false or maxItems is reached.
Indian residential proxy exits are used to reach the API, as it returns HTML for non-Indian IPs.
Notes
- Popularity sort only. The API is sorted by popularity. Custom sort orders are not supported by this actor.
- ~9 restaurants per page. Large cities (e.g. NCR) may have thousands of listings; use
maxItemsto cap results for exploratory runs. - Global cities. Dubai and other non-Indian cities are also supported where Zomato operates.
- No login required. The actor does not require a Zomato account.