Discover/Swiggy API
live

Swiggy APIswiggy.com

Access Swiggy restaurant listings, full menus, search results, and Instamart grocery categories via 5 structured API endpoints.

Endpoint health
verified 4d ago
get_instamart_categories
get_restaurants_by_city
search_restaurants
get_restaurant_details
4/4 passing latest checkself-healing
Endpoints
5
Updated
21d ago

What is the Swiggy 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.

Try it
Latitude of location.
Longitude of location.
api.parse.bot/scraper/0fca980e-bb1b-497c-9e70-fe66ef61fab8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace swiggy-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Swiggy API — browse restaurants, search dishes, explore grocery categories."""
from parse_apis.swiggy_api import Swiggy, RestaurantNotFound

client = Swiggy()

# Browse restaurants in Bangalore (default coordinates)
city = client.citylistings.get(lat=12.9716, lng=77.5946)
print(f"City listing status: {city.status_code}")
print(f"Number of cards: {len(city.data.cards)}")

# Search for pizza dishes/restaurants
results = client.restaurants.search(query="pizza", lat=12.9716, lng=77.5946)
print(f"Search status: {results.status_code}")
print(f"Search result cards: {len(results.data.cards)}")

# Get details for a specific restaurant
try:
    detail = client.restaurants.get(restaurant_id="23846", lat=12.9716, lng=77.5946)
    print(f"Restaurant detail status: {detail.status_code}")
    print(f"Menu sections: {len(detail.data.cards)}")
except RestaurantNotFound as exc:
    print(f"Restaurant not found: {exc.restaurant_id}")

# Explore Instamart grocery categories
groceries = client.grocerylistings.get(lat=12.9716, lng=77.5946)
print(f"Grocery listing status: {groceries.status_code}")

print("exercised: citylistings.get / restaurants.search / restaurants.get / grocerylistings.get")
All endpoints · 5 totalmissing one? ·

Get list of restaurants for a given city/coordinates, including popular categories, top restaurant chains, and restaurant listings with ratings, cuisines, delivery time, and offers. Returns Swiggy's card-based response with heterogeneous widgets for the city homepage.

Input
ParamTypeDescription
latnumberLatitude of location.
lngnumberLongitude of location.
Response
{
  "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": {
      "cards": [
        {
          "card": {
            "card": {
              "@type": "type.googleapis.com/swiggy.gandalf.widgets.v2.GridWidget",
              "header": {
                "title": "What's on your mind?"
              }
            }
          }
        }
      ],
      "pageOffset": {
        "nextOffset": "CJhlELQ4KID405flsYCjWjCnEzgB"
      },
      "statusMessage": "done successfully"
    },
    "statusCode": 0
  }
}

About the Swiggy API

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.

Reliability & maintenanceVerified

The Swiggy API is a managed, monitored endpoint for swiggy.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when swiggy.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official swiggy.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • 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_details with different restaurant_id values.
  • 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_details response.
  • 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/lng coordinates for competitive analysis.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Swiggy have an official developer API?+
Swiggy does not publish a public developer API or official API documentation for third-party use. There is no documented partner API available at swiggy.com/developers or equivalent.
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?+
Not currently. The API covers Instamart category groups and category names via 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?+
The 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?+
All five endpoints accept 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.
Page content last updated . Spec covers 5 endpoints from swiggy.com.
Related APIs in Food DiningSee all →
ubereats.com API
Search for restaurants by cuisine or location and browse their menus, prices, ratings, and delivery times. Get detailed information about specific restaurants and menu items to find exactly what you want to order.
instacart.com API
Search for grocery products across multiple retailers, view store locations and availability, and access detailed product information including prices and descriptions. Find the best deals and nearest stores offering the items you need.
bigbasket.com API
Browse and search BigBasket's online grocery catalog. Retrieve product details, pricing, stock availability, category trees, search suggestions, homepage promotions, and delivery coverage — all in one API.
postmates.com API
Browse and search Postmates restaurants to discover menus, items, and detailed restaurant information all in one place. Get category suggestions, view complete menus, and access specific item details to find exactly what you're looking for.
doordash.com API
Search for restaurants on DoorDash and view their menus, hours, and current promotions to find exactly what you're looking for. Get detailed information about any restaurant including pricing, availability, and active discounts across the US.
pedidosya.com.ar API
Browse restaurants and menus available in Argentine cities through PedidosYa, search for specific restaurants by name or food category, and retrieve complete menu offerings including items, prices, and available options.
wolt.com API
Browse and discover restaurants, stores, and food items available on the Wolt delivery platform, with access to detailed menus, venue information, and the ability to search across categories and cities. Filter venues by location, explore their complete offerings, and find specific items to compare options across the Wolt network.
slicelife.com API
Search for pizza restaurants across multiple cities, view detailed restaurant information, and browse complete menus to find exactly what you're looking for. Discover pizza spots in all available cities and get everything you need to make your ordering decision.