swiggy.com APIswiggy.com ↗
Access Swiggy restaurant listings, full menus, search results, and Instamart grocery categories via 5 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/0fca980e-bb1b-497c-9e70-fe66ef61fab8/get_restaurants_by_city?lat=12.9716&lng=77.5946' \ -H 'X-API-Key: $PARSE_API_KEY'
Get list of restaurants for a given city/coordinates, including popular categories ("What's on your mind?"), top restaurant chains, and restaurant listings with ratings, cuisines, delivery time, and offers.
| Param | Type | Description |
|---|---|---|
| lat | number | Latitude of location. |
| lng | number | Longitude of location. |
{
"type": "object",
"fields": {
"data": "object containing statusMessage, pageOffset, and cards array with restaurant listings and category widgets",
"statusCode": "integer indicating success (0) or failure"
},
"sample": {
"data": {
"data": {
"cards": [
{
"card": {
"card": {
"@type": "type.googleapis.com/swiggy.gandalf.widgets.v2.GridWidget",
"header": {
"title": "What's on your mind?"
}
}
}
}
],
"statusMessage": "done successfully"
},
"statusCode": 0
},
"status": "success"
}
}About the swiggy.com API
The Swiggy API covers 5 endpoints that expose restaurant discovery, detailed menus, keyword search, and Instamart grocery category data from Swiggy's food delivery platform. With get_restaurant_details, you can retrieve a full restaurant menu including item prices, variants, ratings, and available offers for any Swiggy restaurant ID. Location-aware queries across all endpoints accept lat and lng parameters to return results relevant to a specific delivery address.
Restaurant Discovery and Search
get_restaurants_by_city returns a cards array that includes popular food category widgets (the "What's on your mind?" section), top restaurant chains, and individual restaurant listings. Each listing exposes cuisine tags, delivery time estimates, average ratings, and active offers. search_restaurants accepts a keyword query such as "biryani" or "pizza" and returns results split across RESTAURANT and DISH tabs, including dish-level details with prices and the restaurants that serve them — useful for building ingredient- or dish-first discovery flows.
Restaurant Details and Menus
get_restaurant_details requires a restaurant_id (a numeric string like "23846") and optional delivery coordinates. The response cards array contains restaurant metadata, applicable offers, navigation tabs (Order Online, Dineout), and menu items grouped by category. Each menu item can include price, rating, and variant options, making this endpoint suitable for reconstructing a full menu view or comparing item-level pricing across locations.
Instamart Grocery Data
get_instamart_categories returns Instamart's grocery category tree for a given location, organized into groups such as "Fresh items" and "Grocery & Kitchen", each containing category names and images. An optional store_id parameter targets a specific Instamart fulfillment location. Note that search_instamart_products — which would return individual grocery product results — is currently blocked by AWS WAF protection and does not return data.
- Build a restaurant discovery app that surfaces cuisine categories and delivery time estimates by neighborhood using
get_restaurants_by_city. - Aggregate and compare full menus across multiple Swiggy restaurants for a given dish type using
get_restaurant_detailswith differentrestaurant_idvalues. - Power a dish-first search experience that lets users find which restaurants serve a specific item via
search_restaurants. - Display active Swiggy offers and promotions for a specific restaurant by parsing the offers cards in the
get_restaurant_detailsresponse. - Populate an Instamart grocery category browser for a delivery address using the category groups and images from
get_instamart_categories. - Track how restaurant ratings, delivery times, or offer availability shift across different
lat/lngcoordinates for competitive analysis.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Swiggy have an official developer API?+
What does `search_restaurants` return beyond restaurant names?+
search_restaurants returns results in two tabs: RESTAURANT and DISH. The RESTAURANT tab includes restaurant names, ratings, cuisine tags, and delivery details. The DISH tab returns individual dish names, prices, and the restaurant serving each dish, along with sort and filter option metadata.Can the API return individual grocery product listings from Instamart?+
get_instamart_categories, but search_instamart_products is blocked by WAF protection and does not return product results. You can fork this API on Parse and revise it to add a working Instamart product endpoint if that protection changes.Does the menu returned by `get_restaurant_details` include item-level nutritional or allergen information?+
get_restaurant_details endpoint returns item names, prices, ratings, and variants. Nutritional data and allergen labels are not fields exposed in the current response shape. You can fork the API on Parse and revise it to surface those fields if the underlying restaurant listing includes them.Are results location-specific, and what happens if no coordinates are provided?+
lat and lng as optional inputs. When coordinates are supplied, results reflect restaurants and stores serviceable to that delivery location — including relevant delivery times and offers. Without coordinates, results may fall back to a default or generic view; for accurate local data, passing coordinates is recommended.