Swiggy scraper API

Scrapes Swiggy restaurant listings, menus, search results, ad placements, and Instamart grocery product data via public…

Commerce & delivery 19 capabilities stable 19.6% success rate

Capabilities

Every capability is one POST /execute call that returns structured JSON.

Ads List

swiggy.ads.list

Track Swiggy listing feed ad placements.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":5,"longitude":77.6445548},"capability":"swiggy.ads.list"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
offset integer optional Pagination offset.

Output

Field Type Required Description
ad_tracking_id string optional
cost_for_two_text string optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
latitude number optional
longitude number optional
name string optional
promoted boolean optional
query string optional
rank integer optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
sla_text string optional
source_url string optional

Ads Search

swiggy.ads.search

Track Swiggy search ad placements for a query at a location.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":5,"longitude":77.6445548,"query":"rolls"},"capability":"swiggy.ads.search"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
metadata string optional Additional metadata.
query string required Search keyword.
query_unique_id string optional Unique query identifier.
selected_tab string optional Selected search tab.
tracking_id string optional Tracking identifier.

Output

Field Type Required Description
ad_tracking_id string optional
cost_for_two_text string optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
latitude number optional
longitude number optional
name string optional
promoted boolean optional
query string optional
rank integer optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
sla_text string optional
source_url string optional

Area Ads Search

swiggy.area.ads.search

Track search ad placements across a Swiggy area grid.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"center_latitude":12.9121181,"center_longitude":77.6445548,"limit":5,"max_cells":2,"query":"rolls","radius_km":1,"step_km":1},"capability":"swiggy.area.ads.search"}'

Input

Field Type Required Description
center_latitude number optional Center latitude for radius mode.
center_longitude number optional Center longitude for radius mode.
city string optional City name.
concurrency integer optional Number of concurrent requests.
limit integer optional Maximum number of results.
max_cells integer optional Maximum grid cells to crawl.
max_latitude number optional Maximum latitude of bounding box.
max_longitude number optional Maximum longitude of bounding box.
min_latitude number optional Minimum latitude of bounding box.
min_longitude number optional Minimum longitude of bounding box.
query string required Search keyword.
radius_km number optional Radius in kilometers.
step_km number optional Grid step size in kilometers.

Output

Field Type Required Description
ad_tracking_id string optional
cell_id string optional
cell_latitude number optional
cell_longitude number optional
cell_rank integer optional
cost_for_two_text string optional
crawl_id string optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
latitude number optional
longitude number optional
name string optional
promoted boolean optional
query string optional
rank integer optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
sla_text string optional
source_url string optional

Area Menu Items Grid

swiggy.area.menu_items

Crawl a Swiggy area grid and stream deduplicated menu items.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"center_latitude":12.9121181,"center_longitude":77.6445548,"continue_on_menu_failures":true,"max_cells":1,"max_pages_per_cell":1,"max_restaurants":2,"menu_item_limit":5,"page_limit":10,"radius_km":1,"step_km":1},"capability":"swiggy.area.menu_items"}'

Input

Field Type Required Description
center_latitude number optional Center latitude for radius mode.
center_longitude number optional Center longitude for radius mode.
city string optional City name.
concurrency integer optional Number of concurrent requests.
continue_on_menu_failures boolean optional Continue if a menu fetch fails.
max_cells integer optional Maximum grid cells to crawl.
max_latitude number optional Maximum latitude of bounding box.
max_longitude number optional Maximum longitude of bounding box.
max_pages_per_cell integer optional Maximum pages per cell.
max_restaurants integer optional Maximum restaurants to return.
menu_item_limit integer optional Maximum menu items per restaurant.
min_latitude number optional Minimum latitude of bounding box.
min_longitude number optional Minimum longitude of bounding box.
page_limit integer optional Results per page.
radius_km number optional Radius in kilometers.
step_km number optional Grid step size in kilometers.

Output

Field Type Required Description
addon_group_count integer optional
addon_group_names_text string optional
category string optional
cell_id string optional
cell_latitude number optional
cell_longitude number optional
cell_rank integer optional
crawl_id string optional
default_price_minor integer optional
description string optional
final_price_minor integer optional
image_id string optional
image_url string optional
in_stock boolean optional
is_veg boolean optional
item_id string optional
name string optional
offer_ids_text string optional
offer_tags_text string optional
price_minor integer optional
query string optional
rank integer optional
rating number optional
rating_count integer optional
restaurant_area_name string optional
restaurant_city string optional
restaurant_cuisines array<string> optional
restaurant_cuisines_text string optional
restaurant_id string optional
restaurant_locality string optional
restaurant_name string optional
restaurant_rating number optional
restaurant_rating_text string optional
restaurant_url string optional
source_url string optional
variant_group_count integer optional
variant_group_names_text string optional

Area Restaurants

swiggy.area.restaurants

Crawl a Swiggy area grid and stream deduplicated restaurant rows.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"center_latitude":12.9121181,"center_longitude":77.6445548,"max_cells":2,"max_pages_per_cell":1,"max_restaurants":50,"page_limit":20,"radius_km":1,"step_km":1},"capability":"swiggy.area.restaurants"}'

Input

Field Type Required Description
center_latitude number optional Center latitude for radius mode.
center_longitude number optional Center longitude for radius mode.
city string optional City name.
concurrency integer optional Number of concurrent requests.
max_cells integer optional Maximum grid cells to crawl.
max_latitude number optional Maximum latitude of bounding box.
max_longitude number optional Maximum longitude of bounding box.
max_pages_per_cell integer optional Maximum pages per cell.
max_restaurants integer optional Maximum restaurants to return.
min_latitude number optional Minimum latitude of bounding box.
min_longitude number optional Minimum longitude of bounding box.
page_limit integer optional Results per page.
radius_km number optional Radius in kilometers.
step_km number optional Grid step size in kilometers.

Output

Field Type Required Description
ad_tracking_id string optional
address string optional
area_name string optional
cell_id string optional
cell_latitude number optional
cell_longitude number optional
cell_rank integer optional
city string optional
cloudinary_image_id string optional
cost_for_two_minor integer optional
cost_for_two_text string optional
crawl_id string optional
cuisines array<string> optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
is_open boolean optional
is_pure_veg boolean optional
last_mile_travel_km number optional
last_mile_travel_text string optional
latitude number optional
locality string optional
longitude number optional
name string optional
offer_headers array<string> optional
offer_text string optional
parent_id string optional
promoted boolean optional
query string optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
serviceability string optional
sla_text string optional
slug string optional
source_url string optional
total_ratings_text string optional

Categories

swiggy.categories

List Swiggy food categories and cuisine shortcuts for a location.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":20,"longitude":77.6445548},"capability":"swiggy.categories"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of categories.
longitude number optional Longitude of the location.

Output

Field Type Required Description
entity_id string optional
id string optional
image_id string optional
image_url string optional
latitude number optional
link string optional
longitude number optional
query string optional
rank integer optional
section string optional
source_url string optional

Instamart Categories

swiggy.instamart.categories

Stream Instamart category URLs from sitemaps.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"city":"bangalore","kind":"subcategory","limit":10},"capability":"swiggy.instamart.categories"}'

Input

Field Type Required Description
city string optional City name filter.
kind string optional Category kind filter.
limit integer optional Maximum number of results.
sitemap_url string optional Custom sitemap URL.

Output

Field Type Required Description
brand string optional
category string optional
city string optional
kind string optional
rank integer optional
slug string optional
source_url string optional
subcategory string optional
url string optional

Instamart Category Products

swiggy.instamart.category.products

Stream products from an Instamart category page.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":10,"max_pages":2,"url":"https://www.swiggy.com/instamart/city/bangalore/sc/fresh-vegetables/fresh-vegetables-6822eeeded32000001e25aa2"},"capability":"swiggy.instamart.category.products"}'

Input

Field Type Required Description
category_name string optional Category display name.
category_slug string optional Category slug.
city string optional City name.
filter_id string optional Filter identifier.
filter_name string optional Filter display name.
items_offset integer optional Items offset within page.
latitude number optional Latitude of the location.
limit integer optional Maximum number of products.
longitude number optional Longitude of the location.
max_pages integer optional Maximum pages to fetch.
offset integer optional Pagination offset.
subcategory_slug string optional Subcategory slug.
url string optional Instamart category page URL.

Output

Field Type Required Description
brand string optional
category string optional
city string optional
description string optional
discount_text string optional
image_url string optional
in_stock boolean optional
mrp_minor integer optional
name string optional
price_minor integer optional
product_id string optional
product_url string optional
quantity string optional
rank integer optional
rating number optional
rating_count integer optional
source_url string optional
subcategory string optional
unit string optional

Instamart Product

swiggy.instamart.product

Fetch an Instamart product page.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"url":"https://www.swiggy.com/instamart/p/amul-tub-vanilla-gold-box-DU8QTNCC0S"},"capability":"swiggy.instamart.product"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of items.
longitude number optional Longitude of the location.
product_id string optional Product identifier.
url string optional Instamart product page URL.

Output

Field Type Required Description
count integer optional
items array<object> optional
product_id string optional
source_url string optional

Instamart Product Sitemap

swiggy.instamart.product.sitemap

Stream Instamart PDP URLs from the product sitemap.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":10},"capability":"swiggy.instamart.product.sitemap"}'

Input

Field Type Required Description
limit integer optional Maximum number of URLs.
sitemap_url string optional Custom sitemap URL.

Output

Field Type Required Description
name string optional
product_id string optional
product_url string optional
rank integer optional
source_url string optional

List

swiggy.list

List Swiggy restaurants near a location.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":5,"longitude":77.6445548},"capability":"swiggy.list"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
offset integer optional Pagination offset.

Output

Field Type Required Description
count integer optional
latitude number optional
longitude number optional
next_offset integer optional
raw_meta object optional
results array<object> optional
source_url string optional

List All Restaurants

swiggy.list.all_restaurants

Walk Swiggy listing pages and stream deduplicated restaurants.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"longitude":77.6445548,"max_pages":2,"max_restaurants":10,"page_limit":5},"capability":"swiggy.list.all_restaurants"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
longitude number optional Longitude of the location.
max_pages integer optional Maximum pages to fetch.
max_restaurants integer optional Maximum restaurants to return.
offset integer optional Starting offset.
page_limit integer optional Results per page.

Output

Field Type Required Description
ad_tracking_id string optional
address string optional
area_name string optional
city string optional
cloudinary_image_id string optional
cost_for_two_minor integer optional
cost_for_two_text string optional
cuisines array<string> optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
is_open boolean optional
is_pure_veg boolean optional
last_mile_travel_km number optional
last_mile_travel_text string optional
latitude number optional
locality string optional
longitude number optional
name string optional
offer_headers array<string> optional
offer_text string optional
parent_id string optional
promoted boolean optional
query string optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
serviceability string optional
sla_text string optional
slug string optional
source_url string optional
total_ratings_text string optional

List Restaurants

swiggy.list.restaurants

Stream Swiggy restaurant listing rows.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":5,"longitude":77.6445548},"capability":"swiggy.list.restaurants"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
offset integer optional Pagination offset.

Output

Field Type Required Description
ad_tracking_id string optional
address string optional
area_name string optional
city string optional
cloudinary_image_id string optional
cost_for_two_minor integer optional
cost_for_two_text string optional
cuisines array<string> optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
is_open boolean optional
is_pure_veg boolean optional
last_mile_travel_km number optional
last_mile_travel_text string optional
latitude number optional
locality string optional
longitude number optional
name string optional
offer_headers array<string> optional
offer_text string optional
parent_id string optional
promoted boolean optional
query string optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
serviceability string optional
sla_text string optional
slug string optional
source_url string optional
total_ratings_text string optional

Menu

swiggy.menu

Fetch a Swiggy restaurant menu by ID.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9716,"limit":5,"longitude":77.5946,"restaurant_id":"5938"},"capability":"swiggy.menu"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of menu items.
longitude number optional Longitude of the location.
restaurant_id string required Swiggy restaurant ID.

Output

Field Type Required Description
count integer optional
items array<object> optional
restaurant object optional
source_url string optional

Area Menu Items

swiggy.menu.area_items

Discover restaurants near a location and stream their menu items.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"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},"capability":"swiggy.menu.area_items"}'

Input

Field Type Required Description
continue_on_menu_failures boolean optional Continue if a menu fetch fails.
latitude number optional Latitude of the location.
longitude number optional Longitude of the location.
max_pages integer optional Maximum pages to fetch.
max_restaurants integer optional Maximum restaurants to discover.
menu_item_limit integer optional Maximum menu items per restaurant.
offset integer optional Starting offset.
page_limit integer optional Results per page.

Output

Field Type Required Description
addon_group_count integer optional
addon_group_names_text string optional
category string optional
default_price_minor integer optional
description string optional
final_price_minor integer optional
image_id string optional
image_url string optional
in_stock boolean optional
is_veg boolean optional
item_id string optional
name string optional
offer_ids_text string optional
offer_tags_text string optional
price_minor integer optional
query string optional
rank integer optional
rating number optional
rating_count integer optional
restaurant_area_name string optional
restaurant_city string optional
restaurant_cuisines array<string> optional
restaurant_cuisines_text string optional
restaurant_id string optional
restaurant_locality string optional
restaurant_name string optional
restaurant_rating number optional
restaurant_rating_text string optional
restaurant_url string optional
source_url string optional
variant_group_count integer optional
variant_group_names_text string optional

Menu Items

swiggy.menu.items

Stream Swiggy menu items by restaurant ID.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9716,"limit":5,"longitude":77.5946,"restaurant_id":"5938"},"capability":"swiggy.menu.items"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of menu items.
longitude number optional Longitude of the location.
restaurant_id string required Swiggy restaurant ID.

Output

Field Type Required Description
addon_group_count integer optional
addon_group_names_text string optional
category string optional
default_price_minor integer optional
description string optional
final_price_minor integer optional
image_id string optional
image_url string optional
in_stock boolean optional
is_veg boolean optional
item_id string optional
name string optional
offer_ids_text string optional
offer_tags_text string optional
price_minor integer optional
query string optional
rank integer optional
rating number optional
rating_count integer optional
restaurant_area_name string optional
restaurant_city string optional
restaurant_cuisines array<string> optional
restaurant_cuisines_text string optional
restaurant_id string optional
restaurant_locality string optional
restaurant_name string optional
restaurant_rating number optional
restaurant_rating_text string optional
restaurant_url string optional
source_url string optional
variant_group_count integer optional
variant_group_names_text string optional

Search

swiggy.search

Search Swiggy restaurants near a location by keyword.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":5,"longitude":77.6445548,"query":"rolls"},"capability":"swiggy.search"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
metadata string optional Additional metadata.
query string required Search keyword.
query_unique_id string optional Unique query identifier.
selected_tab string optional Selected search tab.
tracking_id string optional Tracking identifier.

Output

Field Type Required Description
count integer optional
latitude number optional
longitude number optional
query string optional
raw_meta object optional
results array<object> optional
source_url string optional
suggestions array<object> optional

Search Dishes

swiggy.search.dishes

Stream Swiggy dish search results by keyword.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":10,"longitude":77.6445548,"query":"rolls"},"capability":"swiggy.search.dishes"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
metadata string optional Additional metadata.
query string required Search keyword.
query_unique_id string optional Unique query identifier.
tracking_id string optional Tracking identifier.

Output

Field Type Required Description
addon_group_count integer optional
addon_group_names_text string optional
category string optional
default_price_minor integer optional
description string optional
final_price_minor integer optional
image_id string optional
image_url string optional
in_stock boolean optional
is_veg boolean optional
item_id string optional
name string optional
offer_ids_text string optional
offer_tags_text string optional
price_minor integer optional
query string optional
rank integer optional
rating number optional
rating_count integer optional
restaurant_area_name string optional
restaurant_city string optional
restaurant_cuisines array<string> optional
restaurant_cuisines_text string optional
restaurant_id string optional
restaurant_locality string optional
restaurant_name string optional
restaurant_rating number optional
restaurant_rating_text string optional
restaurant_url string optional
source_url string optional
variant_group_count integer optional
variant_group_names_text string optional

Search Restaurants

swiggy.search.restaurants

Stream Swiggy restaurant search results by keyword.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"latitude":12.9121181,"limit":5,"longitude":77.6445548,"query":"rolls"},"capability":"swiggy.search.restaurants"}'

Input

Field Type Required Description
latitude number optional Latitude of the location.
limit integer optional Maximum number of results.
longitude number optional Longitude of the location.
metadata string optional Additional metadata.
query string required Search keyword.
query_unique_id string optional Unique query identifier.
selected_tab string optional Selected search tab.
tracking_id string optional Tracking identifier.

Output

Field Type Required Description
ad_tracking_id string optional
address string optional
area_name string optional
city string optional
cloudinary_image_id string optional
cost_for_two_minor integer optional
cost_for_two_text string optional
cuisines array<string> optional
cuisines_text string optional
delivery_time_minutes integer optional
image_url string optional
is_open boolean optional
is_pure_veg boolean optional
last_mile_travel_km number optional
last_mile_travel_text string optional
latitude number optional
locality string optional
longitude number optional
name string optional
offer_headers array<string> optional
offer_text string optional
parent_id string optional
promoted boolean optional
query string optional
rating number optional
rating_text string optional
restaurant_id string optional
restaurant_url string optional
serviceability string optional
sla_text string optional
slug string optional
source_url string optional
total_ratings_text string optional

Run Swiggy in under a minute

Sign in, create an API key, and try any capability in the playground before you write code.

Get an API key