Blinkit Products Search API
See which products appear for a query at a chosen location, with price, MRP, stock, rating, result position and sponsored flags.
Sendquery
Returnsnamebrandproduct_idvariantpricemrp
Get Blinkit prices, stock, search placement, deals and delivery estimates for the locations you care about.
| # | Product | Brand | Product ID | Pack size | Price | MRP | Discount | Stock | Inventory | Sponsored |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Country Delight 25 g High Protein Milk | Country Delight | 735586 | 450 ml | 49 | 59 | 16% OFF | in_stock | 1 | true |
| 2 | Nandini Toned Milk | Nandini | 37083 | 500 ml | 24 | 24 | in_stock | 12 | false | |
| 3 | Nandini Shubham Pasteurised Standardized Toned Milk | Nandini | 309921 | 500 ml | 27 | 27 | in_stock | 12 | false | |
| 4 | Heritage Daily Health Toned Milk | Heritage | 127081 | 500 ml | 28 | 28 | in_stock | 12 | false | |
| 5 | Country Delight 25 g High Protein Chocolate Milk | Country Delight | 793108 | 250 ml | 100 | 129 | 22% OFF | in_stock | 1 | true |
| # | Aspect ratio | Media type | Url |
|---|---|---|---|
| 1 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/3c63ccbb-6f20… |
| 2 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/44d1f295-f43d… |
| 3 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/addbb321-e297… |
| 4 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/cde0b4b5-0b00… |
| 5 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/dbd2d3e5-21e3… |
| 6 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/4294e26a-ccb8… |
| 7 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/e22e12aa-8b5b… |
| 8 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/f6bfe23f-6698… |
| 9 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/5c17fd48-cff6… |
| 10 | 1 | image | https://cdn.grofers.com/da/cms-assets/cms/product/9fa6f1e3-8035… |
| # | Department | Department ID | Rank | Subcategory name | Image url | Subcategory id |
|---|---|---|---|---|---|---|
| 1 | Bath & Body | 231389 | 1 | Bathing Soaps | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | 3075 |
| 2 | Bath & Body | 231389 | 2 | Shower Gels & Scrubs | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | 3076 |
| 3 | Bath & Body | 231389 | 3 | Oral Care | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 722 |
| 4 | Bath & Body | 231389 | 4 | Handwash | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 699 |
| 5 | Bath & Body | 231389 | 5 | Fragrance & Talc | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | 3072 |
| 6 | Bath & Body | 231389 | 6 | Bath Accessories | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 2460 |
| 7 | Bath & Body | 231389 | 7 | Shampoo | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 2447 |
| 8 | Bath & Body | 231389 | 8 | Conditioner | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 2448 |
| 9 | Bath & Body | 231389 | 9 | Face Cleaning | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 1117 |
| 10 | Bath & Body | 231389 | 10 | Body Lotions & Oils | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 6871 |
| # | Product | Brand | Product ID | Pack size | Price | MRP | Stock | Inventory | Rating | Merchant ID |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Nandini Toned Milk | Nandini | 37083 | 500 ml | 24 | 24 | in_stock | 12 | 4.5 | 40589 |
| 2 | Nandini Shubham Pasteurised Standardized Toned Milk | Nandini | 309921 | 500 ml | 27 | 27 | in_stock | 12 | 4.6 | 40589 |
| 3 | Akshayakalpa Organic Cow Milk (Pasteurized) | Akshayakalpa Organic | 478885 | 500 ml | 48 | 48 | in_stock | 12 | 4.6 | 40589 |
| 4 | Amul Lactose Free Milk | Amul | 206314 | 250 ml | 26 | 26 | in_stock | 50 | 4.6 | 40589 |
| 5 | Amul Gold Full Cream Milk | Amul | 12872 | 500 ml | 34 | 34 | in_stock | 12 | 4.7 | 40589 |
What each one takes and what it returns. Open one for a real response, every input and every field.
See which products appear for a query at a chosen location, with price, MRP, stock, rating, result position and sponsored flags.
Sendquery
Returnsnamebrandproduct_idvariantpricemrp
Look up one product by ID or Blinkit link to check its price, stock and published product details at the location you choose.
Sendproduct_idorproduct_urlorinclude
Returnsnamebrandproduct_idvariantpricemrp
Get the local department and shelf IDs you need to move through Blinkit’s category structure.
Sendcategory_idorlatitudeorlocation_query
Returnscategory_namecategory_iddefault_subcategory_idimage_urlranksubcategory_id
Pull products from an exact shelf, a department’s default shelf or a supported category link, with pack size, price and stock.
Sendcategory_idorcategory_urlorsubcategory_id
Returnsnamebrandproduct_idvariantpricemrp
Find offers on the home feed, or by scanning a search or a shelf up to a limit you set, with filters for deal type, discount and price.
Sendqueryorsubcategory_idordeal_type
Returnstitlebrandpromotion_textdeal_typepromotion_typesection
Read delivery estimates by merchant and delivery type for the selected location.
Sendlatitudeorlocation_queryorlongitude
Returnsmerchant_idtypeeta_minutes
Resolve a pincode, place name or coordinates, see whether Blinkit serves it and get the merchants attached to that point.
Sendqueryorlatitudeorlongitude
Returnspincodecitylocalityserviceablemerchant_idmerchants
Check points across an area you choose to see which merchant IDs serve each one, with location and delivery time.
Sendbounds
Returnsmerchant_idobservationscitylocalitypincodelatitude
Pricing, stock, search, range and promotion checks for the delivery points you choose.
Check the same products and pack sizes across pincodes to see where selling price, MRP or discounts differ.
ProductProducts searchCategory productsCheck a fixed product list at each location and rank the places where stock is unavailable, so lost sales and replenishment get attention first.
ProductCategory productsSee where products appear for the queries that matter and which places are sponsored.
Products searchSee which products and brands sit on the same shelf in each location, and which ones appeared or left since your last check.
Category productsCategoriesProducts searchCompare the deals shown for the same search, shelf or home feed across locations.
PromotionsProducts searchCheck which merchant serves each point and the delivery time Blinkit quotes there.
Resolve locationETASample merchant coverageEvery endpoint shows its price in credits before it runs. You buy credits once, with no subscription.
Credit packs| Per call | Endpoints |
|---|---|
| 1 credit | CategoriesETAResolve locationSample merchant coverage |
| 1–9 credits | Products searchCategory products |
| 2 credits | Product |
| 3 credits | Promotions |
One request shape for every Blinkit 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": "blinkit.search", "input": { "limit": 5, "pincode": "560102", "query": "milk" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "blinkit.search", "input": { "limit": 5, "pincode": "560102", "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": "blinkit.search", "input": { "limit": 5, "pincode": "560102", "query": "milk" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
{ "count": 5, "has_more": true, "partial": false, "results": [ { "name": "Country Delight 25 g High Protein Milk", "price": 49, "mrp": 59, "rating": 4.5, "available": true, "brand": "Country Delight", "captured_at": "2026-10-04T13:24:41Z", "category_id": null, "category_name": null, "currency": "INR", "discount_amount": 10, "discount_percent": 16.95, "discount_text": "16% OFF", "fulfillment": null, "group_id": 3199757, "image_url": "https://cdn.grofers.com/da/cms-assets/cms/product/rc-upload-1782724806207-351.png", "inventory": 1, "is_sold_out": false, "is_sponsored": true, "merchant_id": "40589", "merchant_type": "express", "organic_rank": null, "price_per_100_unit": 10.8889, "price_per_unit": 0.108889, "product_id": 735586, "product_url": "https://blinkit.com/prn/country-delight-25-g-high-protein-milk/prid/735586", "quantity": 450, "query": "milk", "rank": 1, "rating_count": 4868, "stock_status": "in_stock", "subcategory_id": null, "subcategory_name": null, "unit": "ml", "variant": "450 ml", "location": { "latitude": 12.911862, "longitude": 77.6445923, "pincode": "560102" }, "images": [ "https://cdn.grofers.com/da/cms-assets/cms/product/rc-upload-1782724806207-351.png", "https://cdn.grofers.com/da/cms-assets/cms/product/rc-upload-1782724806207-352.png" ] }, { "name": "Nandini Toned Milk", "price": 24, "mrp": 24, "rating": 4.5, "available": true, "brand": "Nandini", "captured_at": "2026-10-04T13:24:41Z", "category_id": null, "category_name": null, "currency": "INR", "discount_amount": 0, "discount_percent": 0, "discount_text": null, "fulfillment": null, "group_id": 2167381, "image_url": "https://cdn.grofers.com/da/cms-assets/cms/product/be666ef4-a87d-4ff7-8461-38f3a9682078.png", "inventory": 12, "is_sold_out": false, "is_sponsored": false, "merchant_id": "40589", "merchant_type": "express", "organic_rank": 1, "price_per_100_unit": 4.8, "price_per_unit": 0.048, "product_id": 37083, "product_url": "https://blinkit.com/prn/nandini-toned-milk/prid/37083", "quantity": 500, "query": "milk", "rank": 2, "rating_count": 120000, "stock_status": "in_stock", "subcategory_id": null, "subcategory_name": null, "unit": "ml", "variant": "500 ml", "location": { "latitude": 12.911862, "longitude": 77.6445923, "pincode": "560102" }, "images": [ "https://cdn.grofers.com/da/cms-assets/cms/product/be666ef4-a87d-4ff7-8461-38f3a9682078.png", "https://cdn.grofers.com/da/cms-assets/cms/product/c0fb2f12-6b62-43b4-bd93-b5061a17beae.jpg" ] } ]}
https://data.upscrape.com/mcp
Using Upscrape, search Blinkit for “toned milk” at pincodes 560102 and 110001, limited to Amul, Nandini, Mother Dairy and Heritage. For each brand and pack size, give price, MRP, discount and price per 100 ml, and flag any competitor cheaper than Amul for the same pack size.
Using Upscrape, check Red Bull 250 ml (Blinkit product 385), Red Bull Sugar Free 250 ml (386) and Monster Ultra Zero Sugar 350 ml (432768) at pincodes 560034, 560066, 560102 and 560003. Pass each pincode directly. Give me a table of stock, inventory and price per product and pincode, list every place a product is out of stock, and keep the merchant ID and time checked.
With Upscrape, get the Blinkit categories for pincode "560102". Tell me what it costs before you run it, then show the results as a table.
The short answers. The docs have the long ones.
Blinkit does not publish a public developer API for its product catalog, prices or stock data. Upscrape’s Blinkit API is an independent service that returns structured data from what Blinkit shows shoppers at a selected location.
Products with price, MRP and stock at a location, search results with sponsored placements, departments and shelves, deals, delivery times and which merchant serves an area. Every request is answered for the location you choose.
Yes. Send a pincode, a place name or coordinates with any product, search, shelf, deal or delivery-time request. A pincode stands for one delivery point, and the merchant coverage endpoint checks many points across an area you choose.
Coverage follows Blinkit’s own serviceability rather than a fixed Upscrape city list. Check the pincode or coordinates you need with blinkit.location. Because serviceability is evaluated for a delivery point, one result should not be treated as coverage for an entire city or pincode.
Not necessarily. Search visibility and availability are different signals: a product can be missing from search and still be in stock, or missing because it sold out. Check the product directly with blinkit.product at the same location before treating search absence as a stockout.
A search can ask for up to 100 products. How many come back depends on the query and what Blinkit has at that location, and you can page on with the same query and location.
The API returns what Blinkit shows now, not a ready-made price history. To build Blinkit price history, run repeated checks and store the product ID, location, merchant ID, price, MRP and time of each check yourself.
Marketplace scrapers differ by author, output and upkeep. Upscrape keeps Blinkit on the same request and response shape as every other platform it covers, and keeps it working when Blinkit changes.
Up to 100 free credits to start, no card needed.