Blinkit Grocery Scraper avatar

Blinkit Grocery Scraper

Pricing

from $2.00 / 1,000 dataset items

Go to Apify Store
Blinkit Grocery Scraper

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

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

FieldTypeDescription
product_idintegerBlinkit product id
namestringProduct name
brandstringBrand
unitstringPack size / unit (e.g. 1 ltr, 450 ml)
pricenumberCurrent selling price (INR)
mrpnumberMaximum retail price (INR)
discount_pctnumberDiscount % (MRP vs selling price)
currencystringAlways INR
in_stockbooleanIn stock at this store
inventoryintegerInventory count (0 = out of stock)
merchant_idintegerServing store / merchant id
merchant_typestringMerchant type (express, longtail, …)
etastringDelivery ETA identifier
group_idintegerVariant group id
image_urlstringPrimary image URL
imagesarrayFull image gallery (product-URL rows)
product_urlstringCanonical product page URL
store_idintegerStore the product was priced for
city_namestringCity of the serving store
location_labelstringYour input label for the delivery point
latitude / longitudenumberCoordinates the product was priced for
source_querystringWhat produced the row (search:… / category:… / url:…)
scraped_atstringISO-8601 scrape timestamp

High-value use cases

  1. Competitor price tracking — schedule daily runs on your key SKUs across several cities and diff price / discount_pct / in_stock over time.
  2. Stock-out & availability monitoring — alert when in_stock flips to false for priority products at specific stores.
  3. Assortment / share-of-shelf — list whole categories per location to see which brands and packs Blinkit carries where.
  4. Multi-city price comparison — pass several locations in one run to compare the same products' price and ETA across metros.
  5. Catalog enrichment — feed product URLs/IDs to pull authoritative names and full image galleries for your own catalog.

Input parameters

FieldTypeDefaultDescription
searchQueriesarray[]Keywords; one paginated search per keyword.
categoryUrlsarray[]Category page URLs (/cn/<slug>/cid/<l0>/<l1>) or l0/l1 id pairs to list in full.
productUrlsarray[]Product URLs (/prn/<slug>/prid/<id>) or bare numeric IDs to enrich with detail + gallery.
locationsarrayGurugramDelivery points: {label, latitude, longitude} or {location} (Indian city name / "lat,lon").
maxPagesPerQueryinteger5Pages per keyword/category (search ≈ 12/pg, category ≈ 15/pg).
maxItemsinteger500Global cap on total rows.
includeRecommendationsbooleanfalseAlso collect Blinkit's post-match "similarity" recommendations.
proxyConfigurationobjectResidential (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.