Swiggy Ads Search API
Track the sponsored search placements Swiggy returns for a query at a given delivery location.
- 1 credit per call
- Failed calls are free
- Updated
- swiggy.ads.search
{ "summary": { "captured_at": "2026-08-01T10:58:25Z", "latitude": 12.9121181, "longitude": 77.6445548, "query": "rolls", "run_id": "745c7832-1636-40d1-86ee-72d632e4a3e7", "surface": "search", "total_items": 5 }, "items": [ { "rating": 4.3, "ad_entity_id": "1308", "ad_entity_type": "RESTAURANT", "ad_group_id": "655e92ef-238b-4d12-a0b8-80b9b72c1092", "ad_tracking_id": "cid=655e92ef-238b-4d12-a0b8-80b9b72c1092~p=0~adgrpid=655e92ef-238b-4d12-a0b8-80b9b72c1092#ag1~mp=SWIGGY_IN~bl=FOOD~aet=RESTAURANT~aeid=1308…", "area_name": "HSR Layout", "business_line": "FOOD", "campaign_id": "655e92ef-238b-4d12-a0b8-80b9b72c1092", "captured_at": "2026-08-01T10:58:25Z", "cuisines_text": "Rolls & Wraps, Snacks, Fast Food, North Indian", "delivery_time_minutes": 23, "event_id": "96e5d3d9-5d50-4c04-b9e8-3a3300657fbf", "is_promoted": true, "latitude": 12.9121181, "locality": "HSR Layout", "longitude": 77.6445548, "market_platform": "SWIGGY_IN", "offer_text": "50% OFF", "paid_position": "0", "placement": "SEARCH:RESTAURANT", "query": "rolls", "rank": 1, "rating_text": "4.3", "restaurant_id": "1308", "restaurant_name": "Rolls On Wheels - Shawarma & Wraps", "run_id": "745c7832-1636-40d1-86ee-72d632e4a3e7", "search_term": "roll", "sla_text": "20-25 MINS", "surface": "search", "total_ratings_text": "41K+", "cuisines": [ "Rolls & Wraps", "Snacks" ] }, { "rating": 4.1, "area_name": "HSR Layout", "captured_at": "2026-08-01T10:58:25Z", "cuisines_text": "Wraps, rolls, Fast Food, Burger, shawarma, Rice Bowls", "delivery_time_minutes": 21, "is_promoted": false, "latitude": 12.9121181, "locality": "Sector 2, 27th Main Road", "longitude": 77.6445548, "offer_text": "ITEMS", "query": "rolls", "rank": 2, "rating_text": "4.1", "restaurant_id": "17750", "restaurant_name": "Faasos - Wraps, Rolls & Shawarma", "restaurant_url": "https://www.swiggy.com/city/1/faasos-hsr-rest17750", "run_id": "745c7832-1636-40d1-86ee-72d632e4a3e7", "sla_text": "20-25 MINS", "surface": "search", "total_ratings_text": "25K+", "cuisines": [ "Wraps", "rolls" ] } ]}
| # | Rating | Ad entity type | Area name | Business line | Captured at | Cuisines text | Delivery time minutes | Is promoted | Latitude | Locality |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 4.3 | RESTAURANT | HSR Layout | FOOD | 2026-08-01T10:58:25Z | Rolls & Wraps, Snacks, Fast Food, North Indian | 23 | true | 12.91 | HSR Layout |
| 2 | 4.1 | HSR Layout | 2026-08-01T10:58:25Z | Wraps, rolls, Fast Food, Burger, shawarma, Rice Bowls | 21 | false | 12.91 | Sector 2, 27th Main Road | ||
| 3 | 4.4 | RESTAURANT | HSR | FOOD | 2026-08-01T10:58:25Z | Burgers, Cafe | 19 | true | 12.91 | HSR Layout |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| query | string | yes | Search keyword. | rolls |
| latitude | number | no | Latitude of the location. | 12.9121181 |
| limit | integer | no | Maximum number of results. | 5 |
| longitude | number | no | Longitude of the location. | 77.6445548 |
| metadata | string | no | Additional metadata. | |
| query_unique_id | string | no | Unique query identifier. | |
| selected_tab | string | no | Selected search tab. | |
| tracking_id | string | no | Tracking identifier. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | Example |
|---|---|---|
| items[].rating | number | 4.3 |
| items[].ad_entity_id | string | 1308 |
| items[].ad_entity_type | string | RESTAURANT |
| items[].ad_group_id | string | 655e92ef-238b-4d12-a0b8-80b9b72c1092 |
| items[].ad_tracking_id | string | cid=655e92ef-238b-4d12-a0b8-80b9b72c1092~p=0~adgrpid=655e92ef-2… |
| items[].area_name | string | HSR Layout |
| items[].business_line | string | FOOD |
| items[].campaign_id | string | 655e92ef-238b-4d12-a0b8-80b9b72c1092 |
| items[].captured_at | string | 2026-08-01T10:58:25Z |
| items[].cuisines | array | Rolls & Wraps, Snacks, Fast Food |
| items[].cuisines_text | string | Rolls & Wraps, Snacks, Fast Food, North Indian |
| items[].delivery_time_minutes | integer | 23 |
| items[].event_id | string | 96e5d3d9-5d50-4c04-b9e8-3a3300657fbf |
| items[].is_promoted | boolean | true |
| items[].latitude | number | 12.91 |
| items[].locality | string | HSR Layout |
| items[].longitude | number | 77.64 |
| items[].market_platform | string | SWIGGY_IN |
| items[].offer_text | string | 50% OFF |
| items[].paid_position | string | 0 |
| items[].placement | string | SEARCH:RESTAURANT |
| items[].query | string | rolls |
| items[].rank | integer | 1 |
| items[].rating_text | string | 4.3 |
| items[].restaurant_id | string | 1308 |
| items[].restaurant_name | string | Rolls On Wheels - Shawarma & Wraps |
| items[].run_id | string | 745c7832-1636-40d1-86ee-72d632e4a3e7 |
| items[].search_term | string | roll |
| items[].sla_text | string | 20-25 MINS |
| items[].surface | string | search |
| items[].total_ratings_text | string | 41K+ |
| items | array | 3 records |
| summary | object | 7 fields |
| summary.captured_at | string | 2026-08-01T10:58:25Z |
| summary.latitude | number | 12.91 |
| summary.longitude | number | 77.64 |
| summary.query | string | rolls |
| summary.run_id | string | 745c7832-1636-40d1-86ee-72d632e4a3e7 |
| summary.surface | string | search |
| summary.total_items | integer | 5 |
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.ads.search", "input": { "latitude": 12.9121181, "limit": 5, "longitude": 77.6445548, "query": "rolls" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "swiggy.ads.search", "input": { "latitude": 12.9121181, "limit": 5, "longitude": 77.6445548, "query": "rolls" }}''')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.ads.search", "input": { "latitude": 12.9121181, "limit": 5, "longitude": 77.6445548, "query": "rolls" }}),});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 ads search for latitude "12.9121181", longitude "77.6445548" and query "rolls". Tell me what it costs before you run it, then show the results as a table.
More from the Swiggy API
- Swiggy All Restaurants API3 credits
- Swiggy Menu API3 credits
- Swiggy Area Restaurants API3–25 credits
- Swiggy Menu Items API3 credits
- Swiggy List API3 credits
- Swiggy Ads API1 credit
- Swiggy Categories API1 credit
- Swiggy Area Menu Items Grid API10–20 credits
- Swiggy Area Menu Items API10–25 credits
- Swiggy Restaurants API3 credits
- Swiggy Restaurants Search API3 credits
- Swiggy Dishes Search API5 credits
- Swiggy Area Ads Search API1 credit
- Swiggy Search API1 credit
The same data from other platforms
Swiggy Ads Search API FAQ
The short answers. The docs have the long ones.
How much does the Swiggy Ads Search 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 query. 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.ads.search, 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.