Swiggy Dineout Scraper — Restaurants, Deals, Phones & Hours avatar

Swiggy Dineout Scraper — Restaurants, Deals, Phones & Hours

Pricing

from $2.00 / 1,000 restaurants

Go to Apify Store
Swiggy Dineout Scraper — Restaurants, Deals, Phones & Hours

Swiggy Dineout Scraper — Restaurants, Deals, Phones & Hours

Scrape Swiggy Dineout restaurants anywhere in India: ratings, cost for two, cuisines, walk-in and pre-book discounts, bank and UPI offers, photos — plus optional business phone, full address, pincode, GPS coordinates and weekly opening hours. 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

1

Total users

1

Monthly active users

10 days ago

Last modified

Share

Swiggy Dineout Scraper: Restaurants, Deals, Phones & Hours

Get every Swiggy Dineout restaurant in any Indian city as a clean table. Each row has the rating, cost for two, cuisines, photos, and today's dine-in deals: walk-in and pre-book discounts, coupon codes, bank and UPI cashback, and Swiggy One offers.

Turn on business details to also get:

  • the restaurant's phone number
  • the full street address with pincode
  • exact GPS coordinates
  • weekly opening hours and whether it is open now
  • category, amenities, popular dishes, menu images and upcoming events

You don't need a login, a cookie or an API key. Type a city and press Start.

What you can do with it

  • Restaurant lead lists. POS, SaaS, supplies and marketing teams can build call lists of dine-in restaurants by city, locality, cuisine, price band or rating. Each lead comes with a phone number, full address and pincode.
  • Deal tracking and aggregation. See which restaurants run walk-in or pre-book discounts today, how big they are, and which bank and UPI offers apply. Track changes by scheduling daily runs.
  • Market research. Map the dine-out scene of a city: cost-for-two distribution, cuisine mix, share of bars, pure-veg and pet-friendly places, and how many restaurants run Swiggy's festival deals.
  • Competitive monitoring. Follow a fixed list of restaurants by link and see when their offers, ratings or hours change.
  • Maps and location analytics. Every detailed row carries latitude, longitude and pincode, ready for GIS tools.

Input

FieldWhat it does
LocationsCities (Bangalore, Mumbai, Delhi, Gurgaon, Hyderabad, Pune, Chennai, Kolkata… 63 cities built in, and any other place is looked up), neighbourhoods or landmarks (Koramangala, Bangalore, Bandra West, Mumbai), GPS coordinates (19.0760, 72.8777) or Swiggy city links.
Restaurant URLsOptional. Swiggy Dineout restaurant links or ids, when you need full details for specific restaurants.
CoverageAround each location returns the ~1,000–1,200 restaurants Swiggy shows near that spot and is fast. Whole city / area searches a grid of points across the city and merges the results with duplicates removed, which gives complete city lists of several thousand restaurants.
Area radius (km)Optional, for whole-city mode. Defaults to the city's size.
Max restaurants / per locationCaps on the number of rows. 0 means no limit.
Add business detailsAdds the phone, full address, pincode, coordinates, hours, category, amenities, popular dishes, menu images, all payment offers with coupon codes and terms, and events. It costs one extra request per restaurant.
FiltersMinimum rating, maximum cost for two, cuisines, must-have features (e.g. Alcohol served, Pure veg, Valet parking, Pet friendly), only restaurants with an offer, and skip sponsored placements.

Example:

{
"locations": ["Bangalore", "Bandra West, Mumbai"],
"maxItems": 500,
"includeDetails": true,
"minRating": "4.0",
"cuisines": ["Italian", "Japanese"]
}

Output

Each row is one restaurant. Here is a sample, shortened:

{
"id": "1390598",
"name": "Pixi",
"url": "https://www.swiggy.com/restaurants/pixi-ashok-nagar-bangalore-1390598/dineout",
"city": "Bangalore",
"locality": "Ashok Nagar",
"fullAddress": "Shop No. 22, Ground Floor, Church Street, Shanthala Nagar, Ashok Nagar, Bangalore, Karnataka",
"pincode": "560001",
"latitude": 12.9751852,
"longitude": 77.6042906,
"businessPhone": "9108245830",
"rating": 4.4,
"ratingCount": 235,
"costForTwo": 2000,
"cuisines": ["Asian", "Indian Cuisine"],
"category": "Nightlife",
"facilities": ["Alcohol served", "Reservation available", "Valet parking", "SwiggyPay accepted"],
"bestOffer": "Flat 10% off on pre-booking",
"preBookDiscount": "Flat 10% off",
"preBookDiscountPercent": 10,
"preBookDealType": "Pre-Book",
"dealAvailability": "Available today",
"couponOffer": "Get extra ₹100 off using PAYTMUPI",
"couponCode": "PAYTMUPI",
"bankOfferSummary": "Up to 10% off with bank offers",
"offers": ["Flat 10% off on pre-booking", "Get extra ₹100 off using PAYTMUPI", "Up to 10% off with bank offers", "₹150 Off above ₹1500 with Swiggy One"],
"paymentOffers": [
{ "title": "Flat 10% off", "subtitle": "use HDFCINFINIA", "code": "HDFCINFINIA", "minBill": 3500, "terms": ["Applicable twice per user per calendar month", "…"] }
],
"dineCashOffer": "10% cashback on every bill payment",
"openStatus": "Open till 1AM",
"isOpenNow": true,
"openingHours": [{ "day": "Monday", "hours": "Noon - 1AM" }, { "day": "Tuesday", "hours": "Noon - 1AM" }],
"menuPageCount": 24,
"imageUrl": "https://dineout-media-assets.swiggy.com/swiggy/image/upload/…JPG",
"images": ["…"],
"isSponsored": true,
"distanceKm": 6.7,
"searchLocation": "Koramangala, Bangalore",
"detailsIncluded": true,
"scrapedAt": "2026-09-24T06:37:00.162Z"
}

These fields are filled only when Add business details is on: fullAddress, pincode, latitude, longitude, businessPhone, category, openStatus, isOpenNow, openingHours, popularDishes, menuImages, paymentOffers, dineCashOffer and events. Without details they are null or empty.

The dataset has three ready-made views: Restaurants, Business details and Deals & offers. You can export any of them to CSV, Excel or JSON, or pull them through the API.

How many restaurants will I get?

  • Around each location: about 1,000–1,200 restaurants in large cities, and fewer in smaller towns. These are the restaurants Swiggy Dineout shows near that point, within roughly 5–10 km.
  • Whole city / area: thousands. For example, a 9 km radius around central Pune returned 2,415 unique restaurants.
  • Duplicates are removed across all locations and search points in a run.

Speed

A single location with no limit takes about 15–25 seconds for roughly 1,100 restaurants, and several locations run in parallel (three metros, 3,500+ restaurants: about a minute). Business details add roughly one second for every 5 restaurants. A whole-city grid of a mid-size city (Pune, 19 search points) takes about 2 minutes.

FAQ

Do I need a Swiggy account? No. The actor doesn't use a login, cookie or phone.

Is it legal to scrape Swiggy Dineout? The actor collects only public information that Swiggy Dineout shows to anyone without logging in: restaurant names, ratings, prices, deals, addresses, opening hours and business contact numbers. Collecting publicly available data is generally legal, but what you do with it matters. A restaurant's contact number can be the owner's own mobile, so treat phone numbers as personal data: have a legitimate reason to use them, and follow the privacy laws that apply to you (India's DPDP Act, GDPR, PIPEDA, CCPA or similar) as well as Swiggy's terms. If you're not sure, check with a lawyer. Apify's guide Is web scraping legal? is a good starting point.

Does it access any private data? No. The actor doesn't log in and uses no account, cookie or saved session. It reads only the restaurant listings and restaurant pages that Swiggy Dineout shows publicly to every visitor. It never sees diners' accounts, bookings, orders, payment details or reviews, and no row contains a diner's name.

Which cities work? Every city where Swiggy Dineout operates, which covers all major Indian metros and many tier-2 cities. If a location has no Dineout restaurants, the run finishes normally with a note saying so.

Is the phone number a person's number? It is the restaurant's business contact number, as listed on its Swiggy Dineout page.

Are the ratings from Swiggy? Swiggy Dineout displays Google ratings. You get the score and the number of ratings (ratingCount). Restaurants with too few ratings have rating: null.

What is "GIRF"? It is Swiggy's Great Indian Restaurant Festival. preBookDealType tells you whether a pre-book deal is a regular one, a festival (GIRF) deal, or a Prime deal.

Can I run it every day? Yes. Schedule the actor in Apify to track how deals, ratings and opening hours change over time.

Why did a neighbourhood resolve to a different spot? Free-text places are looked up with Swiggy's own place search. The run log shows exactly what each location resolved to. For precise control, use coordinates.

Why was my location skipped? A place is only used when Swiggy's place search finds an Indian city, area or landmark with that name. A name that only matches a shop, or a place outside India (for example "Toronto", which would otherwise match a shawarma stall in Punjab), is skipped, and the log lists the closest matches. Add the city ("Starbucks, Jaipur") or use coordinates.

Can I use a Swiggy food-delivery link? No. Delivery links (without /dineout at the end) use different restaurant ids. The actor detects a mismatched name and skips the link rather than returning the wrong restaurant.

What do the status messages mean? Every run finishes with a message that starts with a code, and the same information is saved as RUN_REPORT in the run's key-value store:

CodeMeaning
[OK]Finished normally.
[PARTIAL]Stopped early (run time limit, your spending limit, a Swiggy block or network errors on some points). Every row saved is a complete row; nothing else is charged.
[NO-RESULTS]Swiggy answered, but nothing is listed there or nothing matched your filters. No charge.
[BAD-INPUT]Nothing usable in the input — the message says what to add. No charge.
[BLOCKED] / [DATA-FORMAT] / [API-CHANGED]Swiggy refused or changed its app API. 0 rows, no charge; try again later.

The run never fails because of bad input or Swiggy problems: you always get what could be collected, and you only pay for rows written to the dataset.

I'm calling the API from a script — do I have to use the exact field names? The canonical names in the input schema are recommended, but common alternatives are understood too: maxResults / limit for maxItems, city / query for locations, startUrls (with { "url": … } objects) / urls / ids for restaurantUrls, details for includeDetails, mode: "whole city" for coverage, rating for minRating, cuisine, features. The log lists every alias that was reinterpreted.