Swiggy Instamart Products Search API
Search by keyword at a pincode or coordinates.
Sendquery
Returnsnamequantityoffer_price_paisemrp_paisein_stockstore_id
Query Instamart products, pack prices, stock, categories, search placement and delivery coverage by pincode or coordinates.
| # | Product | Pack | Price (paise) | MRP (paise) | In stock | Store | Position | Result kind | Sponsored | Mrp |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Nandini Shubham Milk | 500 ml x 4 | 10,800 | 10,800 | true | 1396284 | 1 | match | 108 | |
| 2 | Nandini Shubham Milk | 500 ml x 2 | 5400 | 5400 | true | 1396284 | 2 | match | 54 | |
| 3 | Nandini Shubham Milk | 500 ml | 2700 | 2700 | true | 1396284 | 3 | match | 27 | |
| 4 | Arokya Toned Milk | 500 ml x 2 | 5200 | 5200 | true | 1396284 | promoted | true | 52 | |
| 5 | Arokya Toned Milk | 500 ml | 2600 | 2600 | true | 1396284 | promoted | true | 26 | |
| 6 | Akshayakalpa High Protein Cow Milk Elaichi | 250 ml | 10,000 | 10,000 | true | 1396284 | promoted | true | 100 | |
| 7 | Nandini Pasteurised Toned Milk | 500 ml x 4 | 9600 | 9600 | true | 1396284 | 4 | match | 96 | |
| 8 | Nandini Pasteurised Toned Milk | 500 ml x 2 | 4800 | 4800 | true | 1396284 | 5 | match | 48 | |
| 9 | Nandini Pasteurised Toned Milk | 500 ml | 2400 | 2400 | true | 1396284 | 6 | match | 24 | |
| 10 | Akshayakalpa High Protein Cow Milk Elaichi | 250 ml | 10,000 | 10,000 | true | 1396284 | promoted | 100 |
| # | Category | Category ID | Section | Taxonomy | Image |
|---|---|---|---|---|---|
| 1 | Atta, Rice and Dal | 6903b01ed2c61b000112ba29 | Grocery & Kitchen | taxonomy 5 | NI_CATALOG/IMAGES/CIW/2025/11/17/c65894e4-5b70-4b9d-9d87-baba38… |
| 2 | Masalas | 693981bf64f19a0001f8a5b1 | Grocery & Kitchen | taxonomy 5 | NI_CATALOG/IMAGES/CIW/2026/2/23/e67eb511-3e25-460d-88ff-ca465b9… |
| 3 | Oils and Ghee | 6939210c08a8db0001c27a10 | Grocery & Kitchen | taxonomy 5 | NI_CATALOG/IMAGES/CIW/2025/12/12/3bb2b2b7-d74b-4a29-825a-e94c6e… |
| 4 | Cereals and Breakfast | 69492faa195bc000019a3b08 | Grocery & Kitchen | taxonomy 5 | NI_CATALOG/IMAGES/CIW/2025/12/15/fe86cf80-90b0-49ea-b982-32c0e0… |
| 5 | Cold Drinks and Juices | 6903b0c295d8230001064c73 | Snacks & drinks | taxonomy 10 | NI_CATALOG/IMAGES/CIW/2025/10/8/5bec1f84-4aa5-49ae-9c3d-9a0dcb9… |
| 6 | Ice Creams and Frozen Desserts | 6903b0c295d8230001064c86 | Snacks & drinks | taxonomy 10 | NI_CATALOG/IMAGES/CIW/2025/10/8/5b0984b8-303b-4a80-81b7-9656f19… |
| 7 | Chips and Namkeens | 6903b0c295d8230001064c96 | Snacks & drinks | taxonomy 10 | NI_CATALOG/IMAGES/CIW/2025/10/8/b654b666-43b5-4599-9919-98f9c7a… |
| 8 | Chocolates | 693d17b2c0e8870001d2d8f5 | Snacks & drinks | taxonomy 10 | NI_CATALOG/IMAGES/CIW/2025/12/15/793d9312-ace1-42d4-9b5e-3e38b3… |
| 9 | Biscuits and Cakes | 693c23bd4df316000117b87f | Snacks & drinks | taxonomy 10 | NI_CATALOG/IMAGES/CIW/2025/12/15/e8c6cc4b-353f-42d6-b51b-b99fe4… |
| 10 | Tea, Coffee and Milk drinks | 6903b0c295d8230001064cf8 | Snacks & drinks | taxonomy 10 | NI_CATALOG/IMAGES/CIW/2025/10/31/3c3ad889-9dd7-4964-8bb5-c5ef24… |
| # | Product | Pack | Price (paise) | MRP (paise) | In stock | Store | Mrp | Brand | Category | Discount |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Cowpea Beans (Lobia Phaliyaan) | 250 g | 2200 | 2800 | true | 1062419 | 28 | Fruits and Vegetables | Vegetables | 6 |
| 2 | Indian Tomato (Tamatar) | 500 g x 2 | 7600 | 9800 | true | 1062419 | 98 | Fruits & Vegetables Category | Vegetables | 22 |
| 3 | Indian Tomato (Tamatar) | 500 g | 3900 | 4900 | true | 1062419 | 49 | Fruits & Vegetables Category | Vegetables | 10 |
| 4 | Green Chilli (Hari Mirch) | 100 g x 2 | 2400 | 3200 | true | 1062419 | 32 | Fruits & Vegetables Category | Leafy and Seasonings | 8 |
| 5 | Green Chilli (Hari Mirch) | 100 g | 1300 | 1600 | true | 1062419 | 16 | Fruits & Vegetables Category | Leafy and Seasonings | 3 |
| 6 | Onion (Pyaaz) | 1 kg | 7200 | 9000 | true | 1062419 | 90 | Fruits & Vegetables Category | Vegetables | 18 |
| 7 | Potato (Aloo) | 1 kg x 3 | 6900 | 9000 | true | 1062419 | 90 | Fruits & Vegetables Category | Vegetables | 21 |
| 8 | Potato (Aloo) | 1 kg | 2400 | 3000 | true | 1062419 | 30 | Fruits & Vegetables Category | Vegetables | 6 |
| 9 | Ooty Carrot (Gajar) | 250 g x 2 | 5400 | 7000 | true | 1062419 | 70 | Fruits & Vegetables Category | Vegetables | 16 |
| 10 | Ooty Carrot (Gajar) | 250 g | 2800 | 3500 | true | 1062419 | 35 | Fruits & Vegetables Category | Vegetables | 7 |
What each one takes and what it returns. Open one for a real response, every input and every field.
Search by keyword at a pincode or coordinates.
Sendquery
Returnsnamequantityoffer_price_paisemrp_paisein_stockstore_id
Look up a product by ID or supported Instamart link to see pack variations, prices, availability, descriptions and highlights.
Sendstore_idorpincodeorlatorlng
Returnsnameskuquantityoffer_price_paisemrp_paisein_stock
Get category names, IDs, sections and taxonomy so you can browse the local catalogue programmatically.
Sendstore_idorpincodeorlatorlng
Returnsnameidsectiontaxonomy_typeimage
List products in a category or supported category link with pack prices, stock, filters and pagination.
Sendstore_idorpincodeorlatorlngorcategory_url
Returnsnamequantityoffer_price_paisemrp_paisein_stockstore_id
Get products currently shown on the Instamart home feed for a pincode or coordinates, with pagination.
Sendlatorlngorpincode
Returnsnamequantityoffer_price_paisemrp_paisein_stockstore_id
See autocomplete suggestions for a query at a pincode.
Sendquery
Returnstexthighlighted_textlinktype
Search by area, city or pincode and get place IDs you can resolve to coordinates.
Sendquery
Returnsdescriptionplace_id
Turn a returned place ID into coordinates and readable location text.
Sendplace_id
Returnslatitudelongitudetitlesubtitle
Check whether Instamart serves a pincode or coordinates and get the serving store and ETA when returned.
Sendlatitudeorlongitudeorpincode
Returnslatitudelongitudeserviceablestore_ideta_minutescaptured_at
Get the delivery estimate and serviceability returned for a pincode or coordinates.
Sendlatitudeorlongitudeorpincode
Returnslatitudelongitudeserviceablestore_ideta_minutescaptured_at
Price, stock, search, range and delivery checks for the locations you choose.
Follow offer price and MRP for the same pack across delivery points or over time.
ProductProducts searchCategory productsCheck priority products directly at each location and tell confirmed stockouts from products that only dropped out of search.
ProductTrack where your products appear for important queries and what Instamart suggests as people type.
Products searchSuggestions searchSee which products, brands and pack sizes appear in a category in each location, and what changed since your last check.
CategoriesCategory productsCapture the products, prices and discount labels on the home feed for selected locations.
Home productsCheck which pincodes or coordinates Instamart serves, and the delivery time it quotes at the moment you check.
Resolve serviceabilityDelivery ETAResolve locationOne request shape for every Swiggy Instamart endpoint: the endpoint ID and its input. No SDK needed.
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-instamart.products.search", "input": { "pincode": "560034", "query": "milk" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "swiggy-instamart.products.search", "input": { "pincode": "560034", "query": "milk" }}''')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-instamart.products.search", "input": { "pincode": "560034", "query": "milk" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
{ "next_offset": "im1.eyJzdG9yZV9pZCI6IjEzOTYyODQiLCJ2IjoxLCJzY29wZSI6IjlhZDQwMGM1NTNkMmFhYWZhYzA1MDY4MjExNGFhMmMzODE3MjBiYjE4NTllMjdkMzkyZTMyNDAxZWZlMzY0NjQ…", "pagination_status": "continuation_available", "available_filters": { "facets": { "rating": [ "3+", "4+" ], "brand": [ "Amul", "Akshayakalpa" ], "type": [ "Fresh Milk", "Tetra Milk" ] }, "sorts": [ { "key": "relevance", "label": "Relevance" }, { "key": "price_low_to_high", "label": "Price (Low To High)" } ] }, "store": { "delivery_eta": "12 MINS", "latitude": 12.9261382, "longitude": 77.62210910000002, "pincode": "560034", "place": "Bengaluru, Karnataka 560034, India", "primary_store_id": "1396284", "serviceability_status": "SERVICEABLE", "serviceability_type": "FAST_SERVICEABLE", "serviceable": true, "store_id": "1396284" }, "products": [ { "name": "Nandini Shubham Milk", "mrp": "108", "rating": "4.4", "rating_value": 4.4, "brand": "Nandini", "category": "Milk", "id": "CCX1XWR7GN", "image": "NI_CATALOG/IMAGES/ciw/2025/12/17/02bfb139-2185-4e4a-9419-29fd0af79fbb_J4ZRFJNQRO_MN_16122025.png", "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/17/02bfb139-2185-4e4a-94…", "in_stock": true, "max_per_order": 1, "mrp_paise": 10800, "offer_price": "108", "offer_price_paise": 10800, "position": 1, "product_url": "https://www.swiggy.com/instamart/item/CCX1XWR7GN", "quantity": "500 ml x 4", "rating_count": "118k", "result_type": "match", "sku": "SS8P89LI92", "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard", "store_id": "1396284", "badges": [ "Bestseller" ] }, { "name": "Nandini Shubham Milk", "mrp": "54", "rating": "4.4", "rating_value": 4.4, "brand": "Nandini", "category": "Milk", "id": "CCX1XWR7GN", "image": "NI_CATALOG/IMAGES/ciw/2025/12/17/02bfb139-2185-4e4a-9419-29fd0af79fbb_J4ZRFJNQRO_MN_16122025.png", "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/17/02bfb139-2185-4e4a-94…", "in_stock": true, "max_per_order": 3, "mrp_paise": 5400, "offer_price": "54", "offer_price_paise": 5400, "position": 2, "product_url": "https://www.swiggy.com/instamart/item/CCX1XWR7GN", "quantity": "500 ml x 2", "rating_count": "118k", "result_type": "match", "sku": "TK6K7BDQRM", "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard", "store_id": "1396284", "badges": [ "Bestseller" ] } ]}
https://data.upscrape.com/mcp
Using Upscrape, search Instamart for milk at PIN 560034. List brand, pack, price and stock. Show position only for match rows and keep promoted and other result kinds separate.
Using Upscrape, check Instamart product 8XUTKS0CZ3 at PIN 560034. Give each returned SKU, pack size, selling price, MRP and availability. Convert paise to rupees for display and retain the store ID.
Using Upscrape, list the Instamart Atta, Rice and Dal category at PIN 400050. Check product 5LR16VWHT5 directly at the same PIN and report its pack, price, stock and serving store. Keep missing values separate from sold out.
The short answers. The docs have the long ones.
You can get products, pack prices, MRP, stock, categories, category listings, home-feed products, autocomplete suggestions, place data, serviceability and ETA. The Upscrape API is read-only.
No. Swiggy Builders Club is Swiggy’s official developer programme for consumer shopping flows such as product search, cart, checkout and order tracking. Upscrape serves a different, read-only job: monitoring prices, stock, assortment, search visibility, categories and delivery coverage.
Yes. The main catalogue endpoints take a six-digit pincode directly, or start from an area name: location suggest finds the place and location resolve gives its coordinates. Keep the returned store with your results, since a pincode stands for one delivery point.
No. Search visibility and availability are different. Check product.get at the same location and inspect the returned pack variations before reporting a stockout.
Send the next-page value back unchanged with the same location, query, sort and filters. Price and discount sorting applies to the returned page, not the whole catalogue.
The API returns what Instamart shows now. Build history by saving repeated requests with the product, SKU, store, location and time of each check.
Every Swiggy Instamart endpoint costs 1 credit per successful call. You buy credits once, with no subscription, and paid credits never expire. New accounts get free credits to try it.
No. Upscrape reads the pages Swiggy Instamart shows to any visitor, so you send the input the endpoint asks for and get the data back. Nothing runs on your account, and you share no password or cookie.
Up to 100 free credits to start, no card needed.