Swiggy Scraper — Restaurants, Ratings & Offers
Pricing
from $2.00 / 1,000 restaurant results
Swiggy Scraper — Restaurants, Ratings & Offers
Scrape Swiggy restaurants across 20+ Indian cities — name, Swiggy rating and rating count, cuisines, cost for two, locality, delivery time, distance, live offers and the Google rating Swiggy shows alongside its own. Search any keyword or browse a whole city. JSON, CSV or Excel.
Pricing
from $2.00 / 1,000 restaurant results
Rating
5.0
(2)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
Swiggy Scraper — Restaurants, Ratings & Offers (India)
$0.002 per restaurant · no browser, pure HTTP · Swiggy rating and the Google rating shown beside it
Scrape Swiggy restaurants across 20+ Indian cities. Browse a whole city or search a keyword, and get one clean row per restaurant: name, Swiggy rating and rating count, cuisines, cost for two, locality, delivery time, distance, live discount offers — plus the Google rating Swiggy displays alongside its own.
Why use this scraper
- Two ratings per restaurant. Swiggy's own score and the Google aggregate it surfaces, so you can compare platform sentiment against the wider web in one row.
- Live commercial signals. Current discount offers, delivery ETA, distance and open/closed state — the fields that actually change day to day.
- City or keyword. Take a city's full listing, or search "biryani" across several cities in one run.
- Anywhere in India. 20+ cities built in, and any other point can be reached with explicit coordinates.
- No browser. Pure HTTP against Swiggy's own JSON API — fast and cheap to run.
Supported inputs
| Input | Example | Notes |
|---|---|---|
| City | picked from a dropdown | 20 cities built in |
| Keyword | pizza, biryani | Searched per city |
| Coordinates | 19.1136, 72.8697, Andheri | Neighbourhoods or unlisted cities |
| Google Maps link | https://www.google.com/maps/@19.11,72.86,15z | Coordinates are read out of the URL |
Cities are chosen from a dropdown, so there is nothing to spell: Mumbai, Delhi NCR, Gurgaon, Noida, Bengaluru, Hyderabad, Chennai, Kolkata, Pune, Ahmedabad, Jaipur, Lucknow, Chandigarh, Kochi, Indore, Surat, Nagpur, Bhopal, Coimbatore, Vadodara. Anywhere else is reachable through custom coordinates.
Use cases
- Track competitor ratings, pricing bands and discounts across a city.
- Build restaurant lead lists by cuisine and locality.
- Monitor how aggressively chains discount, and when.
- Compare Swiggy ratings against Google ratings for the same venue.
- Market research on cuisine mix and delivery coverage by neighbourhood.
How it works
- Resolve — each city becomes a latitude/longitude, because Swiggy's API is coordinate-driven rather than slug-driven.
- Fetch — the city listing or keyword search is pulled from Swiggy's JSON API.
- Extract — restaurants are collected from Swiggy's nested card tree, de-duplicated by id, and written one row each.
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
cities | array | ["mumbai"] | Chosen from the built-in dropdown |
queries | array | — | Keywords searched per city |
coordinates | array | — | lat, lng per line — optional label, or paste a Google Maps URL |
maxItems | integer | 100 | Hard cap on rows |
maxConcurrency | integer | 3 | Keep low — Swiggy blocks aggressive clients |
proxy | object | none | Optional; add your own if blocked at volume |
Minimal input:
{"cities": ["mumbai"],"maxItems": 50}
Output — key fields
| Field | Description |
|---|---|
restaurantId, name, url | Swiggy id, name and page URL |
rating, ratingCount | Swiggy rating and how many ratings |
googleRating, googleRatingCount | Google rating as shown on Swiggy |
cuisines, costForTwo | Cuisine list and typical spend for two |
locality, area, city | Location |
deliveryTimeMins, deliveryTimeText, distanceKm | Delivery signals |
offer | Current discount, e.g. "70% OFF · UPTO ₹140" |
isOpen, isVeg | Status flags |
imageUrl | Restaurant image |
Output sample
{"restaurantId": "448490","name": "Barbeque Nation","url": "https://www.swiggy.com/city/mumbai/barbeque-nation-rest448490","rating": 3.5,"ratingCount": "1.5K+","cuisines": ["North Indian", "Barbecue", "Kebabs", "Biryani"],"costForTwo": "₹600 for two","locality": "Bandra East","area": "Bandra Kurla Complex","deliveryTimeMins": 21,"deliveryTimeText": "20-25 mins","distanceKm": "1.1 km","isOpen": true,"offer": "70% OFF · UPTO ₹140","googleRating": "4.0","googleRatingCount": "1.8K+"}
Pricing
Pay-per-event: $0.002 per restaurant row, plus a $0.005 actor-start fee per GB of run memory. 100 restaurants cost $0.20.
FAQ
Which countries? India only — that is Swiggy's market.
Are menus included? No. Swiggy blocks its menu endpoint to automated clients (it answers with an empty response), and this Actor does not bypass that. For priced menu data, a Talabat scraper covers the Gulf markets.
Are reviews included? No — Swiggy does not publish review text on its public API, only aggregate ratings. For restaurant reviews with full text, use a Zomato scraper.
Do I need a proxy? Not usually. Swiggy's listing API answers without one; add your own if you hit blocks at high volume.
My city isn't in the dropdown. Put its coordinates in the coordinates input, one per line as 19.1136, 72.8697. Add a name if you want it on every row (19.1136, 72.8697, Andheri), or simply paste a Google Maps URL and the coordinates are read out of it. Entries that are not usable are reported in the log with the reason, and a point outside India is flagged because Swiggy does not operate there.
How many restaurants per city? Swiggy reports roughly 2,000 per major city; a single listing call returns the first page, and keyword searches widen the net.
Support
Found a bug or need another field? Open an issue on the Actor's Issues tab — it is monitored.
🤖 For AI Agents & LLM Apps
Purpose: Turn an Indian city or keyword into structured Swiggy restaurant rows with two independent ratings, pricing band and live offers. Browser-free.
Minimal input (tested):
{ "cities": ["mumbai"], "maxItems": 20 }
Behaviors agents should know:
- One row per restaurant, de-duplicated by
restaurantIdacross cities and queries. ratingis Swiggy's (numeric);googleRatingis a string and may be absent.- Billing is
restaurant-resultat $0.002; bound spend withmaxItems. citiesis a fixed enum of 20 slugs (mumbai,delhi,bangalore, …); anything else belongs incoordinates, which take"lat, lng","lat, lng, label", a Google Maps URL, or the{lat,lng,label}object form.- Menus and review text are not available from Swiggy's public API.
⚠️ Disclaimer
This Actor collects only publicly available restaurant listing data from Swiggy — no logins, paywalls or access controls are bypassed, and its menu endpoint is deliberately left alone because Swiggy blocks automated access to it. Use the data in compliance with Swiggy's Terms of Service and applicable law. You are responsible for how you use the output.
SEO Keywords
swiggy scraper, swiggy api, scrape swiggy, swiggy restaurant scraper, swiggy data extraction, india restaurant data, food delivery scraper, restaurant ratings india, mumbai restaurant data, bangalore restaurants, delhi food delivery, restaurant offers scraper, cost for two data, cuisine dataset india, restaurant lead generation, swiggy json, apify swiggy.