Swiggy Restaurant Scraper avatar

Swiggy Restaurant Scraper

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Swiggy Restaurant Scraper

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

Logiover

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

2

Monthly active users

2 days ago

Last modified

Share

Swiggy Restaurant Scraper — Scrape Swiggy Restaurants, Menus, Ratings & Prices

Swiggy Restaurant Scraper

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

FieldTypeDescription
citiesarrayRequired. City slugs to scrape, e.g. bangalore, mumbai, delhi, hyderabad, chennai, kolkata, pune, ahmedabad, jaipur, lucknow, noida, gurgaon, indore, kochi and more.
gridDensitystringNumber 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.
maxPerCityintegerStop after this many unique restaurants per city. 0 = unlimited. Default 3000.
maxConcurrencyintegerNumber of parallel HTTP requests (1–20). Default 5.
requestDelayintegerDelay 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.

FieldDescription
restaurantIdSwiggy's internal unique restaurant identifier
nameOfficial restaurant name
cityOperational city / search city
areaSpecific neighborhood or locality
avgRatingAverage user rating (out of 5.0), null if unrated
ratingCountTextual rating volume (e.g. "10K+ ratings")
costForTwoEstimated cost for two people (e.g. "₹400 for two")
cuisinesArray of cuisine tags
deliveryTimeEstimated delivery time (ETA) in minutes
deliveryFeeCurrent delivery fee in INR
isOpentrue if the restaurant is currently accepting orders
isPromotedtrue if the listing is an ad / promoted placement
hasMenutrue if the menu was successfully scraped and attached
menuItemsArray of menu items (see structure below)
searchLocationThe grid point / location used to find this record
scrapedAtISO-8601 timestamp of extraction

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.