Blinkit Grocery Scraper
Pricing
from $2.00 / 1,000 dataset items
Blinkit Grocery Scraper
Scrape Blinkit products by keyword, category or URL for any delivery location in India — name, brand, unit, MRP, selling price, discount, live stock, merchant, delivery ETA and images, priced per store. Residential proxy built in. Pay only for the results you get.
Pricing
from $2.00 / 1,000 dataset items
Rating
0.0
(0)
Developer
axly
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract Blinkit product data — prices, MRP, discounts, live stock, unit, delivery ETA and images — by keyword, category or product URL, for any delivery location in India. Inventory and pricing on Blinkit are store-specific, so every result is priced for the exact delivery point you ask for. One clean row per product per location, ready for Sheets, a database, or your BI stack.
Built on Blinkit's own web API, with an Apify Residential proxy wired in by default (Indian exit) to pass Blinkit's Cloudflare protection — no proxy setup required, it works straight out of the box.
Who uses this
- Price & discount intelligence (FMCG brands, D2C, retailers, analysts) — monitor competitor pricing, MRP vs selling price, discount depth and stock-outs across cities.
- Quick-commerce / q-commerce analytics builders — a reliable assortment and pricing feed to power dashboards and models.
- Category & catalog teams — pull an entire Blinkit category for a location to map assortment and share-of-shelf.
- Market researchers — compare catalogs and pricing across Indian metros.
What you get — output fields
| Field | Type | Description |
|---|---|---|
product_id | integer | Blinkit product id |
name | string | Product name |
brand | string | Brand |
unit | string | Pack size / unit (e.g. 1 ltr, 450 ml) |
price | number | Current selling price (INR) |
mrp | number | Maximum retail price (INR) |
discount_pct | number | Discount % (MRP vs selling price) |
currency | string | Always INR |
in_stock | boolean | In stock at this store |
inventory | integer | Inventory count (0 = out of stock) |
merchant_id | integer | Serving store / merchant id |
merchant_type | string | Merchant type (express, longtail, …) |
eta | string | Delivery ETA identifier |
group_id | integer | Variant group id |
image_url | string | Primary image URL |
images | array | Full image gallery (product-URL rows) |
product_url | string | Canonical product page URL |
store_id | integer | Store the product was priced for |
city_name | string | City of the serving store |
location_label | string | Your input label for the delivery point |
latitude / longitude | number | Coordinates the product was priced for |
source_query | string | What produced the row (search:… / category:… / url:…) |
scraped_at | string | ISO-8601 scrape timestamp |
High-value use cases
- Competitor price tracking — schedule daily runs on your key SKUs across
several cities and diff
price/discount_pct/in_stockover time. - Stock-out & availability monitoring — alert when
in_stockflips to false for priority products at specific stores. - Assortment / share-of-shelf — list whole categories per location to see which brands and packs Blinkit carries where.
- Multi-city price comparison — pass several
locationsin one run to compare the same products' price and ETA across metros. - Catalog enrichment — feed product URLs/IDs to pull authoritative names and full image galleries for your own catalog.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | [] | Keywords; one paginated search per keyword. |
categoryUrls | array | [] | Category page URLs (/cn/<slug>/cid/<l0>/<l1>) or l0/l1 id pairs to list in full. |
productUrls | array | [] | Product URLs (/prn/<slug>/prid/<id>) or bare numeric IDs to enrich with detail + gallery. |
locations | array | Gurugram | Delivery points: {label, latitude, longitude} or {location} (Indian city name / "lat,lon"). |
maxPagesPerQuery | integer | 5 | Pages per keyword/category (search ≈ 12/pg, category ≈ 15/pg). |
maxItems | integer | 500 | Global cap on total rows. |
includeRecommendations | boolean | false | Also collect Blinkit's post-match "similarity" recommendations. |
proxyConfiguration | object | Residential (IN) | Defaults to Apify Residential proxy (Indian exit) — required, as Blinkit blocks datacenter IPs. Override or bring your own. |
At least one of searchQueries, categoryUrls, or productUrls is expected; if
none is given the actor runs a milk search so you always get sample data. If no
locations are given it defaults to Gurugram (Delhi-NCR).
Example input
{"searchQueries": ["milk", "amul butter"],"categoryUrls": ["https://blinkit.com/cn/milk/cid/14/922"],"locations": [{"label": "Gurugram","latitude": 28.4131564,"longitude": 77.0726806},{ "label": "Mumbai", "location": "mumbai" }],"maxPagesPerQuery": 3,"maxItems": 300}
Example output
{"product_id": 14639,"name": "Amul Gold Full Cream Milk","brand": "Amul","unit": "1 ltr","price": 72,"mrp": 72,"discount_pct": 0.0,"currency": "INR","in_stock": true,"inventory": 50,"merchant_id": 31719,"merchant_type": "express","eta": "12 mins","image_url": "https://cdn.grofers.com/cdn-cgi/image/f=auto/app/images/products/sliding_image/14639.jpg","product_url": "https://blinkit.com/prn/amul-gold-full-cream-milk/prid/14639","store_id": 31719,"city_name": "HR-NCR","location_label": "Gurugram","latitude": 28.4131564,"longitude": 77.0726806,"source_query": "search:milk","scraped_at": "2026-08-02T00:00:00.000000+00:00"}
Scheduling & integrations
- Schedule daily/hourly runs from the Apify Console to track prices and stock over time.
- Webhooks fire on run completion into Make, Zapier, n8n or your own endpoint.
- Export the dataset as JSON, CSV, Excel or via the Apify API, or push straight to Google Sheets, Airtable, S3 or a database.
Use with AI agents (MCP)
The dataset is clean, flat JSON, so an LLM agent can consume it directly. Run this
actor through the Apify MCP server (apify/actors-mcp-server) to let assistants
like Claude or ChatGPT pull live Blinkit prices, stock and ETAs on demand — e.g.
"compare the price of Amul butter on Blinkit in Mumbai vs Delhi."
FAQ
Do I need a proxy? It's already built in. Blinkit blocks datacenter IPs, so the actor routes through Apify Residential proxy (Indian exit) by default — you don't need to configure anything. You can override the proxy group/country or supply your own residential proxy in the input.
How fresh is the data? It is pulled live from Blinkit at run time — prices, stock and ETA reflect the moment of the request for that store.
Why are prices different across locations? Blinkit is store-scoped. Each
delivery point resolves to a store with its own catalog, pricing and stock. Pass
multiple locations to compare.
What if a location isn't serviceable? It's logged and skipped; the run continues with the remaining locations.
Can I scrape a whole category? Yes — pass a category URL (or l0/l1 id pair)
in categoryUrls. Category ids come from Blinkit's own category pages/sitemap.
Is scraping this legal? The actor collects publicly available product data. You are responsible for using the output in line with Blinkit's terms and applicable laws. No login or personal data is collected.
How reliable is it? The client self-heals expired Cloudflare/auth sessions and backs off on rate limits, so long multi-location runs stay stable.