Swiggy Instamart Category Listing Scraper API
The Swiggy Instamart Category Listing Scraper API walks a whole Instamart category one page at a time and stops when the platform stops offering a next page. Use it instead of search when you want a complete catalogue rather than the products a query happens to match. Each successful request costs 5 API credits.
Endpoint:
https://api.scrapingdog.com/swiggy/instamart/listingAPI Parameters
π
Scrapingdog Parameters
api_keyRequiredYour personal API key. Available on your dashboard.
Type: String
π
Identifying the Category
urlOptionalAn Instamart category URL, for examplehttps://instamart.in/sc/fresh-vegetables/nectr-69380ea9945fd90001ca9e57/st. The three fields below are derived from it, which is why this form exists β it saves you assembling them by hand.
Type: Stringfilter_idOptionalThe 24-character hex id at the end of the category URL.
The id alone is not enough. Instamart matches the category name and filter name as well, and rejects a request carrying only the id β the likeliest thing to get wrong here, because the id looks like it should be sufficient.
Type: Stringcategory_nameOptionalThe parent category, for exampleFresh Vegetables. From a URL, this is the first path slug with hyphens turned into spaces and title-cased.
Type: Stringfilter_nameOptionalThe category itself, for exampleExotic Vegetables. From a URL, this is the second slug minus the trailing id, given the same treatment.
Type: Stringtaxonomy_typeOptionalInstamart’s taxonomy for the category.
Default:Speciality taxonomy 1
Rarely needs changing.
Type: Stringnext_page_tokenOptionalReturned by the previous response. Supply it alone β it already carries the store, the category and the position.
Supply one of:url, or all three offilter_id,category_nameandfilter_name, ornext_page_token.
Type: String
π
Location
pincodeOptionalIndian pincode, geocoded by Instamart. One ofpincode,latandlng, orstore_idis required.
Cannot be combined withlatandlng.
Type: StringlatOptionalLatitude. Pair withlng, and do not send apincodeas well.
Type: NumberlngOptionalLongitude. Note Instamart takeslngβ Blinkit takeslon.
Type: Numberstore_idOptionalAstore_idfrom an earlier response, and the fastest way in.
Resolving a pincode costs three upstream calls on the first request and one on every request after it. On a measured category the first page took 12.6s and each later page about 2.4s. For bulk work, reusestore_idrather than sending a pincode each time.
Type: String
β
οΈ Scrapingdog Options
htmlOptionalSet totrueto receive the raw upstream body instead of the parsed response.
Default:false
Type: Boolean
API Examples

Code to Integrate
curl "https://api.scrapingdog.com/swiggy/instamart/listing?api_key=APIKEY&category_name=Fresh%20Vegetables&filter_name=Exotic%20Vegetables&filter_id=6822eeeded32000001e25aa4&pincode=302018"
import requests url = "https://api.scrapingdog.com/swiggy/instamart/listing" params = { "api_key": "APIKEY", "category_name": "Fresh%20Vegetables", "filter_name": "Exotic%20Vegetables", "filter_id": "6822eeeded32000001e25aa4", "pincode": "302018" } response = requests.get(url, params=params, timeout=60) if response.status_code == 200: data = response.json() for item in data["products"]: print(item["position"], item["name"]) print("next:", data["next_page_token"]) else: print(f"Request failed with status code: {response.status_code}")
const axios = require('axios'); axios.get('https://api.scrapingdog.com/swiggy/instamart/listing', { params: { api_key: 'APIKEY', category_name: 'Fresh%20Vegetables', filter_name: 'Exotic%20Vegetables', filter_id: '6822eeeded32000001e25aa4', pincode: '302018' } }).then(response => console.log(response.data.products)) .catch(error => console.error(error.message));
<?php $url = 'https://api.scrapingdog.com/swiggy/instamart/listing?' . http_build_query([ 'api_key' => 'APIKEY', 'category_name' => 'Fresh%20Vegetables', 'filter_name' => 'Exotic%20Vegetables', 'filter_id' => '6822eeeded32000001e25aa4', 'pincode' => '302018', ]); echo file_get_contents($url);
require 'net/http' require 'uri' url = URI.parse("https://api.scrapingdog.com/swiggy/instamart/listing") url.query = URI.encode_www_form('api_key' => 'APIKEY', 'category_name' => 'Fresh%20Vegetables', 'filter_name' => 'Exotic%20Vegetables', 'filter_id' => '6822eeeded32000001e25aa4', 'pincode' => '302018') http = Net::HTTP.new(url.host, url.port) http.use_ssl = true puts http.request(Net::HTTP::Get.new(url)).body
import java.io.*; import java.net.*; public class Main { public static void main(String[] args) throws Exception { String apiUrl = "https://api.scrapingdog.com/swiggy/instamart/listing?api_key=APIKEY&category_name=Fresh%20Vegetables&filter_name=Exotic%20Vegetables&filter_id=6822eeeded32000001e25aa4&pincode=302018"; URL url = new URL(apiUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = reader.readLine()) != null) System.out.println(line); conn.disconnect(); } }
API Response
{
"search_parameters": {
"category_name": "Fresh Vegetables",
"filter_name": "Exotic Vegetables",
"filter_id": "6822eeeded32000001e25aa4",
"pincode": "560001",
"page": 1
},
"total_time_taken": 12.12,
"location": {
"lat": 12.9715987,
"lng": 77.5945627,
"address": "Bengaluru, Karnataka 560001, India"
},
"store_id": "1401477",
"total_results": 20,
"total_available": null,
"next_page_token": "eyJzIjoiMTQwMTQ3NyIsImYiOiI2ODIyZWVlZGVkMzIwMDAwMDFlMjVhYTQi...",
"products": [
{
"position": 1,
"spin_id": "AHK7JFBKCS",
"sku_id": "UB2HSIX7SF",
"product_id": "RPR7PDT7SR",
"parent_product_id": "PDPFO4TAIN",
"name": "Button Mushroom (Anabe)",
"brand": "Fruits and Vegetables",
"quantity": "1 Pack",
"description": "Plump, earthy flavor for stir-fries & soups!",
"mrp": 93,
"offer_price": 74,
"discount": 19,
"discount_percent": 20,
"offers": ["20% OFF"],
"in_stock": true,
"available": true,
"max_order_quantity": 6,
"category": "Leafy and Seasonings",
"sub_category": "Exotic Vegetables",
"super_category": "Fruits and Vegetables",
"weight_in_grams": 200,
"is_sponsored": false,
"pod_id": "1401477",
"product_url": "https://instamart.in/p/..."
},
{
"position": 2,
"spin_id": "K7JFBKCSAH",
"name": "Broccoli",
"quantity": "1 Piece",
"description": "Rich in fiber, fresh & perfect for stir-fries",
"mrp": 65,
"offer_price": 52,
"discount": 13,
"discount_percent": 20,
"offers": ["20% OFF"],
"in_stock": true,
"category": "Leafy and Seasonings",
"sub_category": "Exotic Vegetables",
"product_url": "https://instamart.in/p/..."
}
]
}