Swiggy Restaurant Scraper
Pricing
from $3.50 / 1,000 results
Swiggy Restaurant Scraper
Scrape restaurant listings from Swiggy.com — India's #2 food delivery platform. Extract name, location, rating, cuisines, delivery time, cost and discount data. Fast, zero-browser API architecture.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Swiggy Restaurant Scraper — Scrape Swiggy Restaurants, Menus, Ratings & Prices

Scrape Swiggy, one of India's leading food delivery platforms, and export restaurant profiles, full digital menus, ratings, delivery estimates and pricing to JSON, CSV or Excel. This Swiggy restaurant scraper interfaces directly with Swiggy's internal API instead of rendering the heavy React frontend, so it runs fast, reliably and cheaply — ideal for Indian food-market research, competitive pricing intelligence and cloud-kitchen planning.
It uses grid-based scraping: it queries many GPS points across each city (each point returns the local restaurants Swiggy shows for that spot), then dedupes the results to yield thousands of unique restaurants per city.
✨ What this Actor does / Key features
- ⚡ Zero-browser API architecture — pure HTTP requests against Swiggy's internal API, running far faster and cheaper than browser-based scrapers.
- 🍔 Deep menu extraction — pulls full digital menus with categorized items, prices, descriptions and Veg/Non-Veg classification.
- 🗺️ Grid-based city coverage — choose a grid density (low to ultra) to control how many GPS points are queried per city and how many unique restaurants you get.
- 📍 Hyper-local accuracy — because Swiggy delivery is hyper-local, grid scraping captures restaurants across an entire city, not just the center.
- ⭐ Ratings & cost data — average rating, rating volume, cost for two, cuisines, delivery time and delivery fee for every restaurant.
- 🔁 Built-in pagination & dedup — navigates Swiggy's pagination and removes duplicate restaurants across overlapping grid points.
- ⚙️ Tunable performance — configurable concurrency and request delay to stay within Swiggy's rate limits.
- 📤 Clean structured output — flat JSON records ready for CSV, Excel, BigQuery or your own database.
🔍 Input
| Field | Type | Description |
|---|---|---|
cities | array | Required. City slugs to scrape, e.g. bangalore, mumbai, delhi, hyderabad, chennai, kolkata, pune, ahmedabad, jaipur, lucknow, noida, gurgaon, indore, kochi and more. |
gridDensity | string | Number of GPS points to query per city: low (36 points, ~500 restaurants), medium (144, ~2000), high (400, ~4000) or ultra (900, ~6000+). Higher density = more unique restaurants but slower. Default medium. |
maxPerCity | integer | Stop after this many unique restaurants per city. 0 = unlimited. Default 3000. |
maxConcurrency | integer | Number of parallel HTTP requests (1–20). Default 5. |
requestDelay | integer | Delay in milliseconds between HTTP requests. Default 400. |
🚀 Example input
{"cities": ["bangalore", "mumbai"],"gridDensity": "medium","maxPerCity": 3000,"maxConcurrency": 5,"requestDelay": 400}
📦 Output
Each restaurant is saved as one structured record. Two views are pre-configured: Overview and Full Detail.
| Field | Description |
|---|---|
restaurantId | Swiggy's internal unique restaurant identifier |
name | Official restaurant name |
city | Operational city / search city |
area | Specific neighborhood or locality |
avgRating | Average user rating (out of 5.0), null if unrated |
ratingCount | Textual rating volume (e.g. "10K+ ratings") |
costForTwo | Estimated cost for two people (e.g. "₹400 for two") |
cuisines | Array of cuisine tags |
deliveryTime | Estimated delivery time (ETA) in minutes |
deliveryFee | Current delivery fee in INR |
isOpen | true if the restaurant is currently accepting orders |
isPromoted | true if the listing is an ad / promoted placement |
hasMenu | true if the menu was successfully scraped and attached |
menuItems | Array of menu items (see structure below) |
searchLocation | The grid point / location used to find this record |
scrapedAt | ISO-8601 timestamp of extraction |
Menu item structure
Each object in menuItems contains: itemId, name, category, description, price (INR), isVeg (true for vegetarian) and inStock.
💡 Use cases
- Cloud kitchen strategy — scan a city's grid to identify "menu gaps" and benchmark cuisine pricing before opening a dark kitchen.
- Competitive pricing intelligence — track how rival restaurants change prices, delivery fees and promotions over time.
- Food aggregation & discovery apps — feed a hyper-local discovery, nutrition or corporate-catering app with structured restaurant and menu data.
- Sentiment & quality monitoring — analyze average ratings and rating volumes to find leads for B2B restaurant services or study high-performing restaurants.
- Market research — quantify supply, cuisine mix and pricing across Indian metro cities.
- Menu analytics — build datasets of dishes, categories and prices for trend analysis.
❓ Frequently Asked Questions
Do I need an API key or login? No. The Actor uses Swiggy's internal API directly — no API key and no account are required.
Is scraping Swiggy legal? The Actor extracts publicly visible restaurant and menu data. Users are expected to comply with Swiggy's Terms of Service, respect rate limits, and adhere to local data-protection and copyright laws. Use the data responsibly.
How much data can I get?
Grid-based scraping yields thousands of unique restaurants per city — roughly 500 at low density up to 6,000+ at ultra. Set maxPerCity to 0 for unlimited.
Why use grid scraping instead of one city search? Swiggy only shows restaurants within a delivery radius of a given point. Querying a grid of GPS points across the city and deduplicating gives you full city coverage instead of just the center.
How does it handle Swiggy's anti-scraping?
The Actor mimics Swiggy's internal API requests, randomizes timing via requestDelay, and keeps concurrency tunable. Swiggy applies regional geo-blocking, so running through Apify Proxy with Indian IPs is recommended for the best success rate.
How fast and cheap is it? Because it avoids launching a browser, its resource footprint is minimal — roughly 0.005–0.01 Compute Units per 100 restaurants, making large-scale daily monitoring financially viable.
What output formats are supported, and can I schedule it? Results are stored as structured JSON and export to JSON, CSV, Excel or XML. You can schedule the Actor on Apify for recurring monitoring.
⏰ Scheduling & integration
Schedule this Actor on Apify to monitor the Indian food delivery market automatically. Export results to JSON, CSV or Excel, push them to Google Sheets, or use the Apify API and webhooks to feed Swiggy restaurant and menu data into your dashboards, pricing tools and analytics pipelines.
Changelog
- 2026-05-25 — Maintenance & reliability pass: pulled the latest source and rebuilt the Actor on the current base image; build verified.
Last reviewed: 2026-05-25.