Swiggy Area Restaurants API
Restaurants across a whole area: give a city box or a centre and radius, and get one list of restaurants without duplicates.
- 1 credit per call
- Failed calls are free
- Updated
- swiggy.area.restaurants
{ "summary": { "cells": 1, "has_more": true, "total_items": 20 }, "items": [ { "name": "Andhra Gunpowder", "rating": 4.3, "area_name": "HSR Layout", "cell_id": "cell-0001", "cell_latitude": 12.907614, "cell_longitude": 77.639933, "cell_rank": 1, "cost_for_two_minor": 35000, "cost_for_two_text": "₹350 for two", "cuisines_text": "Andhra, Biryani, South Indian", "delivery_time_minutes": 34, "is_open": true, "last_mile_travel_km": 0.9, "last_mile_travel_text": "0.9 km", "latitude": 12.907614, "locality": "Sector 2", "longitude": 77.639933, "parent_id": "10496", "rating_text": "4.3", "restaurant_id": "279024", "restaurant_url": "https://www.swiggy.com/city/bangalore/andhra-gunpowder-sector-2-hsr-layout-rest279024", "serviceability": "SERVICEABLE", "sla_text": "30-35 mins", "total_ratings_text": "9.7K+", "cuisines": [ "Andhra", "Biryani" ] }, { "name": "Aligarh House", "rating": 4.3, "area_name": "HSR Layout", "cell_id": "cell-0001", "cell_latitude": 12.907614, "cell_longitude": 77.639933, "cell_rank": 1, "cost_for_two_minor": 40000, "cost_for_two_text": "₹400 for two", "cuisines_text": "Biryani, Mughlai, Kebabs, Lucknowi, Fast Food, Desserts, Beverages", "delivery_time_minutes": 28, "is_open": true, "last_mile_travel_km": 0.7, "last_mile_travel_text": "0.7 km", "latitude": 12.907614, "locality": "HSR Layout", "longitude": 77.639933, "parent_id": "586111", "rating_text": "4.3", "restaurant_id": "81642", "restaurant_url": "https://www.swiggy.com/city/bangalore/aligarh-house-hsr-layout-rest81642", "serviceability": "SERVICEABLE", "sla_text": "25-30 mins", "total_ratings_text": "11K+", "cuisines": [ "Biryani", "Mughlai" ] } ]}
| # | Restaurant | Cuisines | Rating | Cost for two | Delivery (min) | Locality | Area name | Cell latitude | Cell longitude | Cell rank |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Andhra Gunpowder | Andhra, Biryani, South Indian | 4.3 | ₹350 for two | 34 | Sector 2 | HSR Layout | 12.91 | 77.64 | 1 |
| 2 | Aligarh House | Biryani, Mughlai, Kebabs, Lucknowi, Fast Food, Desserts, Bevera… | 4.3 | ₹400 for two | 28 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 3 | McDonald's | Burgers, Beverages, Cafe, Desserts | 4.3 | ₹400 for two | 24 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 4 | California Burrito | Mexican, American, Salads, Continental, Keto, Healthy Food, Bev… | 4.5 | ₹250 for two | 29 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 5 | Paris Panini - Gourmet Sandwiches & Wraps | sandwich, wrap, Fast Food, Pastas, Italian, Salads, Healthy Foo… | 4.5 | ₹700 for two | 32 | HSR | HSR | 12.91 | 77.64 | 1 |
| 6 | Subway | sandwich, Salads, wrap, Healthy Food | 4.2 | ₹350 for two | 24 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 7 | KFC | Burgers, Fast Food, Rolls & Wraps | 4.2 | ₹400 for two | 26 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 8 | A2B - Adyar Ananda Bhavan | South Indian, Sweets, Chinese | 4.4 | ₹300 for two | 33 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 9 | Burger King | Burgers, American | 4.1 | ₹350 for two | 25 | HSR Layout | HSR Layout | 12.91 | 77.64 | 1 |
| 10 | Chinese Wok | Chinese, Asian, Tibetan, Desserts | 4.1 | ₹250 for two | 24 | 3rd Sector | HSR Layout | 12.91 | 77.64 | 1 |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| center_latitude | number | no | Centre of the area, for a radius search. | 12.9121181 |
| center_longitude | number | no | Centre of the area, for a radius search. | 77.6445548 |
| city | string | no | A city name, as an alternative to coordinates. | |
| concurrency | integer | no | How many points to check at once. | |
| max_cells | integer | no | The most points to check across the area. | 1 |
| max_latitude | number | no | Northern edge of the area box. | |
| max_longitude | number | no | Eastern edge of the area box. | |
| max_pages_per_cell | integer | no | Kept for older requests; one listing is read per point. | 1 |
| max_restaurants | integer | no | The most restaurants to return. | 20 |
| min_latitude | number | no | Southern edge of the area box. | |
| min_longitude | number | no | Western edge of the area box. | |
| page_limit | integer | no | Kept for older requests; each point returns its whole listing. | 10 |
| radius_km | number | no | How far from the centre to look, in kilometres. | 0.5 |
| step_km | number | no | Spacing between the points checked across the area, in kilometres. Smaller finds more restaurants and takes longer. | 1 |
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. | Andhra Gunpowder |
| items[].cuisines_text | string | The cuisines as one line. | Andhra, Biryani, South Indian |
| items[].rating | number | The average rating, out of 5. | 4.3 |
| items[].cost_for_two_text | string | Swiggy's price guide for two people. | ₹350 for two |
| items[].delivery_time_minutes | integer | Swiggy's delivery time estimate, in minutes. | 34 |
| items[].locality | string | The restaurant's locality. | Sector 2 |
| items[].area_name | string | The area of the restaurant. | HSR Layout |
| items[].cell_id | string | The grid cell the area search used. | cell-0001 |
| items[].cell_latitude | number | The grid cell's latitude. | 12.91 |
| items[].cell_longitude | number | The grid cell's longitude. | 77.64 |
| items[].cell_rank | integer | The place within that grid cell. | 1 |
| items[].cost_for_two_minor | integer | The price guide for two, in paise. | 35,000 |
| items[].cuisines | array | The restaurant's cuisines. | Andhra, Biryani, South Indian |
| items[].is_open | boolean | Whether the restaurant is open now. | true |
| items[].last_mile_travel_km | number | Distance from the restaurant to you, in kilometres. | 0.9 |
| items[].last_mile_travel_text | string | That distance as Swiggy shows it. | 0.9 km |
| items[].latitude | number | Latitude. | 12.91 |
| items[].longitude | number | Longitude. | 77.64 |
| items[].parent_id | string | 10496 | |
| items[].rating_text | string | The rating as Swiggy shows it. | 4.3 |
| items[].restaurant_id | string | Swiggy's ID for the restaurant, used by the menu endpoint. | 279024 |
| items[].restaurant_url | string | The restaurant's page on Swiggy. | https://www.swiggy.com/city/bangalore/andhra-gunpowder-sector-2… |
| items[].serviceability | string | Whether the restaurant delivers to your location. | SERVICEABLE |
| items[].sla_text | string | Swiggy's delivery time estimate. | 30-35 mins |
| items[].total_ratings_text | string | How many ratings, as Swiggy rounds it. | 9.7K+ |
| items | array | The results. | 20 records |
| summary | object | Totals for this response. | 3 fields |
| summary.cells | integer | How many grid cells the area search covered. | 1 |
| summary.has_more | boolean | Whether more results follow this page. | true |
| summary.total_items | integer | How many results this response holds. | 20 |
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.area.restaurants", "input": { "center_latitude": 12.9121181, "center_longitude": 77.6445548, "max_cells": 1, "max_pages_per_cell": 1, "max_restaurants": 20, "page_limit": 10, "radius_km": 0.5, "step_km": 1 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "swiggy.area.restaurants", "input": { "center_latitude": 12.9121181, "center_longitude": 77.6445548, "max_cells": 1, "max_pages_per_cell": 1, "max_restaurants": 20, "page_limit": 10, "radius_km": 0.5, "step_km": 1 }}''')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.area.restaurants", "input": { "center_latitude": 12.9121181, "center_longitude": 77.6445548, "max_cells": 1, "max_pages_per_cell": 1, "max_restaurants": 20, "page_limit": 10, "radius_km": 0.5, "step_km": 1 }}),});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
Use Upscrape to find the Swiggy restaurants within half a kilometre of 12.9121, 77.6446 in Bengaluru. Group them by cuisine and tell me the average cost for two in each group.
More from the Swiggy API
- Swiggy All Restaurants API1 credit
- Swiggy Menu 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 Area Menu Items API1 credit
- Swiggy Restaurants API1 credit
- Swiggy Dishes Search API1 credit
- Swiggy Restaurants Search API1 credit
The same data from other platforms
Swiggy Area Restaurants API FAQ
The short answers. The docs have the long ones.
How much does the Swiggy Area Restaurants API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Every input is optional; the input fields below list what each one does.
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.area.restaurants, 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.