Swiggy Area Menu Items API
Menu items from the restaurants listed at one location, without fetching each menu yourself.
- 1 credit per call
- Failed calls are free
- Updated
- swiggy.menu.area_items
{ "summary": { "has_more": true, "latitude": 12.9121181, "longitude": 77.6445548, "total_items": 10 }, "items": [ { "name": "Double the Fizz!", "category": "Hut Café", "default_price_minor": 19800, "description": "Get any 2 mocktails at Rs 189. For nutritional data of this meal, refer to individual products.", "final_price_minor": 18900, "in_stock": true, "is_veg": true, "item_id": "187073896", "offer_ids_text": "b1033082-58df-4382-a0a9-c76b7040acb5 | 2a41f40c-6fbe-4ce5-8c15-35cf6ef311ff", "offer_tags_text": "70% OFF", "restaurant_area_name": "HSR Layout", "restaurant_city": "Bangalore", "restaurant_cuisines_text": "Pizzas", "restaurant_id": "10581", "restaurant_locality": "14th Main", "restaurant_name": "Pizza Hut", "restaurant_rating": 4, "restaurant_rating_text": "4.0", "restaurant_url": "https://www.swiggy.com/city/bangalore/pizza-hut-sector-7-hsr-rest10581", "variant_group_count": 2, "variant_group_names_text": "Choose 1st Mixology | Choose 2nd Mixology", "offer_ids": [ "b1033082-58df-4382-a0a9-c76b7040acb5", "2a41f40c-6fbe-4ce5-8c15-35cf6ef311ff" ], "offer_tags": [ "70% OFF" ], "restaurant_cuisines": [ "Pizzas" ], "variant_group_names": [ "Choose 1st Mixology", "Choose 2nd Mixology" ] }, { "name": "Murg Malai Chicken - Personal", "rating": 4.3, "addon_group_count": 4, "addon_group_names_text": "Extra Cheese Topping | Add More Veg Toppings Personal | Make it a Meal. | Add More Non-Veg Toppings Personal", "category": "Flat 299", "description": "Amazingly flavourful Chicken Malai Tikka, Herbed Onion & Green Capsicum, spicy Red Paprika with flavourful pan sauce and mozzarella cheese.…", "final_price_minor": 29900, "in_stock": true, "item_id": "128413487", "offer_ids_text": "1dccf2be-0d17-4d74-88a1-4fc94344b2dc", "price_minor": 41900, "rating_count": "43 ratings", "restaurant_area_name": "HSR Layout", "restaurant_city": "Bangalore", "restaurant_cuisines_text": "Pizzas", "restaurant_id": "10581", "restaurant_locality": "14th Main", "restaurant_name": "Pizza Hut", "restaurant_rating": 4, "restaurant_rating_text": "4.0", "restaurant_url": "https://www.swiggy.com/city/bangalore/pizza-hut-sector-7-hsr-rest10581", "addon_group_names": [ "Extra Cheese Topping", "Add More Veg Toppings Personal" ], "offer_ids": [ "1dccf2be-0d17-4d74-88a1-4fc94344b2dc" ], "restaurant_cuisines": [ "Pizzas" ] } ]}
| # | Name | Rating | Addon group count | Addon group names text | Category | Default price minor | Description | Final price minor | In stock | Is veg |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Double the Fizz! | Hut Café | 19,800 | Get any 2 mocktails at Rs 189. For nutritional data of this mea… | 18,900 | true | true | |||
| 2 | Murg Malai Chicken - Personal | 4.3 | 4 | Extra Cheese Topping | Add More Veg Toppings Personal | Make it… | Flat 299 | Amazingly flavourful Chicken Malai Tikka, Herbed Onion & Green … | 29,900 | true | ||
| 3 | Dhabe Da Keema - Personal | 4.7 | 4 | Extra Cheese Topping | Add More Veg Toppings Personal | Make it… | Flat 299 | Dhaba style chicken keema masala, with green chiili, crunchy on… | 29,900 | true |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| latitude | number | one of | Latitude; supply together with longitude, or omit both for the default delivery area. From -90 to 90. | 12.9121181 |
| longitude | number | one of | Longitude; supply together with latitude, or omit both for the default delivery area. From -180 to 180. | 77.6445548 |
| continue_on_menu_failures | boolean | no | Continue if a menu fetch fails. | true |
| max_pages | integer | no | Kept for compatibility. Swiggy serves one listing page per location, so one page is fetched; a larger value is applied as 1 and noted in summary.warnings. It still sets the default max_restaurants (page_limit x max_pages). | 1 |
| max_restaurants | integer | no | Maximum restaurants to discover. | 2 |
| menu_item_limit | integer | no | Maximum menu items per restaurant. | 5 |
| offset | string | no | Not supported: Swiggy serves one listing page per location, so there is no next page to continue. Omit it; any value is rejected as invalid_input. | |
| page_limit | integer | no | Requested source page size. Swiggy returns its whole first listing page (about 26 restaurants) whatever this asks for; use max_restaurants to cap results. | 3 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].name | string | The name of the restaurant or dish. | Double the Fizz! |
| items[].category | string | The menu section the dish is in. | Hut Café |
| items[].default_price_minor | integer | The dish's price before offers, in paise. | 19,800 |
| items[].description | string | The dish's description. | Get any 2 mocktails at Rs 189. For nutritional data of this mea… |
| items[].final_price_minor | integer | The dish's price after offers, in paise. | 18,900 |
| items[].in_stock | boolean | Whether the dish can be ordered now. | true |
| items[].is_veg | boolean | Whether the dish is vegetarian. | true |
| items[].item_id | string | Swiggy's ID for the dish. | 187073896 |
| items[].offer_ids | array | Swiggy's IDs for the offers on the dish. | b1033082-58df-4382-a0a9-c76b7040acb5, 2a41f40c-6fbe-4ce5-8c15-3… |
| items[].offer_ids_text | string | The offer IDs as one line. | b1033082-58df-4382-a0a9-c76b7040acb5 | 2a41f40c-6fbe-4ce5-8c15-… |
| items[].offer_tags | array | The offer labels on the restaurant. | 70% OFF |
| items[].offer_tags_text | string | The offer labels as one line. | 70% OFF |
| items[].restaurant_area_name | string | The area of the restaurant. | HSR Layout |
| items[].restaurant_city | string | The restaurant's city. | Bangalore |
| items[].restaurant_cuisines | array | The restaurant's cuisines. | Pizzas |
| items[].restaurant_cuisines_text | string | The restaurant's cuisines as one line. | Pizzas |
| items[].restaurant_id | string | Swiggy's ID for the restaurant, used by the menu endpoint. | 10581 |
| items[].restaurant_locality | string | The restaurant's locality. | 14th Main |
| items[].restaurant_name | string | The restaurant's name. | Pizza Hut |
| items[].restaurant_rating | integer | The restaurant's average rating. | 4 |
| items[].restaurant_rating_text | string | The restaurant's rating as Swiggy shows it. | 4.0 |
| items[].restaurant_url | string | The restaurant's page on Swiggy. | https://www.swiggy.com/city/bangalore/pizza-hut-sector-7-hsr-re… |
| items[].variant_group_count | integer | How many variant choices the dish has. | 2 |
| items[].variant_group_names | array | The variant choices, such as size. | Choose 1st Mixology, Choose 2nd Mixology |
| items[].variant_group_names_text | string | The variant choices as one line. | Choose 1st Mixology | Choose 2nd Mixology |
| items | array | The results. | 3 records |
| summary | object | Totals for this response. | 4 fields |
| summary.has_more | boolean | Whether more results follow this page. | true |
| summary.latitude | number | Latitude. | 12.91 |
| summary.longitude | number | Longitude. | 77.64 |
| summary.total_items | integer | How many results this response holds. | 10 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "swiggy.menu.area_items", "input": { "continue_on_menu_failures": true, "latitude": 12.9121181, "longitude": 77.6445548, "max_pages": 1, "max_restaurants": 2, "menu_item_limit": 5, "page_limit": 3 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "swiggy.menu.area_items", "input": { "continue_on_menu_failures": true, "latitude": 12.9121181, "longitude": 77.6445548, "max_pages": 1, "max_restaurants": 2, "menu_item_limit": 5, "page_limit": 3 }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "swiggy.menu.area_items", "input": { "continue_on_menu_failures": true, "latitude": 12.9121181, "longitude": 77.6445548, "max_pages": 1, "max_restaurants": 2, "menu_item_limit": 5, "page_limit": 3 }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, get the Swiggy area menu items for latitude "12.9121181", longitude "77.6445548" and max restaurants "2". Tell me what it costs before you run it, then show the results as a table.
More from the Swiggy API
- Swiggy All Restaurants API1 credit
- Swiggy Menu API1 credit
- Swiggy Area Restaurants API1 credit
- Swiggy Menu Items API1 credit
- Swiggy List API1 credit
- Swiggy Ads API1 credit
- Swiggy Categories API1 credit
- Swiggy Area Menu Items Grid API1 credit
- Swiggy Restaurants API1 credit
- Swiggy Dishes Search API1 credit
- Swiggy Restaurants Search API1 credit
The same data from other platforms
Swiggy Area Menu Items API FAQ
The short answers. The docs have the long ones.
How much does the Swiggy Area Menu Items API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send latitude or longitude. The input fields below list every option with its type and limits.
Do I need a Swiggy login?
No. It reads public Swiggy data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds swiggy.menu.area_items, checks its price and runs it with the same credits as the REST API.
Your first Swiggy call is free.
Up to 100 free credits to start, no card needed.