Discover/Swiggy API
live

Swiggy APIswiggy.com

Access Swiggy restaurant listings, full menus, dineout details, and Instamart grocery categories via 7 structured API endpoints.

This API takes change requests — .
Endpoint health
verified 5h ago
search_restaurants
get_restaurants_by_city
get_restaurant_details
get_instamart_categories
search_dineout_restaurants
6/6 passing latest checkself-healing
Endpoints
7
Updated
5h ago

What is the Swiggy API?

The Swiggy API provides 7 endpoints covering food delivery restaurants, full menu data, dineout search, and Instamart grocery categories from swiggy.com. Using get_restaurant_details, you can retrieve every menu category, item price, variant, and offer for a given restaurant ID. search_restaurants returns matching dishes and restaurants by keyword, and search_dineout_restaurants exposes dine-in venues with ratings, cuisines, locality, and cost-for-two.

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 · 7 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

The get_restaurants_by_city endpoint accepts lat and lng coordinates and returns a card-based response that mirrors Swiggy's city homepage — popular category widgets, top chains, and individual restaurant listings each carrying cuisine tags, delivery time estimates, ratings, and active offers. search_restaurants takes a keyword query (e.g. "biryani" or "pizza") alongside coordinates and returns results split into RESTAURANT and DISH tabs, so you can distinguish whether a match is a venue or a specific menu item.

Full Menu and Restaurant Details

get_restaurant_details requires a numeric restaurant_id string and optional delivery coordinates. The response includes the restaurant's metadata, available tabs (Order Online, Dineout), all grouped menu categories, individual item names and prices, variants, ratings, and any live offers. This is the right endpoint when you need a complete picture of what a restaurant serves and at what price.

Dineout (Dine-In) Data

search_dineout_restaurants searches Swiggy's dine-in product by keyword and returns an array of matching venues, each with avg_rating, total_ratings, cost_for_two, locality, area_name, and city. get_dineout_restaurant_details goes deeper on a single venue: it returns structured timings (day/hours schedule), an offers array, a highlights array, a location object with formatted address and coordinates, and the canonical dineout_url.

Instamart Grocery Categories

get_instamart_categories returns Swiggy Instamart's grocery category tree — groups like Fresh items and Grocery & Kitchen — for a given location and optional store_id. Note that search_instamart_products (product-level grocery search) is currently blocked by WAF protection and will not return results.

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
5h ago
Latest check
6/6 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 top chains and popular cuisine categories for any Indian city using get_restaurants_by_city.
  • Aggregate and compare menu prices across multiple restaurants for a given dish using search_restaurants DISH tab results.
  • Populate a food-ordering interface with full item variants, prices, and offers by calling get_restaurant_details for a specific restaurant ID.
  • Create a dine-in venue finder that shows ratings, cost-for-two, and opening hours using search_dineout_restaurants and get_dineout_restaurant_details.
  • Monitor live offers and discounts on dine-in restaurants by checking the offers array in get_dineout_restaurant_details responses.
  • Display Instamart grocery category navigation for a location-aware grocery browsing feature using get_instamart_categories.
  • Track delivery time estimates and cuisine coverage across neighborhoods by querying get_restaurants_by_city with varying coordinates.
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 public developer API?+
Swiggy does not publish a public developer API or API documentation for third-party access. There is no official API portal or key issuance process available to external developers.
What does `get_dineout_restaurant_details` return beyond basic info?+
It returns a structured timings object with day-by-day opening hours, an offers array with title and description per offer, a highlights array of feature strings (e.g. parking, outdoor seating), a location object with formatted_address, lat, lng, area_name, and city, plus ratings with a numeric value and review count. It also includes the canonical dineout_url for linking directly to the venue's Swiggy Dineout page.
Does `search_restaurants` let you filter by cuisine, rating, or delivery time?+
The endpoint returns sort and filter option metadata alongside results, but filtering is applied by passing a query keyword — there are no dedicated filter parameters like cuisine or min_rating in the current input spec. The results come back pre-grouped into RESTAURANT and DISH tabs. You can fork the API on Parse and revise it to add parameter-driven filtering if your use case requires it.
Is Instamart product-level search available?+
Not currently. The search_instamart_products endpoint is blocked by AWS WAF protection and does not return results. get_instamart_categories does work and returns the grocery category tree. You can fork the API on Parse and revise it to add product-level data once the endpoint becomes accessible.
Does the API cover Swiggy's order history, user accounts, or real-time delivery tracking?+
No user-specific or account-level data is covered. The API covers public-facing restaurant listings, menus, dineout venue data, and Instamart grocery categories — all without requiring a Swiggy user login. You can fork the API on Parse and revise it to add any additional public endpoints you need.
Page content last updated . Spec covers 7 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.
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.
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.
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.
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.
chownow.com API
Search for nearby restaurants, view their operating hours and delivery zones, and browse complete menus with all items, modifiers, and prices. Access detailed restaurant information and locations to find exactly what you're looking for on the ChowNow marketplace.
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.