Swiggy Categories API
The cuisines and food categories Swiggy suggests at a location, in the order it shows them.
- 1 credit per call
- Failed calls are free
- Updated
- swiggy.categories
{ "summary": { "latitude": 12.9121181, "longitude": 77.6445548, "total_items": 12 }, "items": [ { "entity_id": "swiggy://explore?query=Rolls", "id": "600995", "latitude": 12.9121181, "link": "swiggy://explore?query=Rolls", "longitude": 77.6445548, "query": "Rolls", "rank": 1, "section": "Popular Cuisines" }, { "entity_id": "swiggy://explore?query=Pizza", "id": "600813", "latitude": 12.9121181, "link": "swiggy://explore?query=Pizza", "longitude": 77.6445548, "query": "Pizza", "rank": 2, "section": "Popular Cuisines" } ]}
| # | Rank | Category | Section | Latitude | Longitude | Entity id | Id | Link |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | Rolls | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Rolls | 600995 | swiggy://explore?query=Rolls |
| 2 | 2 | Pizza | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Pizza | 600813 | swiggy://explore?query=Pizza |
| 3 | 3 | Tea | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Tea | 601016 | swiggy://explore?query=Tea |
| 4 | 4 | Burgers | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Burgers | 600833 | swiggy://explore?query=Burgers |
| 5 | 5 | Chinese | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Chinese | 600854 | swiggy://explore?query=Chinese |
| 6 | 6 | Cake | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Cake | 600868 | swiggy://explore?query=Cake |
| 7 | 7 | Desserts | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Desserts | 600884 | swiggy://explore?query=Desserts |
| 8 | 8 | North Indian | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=North%20Indian | 600828 | swiggy://explore?query=North%20Indian |
| 9 | 9 | South Indian | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=South%20Indian | 600901 | swiggy://explore?query=South%20Indian |
| 10 | 10 | Sandwich | Popular Cuisines | 12.91 | 77.64 | swiggy://explore?query=Sandwich | 600916 | swiggy://explore?query=Sandwich |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| latitude | number | no | Latitude of the location. | 12.9121181 |
| limit | integer | no | Maximum number of categories. | 20 |
| longitude | number | no | Longitude of the location. | 77.6445548 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].rank | integer | The restaurant's place in the list. | 1 |
| items[].query | string | The search term. | Rolls |
| items[].section | string | The section of Swiggy's search page. | Popular Cuisines |
| items[].entity_id | string | swiggy://explore?query=Rolls | |
| items[].id | string | 600995 | |
| items[].latitude | number | Latitude. | 12.91 |
| items[].link | string | Swiggy's link for the search. | swiggy://explore?query=Rolls |
| items[].longitude | number | Longitude. | 77.64 |
| items | array | The results. | 12 records |
| summary | object | Totals for this response. | 3 fields |
| summary.latitude | number | Latitude. | 12.91 |
| summary.longitude | number | Longitude. | 77.64 |
| summary.total_items | integer | How many results this response holds. | 12 |
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.categories", "input": { "latitude": 12.9121181, "limit": 20, "longitude": 77.6445548 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "swiggy.categories", "input": { "latitude": 12.9121181, "limit": 20, "longitude": 77.6445548 }}''')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.categories", "input": { "latitude": 12.9121181, "limit": 20, "longitude": 77.6445548 }}),});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
Using Upscrape, list the food categories Swiggy suggests in HSR Layout, Bengaluru, in the order it shows them.
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 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 Categories API FAQ
The short answers. The docs have the long ones.
How much does the Swiggy Categories 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.categories, 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.