Swiggy API endpoint
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.
/swiggy/collectionsQuery parameters:
latitude (required) — search center latitude, e.g. 12.9716.longitude (required) — search center longitude, e.g. 77.5946.A location with no curated collections returns an empty collections list, not an error.
Response includes collections[] and is_serviceable. Each collection entry has id, title, and image_url.
is_serviceable reports 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 served location that simply has no curated collections. The status contract is unchanged: an out-of-coverage location still returns 200 with an empty list, never an error. The same field is returned by /swiggy/search's plain nearby browse.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| title | 20 | “North Indian” and 19 other values |
| image_url | 20 | media-assets.swiggy.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| latitude | number | Yes | Search center latitude | 12.9716 | |
| longitude | number | Yes | Search center longitude | 77.5946 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/swiggy/collections?latitude=12.9716&longitude=77.5946" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"collections": [
{
"id": "80440",
"title": "Idli",
"image_url": "https://media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/MERCHANDISING_BANNERS/IMAGES/MERCH/2024/7/2/6ef07bda-b707-48ea-9b14-2594071593d1_Idli.png"
},
{
"id": "80424",
"title": "Dosa",
"image_url": "https://media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/MERCHANDISING_BANNERS/IMAGES/MERCH/2024/7/2/6ef07bda-b707-48ea-9b14-2594071593d1_Dosa.png"
}
],
"is_serviceable": true
}
}Request schema
No body schema
Response schema
#/definitions/swiggy.collectionsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | swiggy.CollectionsResponse | No | ||||
| data.collections | array | No | ||||
| data.collections[].id | string | No | ||||
| data.collections[].image_url | string | No | ||||
| data.collections[].title | string | No | ||||
| data.is_serviceable | boolean | No | IsServiceable reports whether Swiggy delivers to the requested coordinates at all. False means the coordinates are outside Swiggy's delivery coverage, so an empty collections list is a coverage answer rather than a served location that simply has no curated collections. The same field is returned by /swiggy/search's plain nearby browse. | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/swiggy/collections?latitude=12.9716&longitude=77.5946" \
-H "x-api-key: $CRAWLORA_API_KEY"