District Dining Scraper: Zomato Restaurants & Offers avatar

District Dining Scraper: Zomato Restaurants & Offers

Pricing

from $2.00 / 1,000 restaurants

Go to Apify Store
District Dining Scraper: Zomato Restaurants & Offers

District Dining Scraper: Zomato Restaurants & Offers

Restaurants from District (by Zomato) across India: live table-booking discounts, ratings with food/service/ambience scores, cost for two, cuisines, phone, address, GPS, hours, menus and reviews. Browse with filters, search dishes, look up links or list a whole city. No login.

Pricing

from $2.00 / 1,000 restaurants

Rating

0.0

(0)

Developer

Yugenox Corp

Yugenox Corp

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Scrape restaurants from District by Zomato, the app that replaced Zomato's dining-out tab across India. For every restaurant you get the live table-booking discounts, the rating with its food, service and ambience scores, cost for two, cuisines, phone number, full address, GPS coordinates, opening hours, facilities, photos, menus and recent reviews.

No login and no cookies are needed. Restaurant ids are the same as Zomato's, so the output joins cleanly with any Zomato dataset you already have.

What you can scrape

ModeYou giveYou get
Browse a locationa city, neighbourhood or coordinatesrestaurants in District's order, or sorted by rating, offer, cost or distance, with District's filters (cuisine, price band, rating, open now, pure veg, serves alcohol, outdoor seating, pet friendly, cafés, fine dining, 30% or 50% off)
Searchdishes, cuisines or names ("biryani", "sushi", "rooftop") + locationsthe matching restaurants near each location
Specific restaurantsDistrict links, Zomato links or restaurant idsfull details for each one
Every restaurant in a citya city (optionally part of a link, like "koramangala")the city's complete restaurant directory: Delhi NCR alone has more than 37,000

Cover the whole city repeats a browse or search in every neighbourhood District knows for the city (36 in Mumbai, 11 in Pune; smaller cities get a grid) and merges the results without duplicates. A single location returns about 500 restaurants at most; with this switch Pune returned 3,186 unique restaurants in about 2.5 minutes.

Why this scraper

  • Offer data nobody else has. Each row has the pre-book discount (for example 60% off with 6 slots left today), the walk-in discount you get when paying through District, promo codes, and the full list of live offers with their time slots. You can also add bank and card offers.
  • Rich, clean contact data. 150 of 150 restaurants in a test across Delhi NCR, Bengaluru and Hyderabad had a phone number, address, coordinates, hours, cuisines, cost for two and rating.
  • Fast and cheap. 50 restaurants with full details take about 15 seconds. Listing-only runs (details off) are faster still: 800 restaurants in 22 seconds.
  • Reliable. It uses fresh IPs, retries, and switches to Indian residential IPs automatically if it is ever blocked. It never ends a run in failure because of a slow page: it saves what it has and finishes before your timeout.

Input examples

Top-rated restaurants in Mumbai:

{ "mode": "location", "locations": ["Mumbai"], "sortBy": "rating", "maxItems": 50 }

North Indian places in Bengaluru that serve alcohol, cost ₹1,000–1,500 for two and are rated 4.0 or higher, cheapest first:

{
"locations": ["Bengaluru"],
"sortBy": "costLowToHigh",
"cuisines": ["North Indian"],
"quickFilters": ["servesAlcohol"],
"costForTwo": ["1000to1500"],
"minRating": "4.0",
"maxItems": 200
}

The biggest discounts in a neighbourhood:

{ "locations": ["Koramangala, Bengaluru"], "sortBy": "offer", "quickFilters": ["offer50"] }

Biryani across all of Hyderabad:

{ "mode": "search", "locations": ["Hyderabad"], "keywords": ["biryani"], "coverWholeCity": true, "maxItems": 300 }

Specific restaurants:

{
"mode": "restaurants",
"restaurants": [
"https://www.district.in/dining/ncr/mount-fuji-japanese-pan-asian-restaurant-bar-connaught-place-new-delhi",
"https://www.zomato.com/mumbai/doolally-veera-desai-area/info",
"20324919"
]
}

Every open restaurant in Gurgaon:

{ "mode": "fullCity", "locations": ["Delhi NCR"], "urlContains": "gurgaon", "skipClosed": true, "maxItems": 0 }

Input reference

FieldMeaning
modelocation (default), search, restaurants, or fullCity.
locationsCities ("Delhi NCR", "Mumbai"), neighbourhoods ("Powai, Mumbai") or "lat, lng".
keywordsSearch terms, used by Search mode.
restaurantsLinks or ids, used by Specific restaurants mode.
maxItemsTotal restaurants to return (default 100; 0 means no limit).
maxItemsPerLocationOptional limit for each location, or for each term in Search mode.
sortBypopularity, rating, offer, costLowToHigh, costHighToLow, or distance.
cuisinesAny of District's 87 cuisines, e.g. "Japanese" or "South Indian".
quickFiltersopenNow, openLate, pureVeg, servesAlcohol, outdoorSeating, petFriendly, cafes, fineDining, offer30, offer50, nearAndTopRated.
costForTwounder1000, 1000to1500, 1500to2000, 2000to2500, over2500.
minRating3.5, 4.0, or 4.5.
coverWholeCityRepeat the query in every neighbourhood of the city.
urlContainsEvery-restaurant mode only: keep only links that contain this text.
skipClosedLeave out restaurants that are temporarily or permanently closed.
includeDetailsFull restaurant page data (default on).
includeReviews, maxReviewsRecent reviews, up to 10 per restaurant (rating, text, date, photos; never the reviewer's name).
includeMenuImagesLinks to menu page photos, grouped by section.
includeBankOffersCard and bank offers.
maxConcurrencyNumber of parallel requests (default 20).
proxyConfigurationApify Proxy (default: automatic).

Output

One row per restaurant. Here is an abbreviated example:

{
"resId": "21851590",
"name": "Paschim - Kohinoor Continental",
"url": "https://www.district.in/dining/mumbai/paschim-kohinoor-continental-chakala",
"city": "Mumbai",
"locality": "Chakala",
"address": "Lobby, Hotel Kohinoor Continental, Andheri - Kurla Road, J B Nagar, Chakala, Mumbai",
"latitude": 19.1123022344,
"longitude": 72.8679532385,
"distanceKm": 2.6,
"cuisines": ["North Indian", "Maharashtrian", "Kerala", "Rajasthani"],
"costForTwo": 1500,
"currency": "INR",
"rating": 4.8,
"ratingCount": 238,
"ratingFood": 4.7,
"ratingService": 4.7,
"ratingAmbience": 4.7,
"reviewCount": 32,
"offerHeadline": "Flat 60% OFF",
"discountPct": 60,
"payDiscountPct": 25,
"promoText": "FLAT ₹175 OFF",
"offers": [
{ "text": "FLAT 60% OFF", "details": ["From 12:00 AM, today", "6 slots left"], "type": "preBook" },
{ "text": "FLAT 25% OFF", "details": ["No booking required", "Valid all day"], "type": "walkIn" }
],
"isSponsored": false,
"isOpenNow": true,
"openStatus": "Open · 12:00 PM to 3:15 PM",
"businessStatus": "ACTIVE",
"openingHours": [{ "day": "Monday", "hours": "12 Noon - 3:15 PM, 7 PM - 11 PM" }],
"phone": "+919004688669",
"phones": ["+919004688669", "+919152148019"],
"facilities": ["Kid-friendly", "Work friendly"],
"amenities": ["Dinner", "Lunch", "Wine and beer", "All day breakfast", "Large group seating", "Kid friendly", "Cocktails"],
"about": null,
"mustTry": null,
"whyPeopleGo": null,
"reviewHighlights": [],
"imageUrl": "https://b.zmtcdn.com/data/pictures/0/21851590/e0f1b313de3ac1616463757d39216e81.jpg",
"images": ["https://b.zmtcdn.com/data/pictures/0/21851590/e0f1b313de3ac1616463757d39216e81.jpg"],
"menuUpdated": "Updated 3 months ago",
"menuPageCount": 29,
"tableBookingUrl": "https://www.district.in/dining/mumbai/paschim-kohinoor-continental-chakala/book",
"googleMapsUrl": "https://www.google.com/maps?q=19.1123022344,72.8679532385",
"chainId": null,
"rank": 9,
"source": { "type": "location", "input": "Mumbai", "sortBy": "rating" },
"scrapedAt": "2026-09-24T06:41:54.748Z"
}

Field notes:

  • Discounts. discountPct is the best pre-book table discount. payDiscountPct is the walk-in discount for paying the bill through District. offers lists every live offer with its time slot and how many slots are left.
  • Missing values. Fields are null when District has nothing to show. New places have no rating, some have no phone, and closed places have no hours. Lists are empty ([]), never null.
  • Rank. rank is the position in District's list for your sort. Rows are saved as their details arrive, so sort by rank if the order matters to you.
  • Business status. businessStatus is ACTIVE, TEMP_CLOSED, TEMP_CLOSED_DINING, OPENING_SOON, or similar.
  • Details off. With details turned off, rows keep the listing fields (name, locality, cuisine, cost, rating, discount, distance and photo). Phone, address, coordinates and link need details.

Use cases

  • Competitive pricing and promotions: track which restaurants discount, by how much and at what times, by city, cuisine or price band.
  • Sales leads for restaurant tech, food suppliers and delivery services: names, phones, addresses and GPS for every restaurant in a city or neighbourhood.
  • Market research: restaurant density, cuisine mix, price points and ratings by neighbourhood.
  • Location intelligence: exact coordinates and opening hours, ready for maps and site-selection models.
  • Joining with Zomato data: restaurant ids match Zomato's.

FAQ

Which cities are covered? Every Indian city where District lists restaurants. The biggest are Delhi NCR, Mumbai, Bengaluru, Pune, Hyderabad, Kolkata, Chennai, Ahmedabad, Jaipur, Chandigarh, Goa and Lucknow, plus hundreds of smaller cities.

How many restaurants can I get for a city? Browsing one location returns up to about 500 per sort and filter combination. Cover the whole city reaches thousands. Every restaurant in a city returns the city's full directory, including closed and delivery-only places; use skipClosed to drop the closed ones.

How many results does Search return? Up to 20 restaurants per term per location. With Cover the whole city, each term is searched in every neighbourhood. In a test, "pizza" across 5 Mumbai neighbourhoods returned 71 unique restaurants.

Are reviews included? Only if you turn on includeReviews. You get the latest reviews shown on each restaurant's page, up to 10, with rating, text, date and photos. Reviewers are private individuals, so their names, avatars and profiles are never included.

Do I need a Zomato or District account? No. No login needed: no account, cookie, phone number or API key. Datacenter proxies are enough (the free automatic Apify Proxy group works); residential proxies are only a fallback if requests start getting blocked.

Is it legal to scrape District? This actor collects only publicly available information that District shows to every visitor without logging in: restaurant names, business addresses, published restaurant phone lines, opening hours, ratings, prices, offers and menus, plus review texts and ratings if you turn reviews on. It does not collect information that identifies individual people: reviewer names, avatars and profiles are never included. Scraping public data is generally lawful, but how you use the results is up to you: follow the laws that apply to you (for example India's DPDP Act, GDPR, PIPEDA or CCPA) and District's terms, and check with a lawyer if you are unsure. Apify's guide is a good starting point: Is web scraping legal?

Does it access any private data? No. It reads only what District's public website serves to any visitor: restaurant pages, the public listing, search and the public restaurant sitemap. It never touches user accounts, bookings, orders, payments or anyone's personal profile.

What does a run cost? You pay per restaurant saved (the restaurant event), plus the small per-run start fee shown on the Pricing tab. Duplicates, closed restaurants you skip and restaurants that are not found are never charged.

What if something goes wrong? The run still finishes as Succeeded, keeps every restaurant it saved, and explains in its status message what happened and what to change. If your run's timeout is too short for District to answer, the message says so (60 s is plenty for the 50-restaurant example).

Something looks wrong? Open an issue on the actor's Issues tab and include your input.