GET/swiggy/collectionsapiKey2 credits/request
Returns the curated dish/cuisine collections Swiggy's own homepage surfaces for a latitude/longitude (e.g. "Idli", "Biryani", "Dosa"). Each collection's id is the value /swiggy/search's collection_id param takes to browse restaurants within it. The response also carries is_serviceable, which says whether Swiggy delivers to the requested coordinates at all: false means the coordinates are outside Swiggy's delivery coverage, so the empty collections list is a coverage answer rather than a location that simply has no curated collections.
Required: latitude, longitude.
Sampled 14 Oct 2026: 20 items. Filled in every item: id, title, image_url. In the sample: title: “North Indian” and 19 other values; image_url: media-assets.swiggy.com.
Open in Playground
GET/swiggy/restaurantapiKey5 credits/request
Returns one Swiggy restaurant's detail by id: name, city, area, address, postal code, coordinates, phone, cuisines, cost for two, rating and total rating count, delivery time, weekly opening hours with the current open/closed callout, plus the promotions Swiggy currently shows on that restaurant's page (headline discount, conditions, and coupon code when one is needed). Swiggy has no lighter restaurant-detail-only source -- this reads the same upstream as /swiggy/restaurant/menu, just without the menu items.
Required: restaurant_id, latitude, longitude.
Sampled 14 Oct 2026: 7 items. Filled in every item: day, hours. In the sample: day: “Monday” and 6 other values.
Open in Playground
GET/swiggy/restaurant/menuapiKey5 credits/request
Returns one restaurant's full menu grouped into categories, plus its restaurant summary. Every item carries a name, description, category, price, discounted_price when currently discounted, veg/non-veg flag, stock status, an image, and Swiggy's own per-dish rating and review count where it carries one. A category nested under a parent group on the live site (e.g. "Whopper" under "Burgers, Wraps & Tacos") is flattened to one level: its title is the parent's, with subcategory set to its own name. The response also carries the restaurant's current promotions in offers, the same block /swiggy/restaurant returns.
Required: restaurant_id, latitude, longitude.
Sampled 14 Oct 2026: 7 items. Filled in every item: day, hours. In the sample: day: “Monday” and 6 other values.
Open in Playground
GET/swiggy/searchapiKey2 credits/request
Returns restaurants delivering to a latitude/longitude, optionally filtered by a keyword or browsed within a curated collection. With no query and no collection_id this browses the nearby-restaurant listing; with a query it runs a keyword search across restaurant names, cuisines, and dishes; with a collection_id (from /swiggy/collections) it browses restaurants within that curated collection. query and collection_id are mutually exclusive. Keyword search has two result tabs, selected with tab: dish (the default) returns restaurants that serve a matching dish, each with the matching dishes, their prices, and Swiggy's own per-dish rating where it has one, in a dishes array; restaurant returns restaurants whose own name or cuisine matches, a wider set with no dishes. tab, veg, min_rating and offers are only valid together with query. sort works with either query (relevance, delivery_time, rating) or collection_id (those three plus cost_low_to_high and cost_high_to_low), and is rejected on a plain nearby browse. Each restaurant carries its id (the value the restaurant and menu endpoints take), name, cuisines, cost for two, rating, delivery time, open/closed status, a hero image, and, where one is shown, an external_rating block with the third-party aggregate score, count, and source. Where the result card advertises a promotion it also carries offers, the same title/description/tag shape /swiggy/restaurant returns (a listing card never carries a coupon code, and a card showing both a discount and a separate free-delivery benefit returns them as two entries). is_promoted is present and true only for a result Swiggy itself labels a sponsored placement rather than an organic one. unavailable_message is present only when Swiggy says the restaurant cannot currently be ordered from and carries its own reason; it is not the inverse of is_open, since Swiggy reports a restaurant as open while still refusing orders for the requested location. A plain nearby browse also returns is_serviceable, which says whether Swiggy delivers to the requested coordinates at all: false means the coordinates are outside Swiggy's delivery coverage, so the empty restaurants list is a coverage answer rather than a no-matches answer, while an empty list without the field means no matches in a served area. It is omitted on keyword search and on a collection_id browse, neither of which carries Swiggy's own coverage marker.
Required: latitude, longitude. Optional: query, collection_id, sort (5 allowed values: relevance, delivery_time, rating, cost_low_to_high, cost_high_to_low), offset, tab (2 allowed values: dish, restaurant), veg, min_rating, offers.
Sampled 14 Oct 2026: 50 items. Filled in every item: id, name, city, locality, area, address, cuisines, cost_for_two and 6 more. Not in every item: external_rating (23), is_promoted (19). In the sample: rating: 4 to 4.6, median 4.3; name: “Pizza Hut” and 49 other values; image_url: media-assets.swiggy.com; is_open: true in 50 of 50; cuisines: median 4 entries; locality: “Richmond Town” and 41 other values; area: “Central Bangalore” and 23 other values; cost_for_two: “₹600 FOR TWO” and 19 other values.
Open in Playground