Blinkit API & Scraper
Blinkit serves every delivery location from one dark store, so its catalogue, prices and stock change from one neighbourhood to the next.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
Every call therefore takes one location, as a 6-digit PIN code or a latitude and longitude, and answers for the store that serves it. `search` takes a search term and returns the products Blinkit shows there: selling price, MRP, discount percent and Blinkit's own discount label, pack size and the other pack sizes with their own prices, the live stock count, the dark store (merchant) id, the delivery time in minutes, brand, rating, a sponsored flag, and whether a row is a direct match or one of the similar items Blinkit appends when direct matches run out. `product` takes the product_id from any search row and returns the product page for that location: price, MRP, stock, whether that store sells it at all, every pack size, breadcrumb, images, description, shelf life, country of origin, FSSAI licence, manufacturer and all product attributes. `store` tells you whether Blinkit delivers to a location, in how many minutes, and which dark stores serve it.
What a Blinkit field actually contains
Fields that read differently from how they look. Every row was measured against live Blinkit responses on 2026-10-15.
| Field | What it holds |
|---|---|
| location | The PIN code or point the answer is for, with the address and postal code Blinkit resolved it to. There is no location-free shelf: Blinkit refuses a search without one. "atta" matched 140 products near Dadar in Mumbai, 137 in central Delhi and 116 in central Bengaluru, and the same 5 kg pack (product 344107) cost 272 rupees in Mumbai against 313 in Bengaluru. |
| merchant_id | The dark store that serves the location. Three cities, three different stores; two PIN codes inside Mumbai were served by two different stores (55 and 140 "atta" products). |
| price, mrp, discount_percent, discount_text | Selling price and maximum retail price in rupees as Blinkit's cart uses them; discount_percent is computed from the two and discount_text is Blinkit's own label, for example "19% OFF". price_text and mrp_text keep the printed figures, and price_text_matches says whether they agree with the numbers. |
| inventory, in_stock | The stock count Blinkit's cart allows at that store (for example 3, 10 or 35 units) and whether the product can be ordered now. |
| available_at_store | false when the store serving the location does not sell the product at all. Blinkit then answers with price 0; the API returns no price instead of a price of zero. |
| search_method, exact_match_count, similar_result | When Blinkit runs out of direct matches it switches to "similarity" and appends related items: "eggs" in Kolkata had 9 direct matches, and rows 10 to 12 were bread. Those rows carry similar_result: true; total counts every item Blinkit will page through (267 there). |
| eta_minutes | Blinkit's delivery promise for that store and service, for example 8 minutes in Mumbai and 9 in Delhi. |
| sponsored | true for paid placements, marked by Blinkit's ad badge: 15 of 60 rows in our first sample. |
Once the location is fixed the answer is the same for every caller: repeated reads of one point in the same minute returned byte-identical results.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/blinkit/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "atta",
"pincode": "400020"
}
}{
"ok": true,
"meta": {
"api": "blinkit",
"endpoint": "search",
"mode": "live",
"latency_ms": 3955.3,
"record_count": 12,
"bytes": 212778,
"cache_hit": false,
"total": 62,
"upstream_requests": 2,
"charged_credits": 3,
"version": "0.1.0",
"request_id": "62a5b5f93cf9429f",
"queue_ms": 2.1,
"fetched_at": "2026-10-18T11:42:03.129Z"
},
"data": {
"query": "atta",
"location": {
"pincode": "400020",
"lat": 18.935117599999998,
"lon": 72.8264378,
"address": "Marine Lines, Mumbai, Maharashtra 400020, India",
"locality": "Marine Lines",
"city": "Mumbai",
"state": "Maharashtra",
"postal_code": "400020"
},
"serviceable": true,
"page": 1,
"eta_minutes": 9,
"stores_in_results": [
"31102"
],
"total": 62,
"exact_match_count": 62,
"search_method": "basic",
"returned": 12,
"has_next": true,
"non_product_tiles_skipped": 0,
"results": [
{
"product_id": "611872",
"name": "Aashirvaad Premium Blend Chakki Lokwan Atta",
"brand": "Aashirvaad",
"pack_size": "5 kg",
"price": 308,
"mrp": 345,
"discount_percent": 11,
"discount_text": "10% OFF",
"price_text": "₹308",
"mrp_text": "₹345",
"price_text_matches": true,
"currency": "INR",
"inventory": 1,
"in_stock": true,
"product_state": "available",
"merchant_id": "31102",
"merchant_type": "express",
"eta_identifier": "express",
"eta_minutes": 9,
"group_id": 3261559,
"rating": {
"average": 4.6,
"count": 1400,
"count_text": "1,400"
},
"sponsored": true,
"image": "https://cdn.grofers.com/da/cms-assets/cms/product/rc-upload-1780996492697-191.png",
"image_count": 12,
"url": "https://blinkit.com/prn/aashirvaad-premium-blend-chakki-lokwan-atta/prid/611872",
"variants": [],
"rank": 1,
"similar_result": false,
"repeated_from_earlier_page": false
},
{
"product_id": "68482",
"name": "Aashirvaad Superior MP Chakki Atta - l kg",
"brand": "Aashirvaad",
"pack_size": "1 kg",
"price": 64,
"mrp": 68,
"discount_percent": 6,
"discount_text": "5% OFF",
"price_text": "₹64",
"mrp_text": "₹68",
"price_text_matches": true,
"currency": "INR",
"inventory": 20,
"in_stock": true,
"product_state": "available",
"merchant_id": "31102",
"merchant_type": "express",
"eta_identifier": "express",
"eta_minutes": 9,
"group_id": 3262347,
"rating": {
"average": 4.7,
"count": 40756,
"count_text": "40,756"
},
"sponsored": false,
"image": "https://cdn.grofers.com/da/cms-assets/cms/product/f76cdc7d-828a-4036-b119-fdea66b9156b.png",
"image_count": 14,
"url": "https://blinkit.com/prn/aashirvaad-superior-mp-chakki-atta-l-kg/prid/68482",
"variants": [],
"rank": 2,
"similar_result": false,
"repeated_from_earlier_page": false
},
{
"product_id": "344107",
"name": "Aashirvaad Superior MP Chakki Atta 0% MAIDA 100% ATTA",
"brand": "Aashirvaad",
"pack_size": "5 kg",
"price": 271,
"mrp": 314,
"discount_percent": 14,
"discount_text": "13% OFF",
"price_text": "₹271",
"mrp_text": "₹314",
"price_text_matches": true,
"currency": "INR",
"inventory": 4,
"in_stock": true,
"product_state": "available",
"merchant_id": "31102",
"merchant_type": "express",
"eta_identifier": "express",
"eta_minutes": 9,
"group_id": 3286692,
"rating": {
"average": 4.6,
"count": 21801,
"count_text": "21,801"
},
"sponsored": false,
"image": "https://cdn.grofers.com/da/cms-assets/cms/product/d54667e8-c5df-4fa5-a685-b6dbfa1dd8e6.png",
"image_count": 14,
"url": "https://blinkit.com/prn/aashirvaad-superior-mp-chakki-atta-0-maida-100-atta/prid/344107",
"variants": [],
"rank": 3,
"similar_result": false,
"repeated_from_earlier_page": false
}
],
"repeated_from_earlier_pages": 0
}
}What the Blinkit API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search blinkit AS SEEN FROM ONE DELIVERY LOCATION (the dark store that serves it): products with selling price, MRP, discount, pack size and the other pack sizes, live stock count, the store (merchant) id, delivery ETA in minutes, brand, rating and a sponsored flag. `query` and a location (`pincode`, or `lat`+`lon`) are required. | Pricing teams call search to search blinkit AS SEEN FROM ONE DELIVERY LOCATION (the dark store that serves it). | query, pincode, lat, lon, page |
| product | One blinkit product at one delivery location, by the `product_id` a search row returns (or its blinkit.com/prn/.../prid/<id> URL): price, MRP, discount, live stock count, whether this dark store sells it at all, store id, ETA, pack size and the other pack sizes with their prices, breadcrumb, images, description, shelf life, country of origin, FSSAI licence, manufacturer and every product attribute the page carries. | Marketplace operators call product to get one blinkit product at one delivery location, by the `product_id` a search row. | product_id, pincode, lat, lon |
| store | Whether blinkit delivers to a location and how fast: the resolved address and postal code, serviceable yes/no, the delivery promise in minutes, and the dark stores (merchant ids) serving it with the minutes per service (express, longtail, large order, pharmacy...). | Catalog enrichment teams call store to get whether blinkit delivers to a location and how fast. | pincode, lat, lon |
Call search from your stack
curl -X POST https://api.reefapi.com/blinkit/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"atta","pincode":"400020"}'import requests
r = requests.post(
"https://api.reefapi.com/blinkit/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "atta",
"pincode": "400020"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/blinkit/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "atta",
"pincode": "400020"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.blinkit.search with {"query":"atta","pincode":"400020"}.Who uses this API and why
- Compare quick-commerce prices and discounts across Indian neighbourhoods and cities.
- Track live stock counts of a product at the dark store serving an address.
- Monitor delivery promises in minutes for a list of PIN codes or coordinates.
- Watch sponsored placements for a search term by location.
- Build a grocery product database with pack sizes, nutrition, shelf life, FSSAI licence and manufacturer.
Questions developers ask before integrating
Do I need a Blinkit account?
No. Everything is read logged out: prices, stock and delivery times are the ones Blinkit shows any visitor who sets that location.
Why is a location required?
Because every Blinkit location is served by one dark store with its own range, prices and stock. Blinkit itself refuses a search without a location, and the API never substitutes one: you pass a 6-digit PIN code or a latitude and longitude, and the answer echoes the address and postal code it resolved.
PIN code or latitude and longitude?
A PIN code is resolved to the place Blinkit's own location search gives for it, and is accepted only when that place's postal code is the PIN code you sent. A PIN code covers a whole area, while one point picks one store; use lat and lon to read the store of a specific address.
What happens where Blinkit does not deliver?
The answer says serviceable: false with no rows and a note. Agartala (799001) and Srinagar (190001) were not served when we measured.
How many products per page?
About 12 per page; Blinkit decides, and some pages carry a few more. Pages follow Blinkit's own next-page link. Up to 5 pages per search. After the direct matches Blinkit appends similar items and can repeat a product from an earlier page; both are flagged on the row.
What if a product is not sold near me?
The product call still answers, with available_at_store: false and no price. Blinkit itself shows such a product with a price of zero.
Are filters and sort orders supported?
Not yet. The API returns Blinkit's default order for the search term; filter by brand, price or stock on your side using the returned fields.
How fresh is the data?
Every call reads Blinkit live; nothing is cached. Stock counts move during the day.
What is the Blinkit API?
Blinkit API is a ReefAPI endpoint group for dark-store prices, mrp, discounts, live stock and delivery minutes from blinkit for any indian pin code or gps point. It returns live JSON through POST requests under /blinkit/v1.
Is the Blinkit API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Blinkit calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Blinkit login or account?
No login to Blinkit is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Blinkit data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Blinkit API use?
Blinkit actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Blinkit from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call blinkit actions with the same key, credit pool and JSON envelope used by normal REST requests.