# Blinkit Price Scraper (`parsebird/blinkit-price-scraper`) Actor

Scrape Blinkit product prices, MRP, discounts, stock, ratings, and delivery time by keyword or search URL. Set any Indian delivery location. Export as JSON, CSV, or Excel.

- **URL**: https://apify.com/parsebird/blinkit-price-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** E-commerce, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.39 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Blinkit Price Scraper

Extract live product prices, MRP, discounts, stock status, ratings, and delivery time from [Blinkit](https://blinkit.com), India's quick-commerce grocery platform, using a keyword or a full Blinkit search URL.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Search any product keyword or paste a Blinkit search URL, pin the delivery location with latitude/longitude, and get clean, structured grocery data — price, MRP, discount %, stock, rating, and delivery ETA — ready for price monitoring or analysis.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
parsebird/blinkit-price-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/blinkit-price-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: search_query (string, e.g. "milk", "amul butter", default "milk"), search_url (string, optional — a full Blinkit search URL, overrides search_query), results_wanted (integer, default 20, set 0 for unlimited), setGeolocation (boolean, default true — pins a delivery location), latitude (number, default 28.6139), longitude (number, default 77.209), proxyConfiguration (object, default Apify Residential Proxy). Output fields: product_name, price, original_price, discount_percentage, availability, delivery_time, brand, quantity, unit, product_id, sku_id, rating, ratings_count, inventory, product_image, product_url, search_query, url, scrapedAt. Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parsebird~blinkit-price-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations
```

### What does Blinkit Price Scraper do?

**Blinkit Price Scraper** is a Blinkit API alternative that turns any product search on [blinkit.com](https://blinkit.com) into structured data — no manual browsing, no copy-pasting prices off the app. It's built for tracking Blinkit product prices, MRP, discounts, and stock across India's biggest quick-commerce grocery marketplace.

- 🔍 Search by keyword (`milk`, `amul butter`, `breakfast cereal`) or paste a complete Blinkit search URL
- 📍 Pin any Indian delivery location by latitude/longitude — prices, discounts, and stock on Blinkit are location-specific, so you can compare the same product across cities or dark stores
- 💰 Extract price, MRP, discount percentage, and stock status for every matching product
- ⭐ Capture product ratings, rating counts, brand, pack quantity/unit, and delivery time
- 🔗 Get a direct product URL and image for every item
- 📊 Collect a fixed number of results or let it run until Blinkit stops returning new products
- ⏱️ Schedule recurring runs to track Blinkit price changes over time, trigger it via the Apify API, or connect it to Zapier, Make, Google Sheets, and webhooks
- 📁 Export results as JSON, CSV, Excel, or pull them straight into your app with the Apify API

### What data can you extract from Blinkit?

| Field | Description |
|-------|-------------|
| `product_name` | Product title |
| `brand` | Brand name |
| `price` | Current selling price (₹) |
| `original_price` | MRP before discount (₹) |
| `discount_percentage` | Blinkit discount text, e.g. "14% OFF" |
| `availability` | Normalized stock status |
| `quantity` / `unit` | Pack size, e.g. "450" / "ml" |
| `rating` / `ratings_count` | Product rating and number of ratings |
| `delivery_time` | Delivery ETA when listed |
| `product_id` / `sku_id` | Blinkit product identifiers |
| `product_image` | Product image URL |
| `product_url` | Direct Blinkit product page URL |

### How to scrape Blinkit prices

1. Go to the [Blinkit Price Scraper](https://apify.com/parsebird/blinkit-price-scraper) page on Apify Store
2. Click **Try for free**
3. Enter a **Search keyword** (e.g. `milk`) or paste a **Search URL** copied from blinkit.com
4. Set **Results wanted** — how many products to save (`0` collects everything Blinkit returns)
5. Optionally turn on **Set delivery location** and enter a latitude/longitude to pin prices to a specific Indian city or neighborhood
6. Click **Start** and wait for the run to finish
7. Download your data as JSON, CSV, or Excel, or pull it through the API tab

### Use cases

- **Price monitoring** — Track daily price and discount changes for competitor SKUs or your own products on Blinkit
- **MRP and discount audits** — Compare listed MRP against selling price across your product catalog
- **Market research** — Benchmark brand pricing and stock availability across categories
- **Location-based pricing analysis** — Compare the same product's price and delivery time across different Indian cities using latitude/longitude
- **Assortment tracking** — Monitor whether specific SKUs are in stock or sold out on Blinkit
- **Catalog enrichment** — Feed Blinkit product names, images, and prices into your own app or dashboard

### How it works

Blinkit Price Scraper drives a real browser session against blinkit.com, applies the delivery location you specify, runs your search, and reads the same product data Blinkit's own app renders — capturing price, MRP, discount, stock, rating, and delivery ETA directly from the response instead of scraping visible text. It keeps loading more results the same way scrolling the search page would, until it reaches your requested count or Blinkit stops returning new products.

### Use with the Apify API

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/blinkit-price-scraper").call(run_input={
    "search_query": "amul milk",
    "results_wanted": 100,
    "setGeolocation": True,
    "latitude": 19.076,
    "longitude": 72.8777,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['product_name']} - ₹{item['price']} ({item['availability']})")
```

**JavaScript:**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('parsebird/blinkit-price-scraper').call({
    search_query: 'amul milk',
    results_wanted: 100,
    setGeolocation: true,
    latitude: 19.076,
    longitude: 72.8777,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => console.log(`${item.product_name} - ₹${item.price} (${item.availability})`));
```

### Output example

```json
{
  "product_name": "Country Delight Buffalo Fresh Milk",
  "price": 55,
  "original_price": 59,
  "discount_percentage": "6% OFF",
  "availability": "In Stock",
  "delivery_time": "15 mins",
  "brand": "Country Delight",
  "quantity": "450",
  "unit": "ml",
  "product_id": "637879",
  "sku_id": "637879",
  "rating": 4.58,
  "ratings_count": 11508,
  "inventory": 1,
  "product_image": "https://cdn.grofers.com/da/cms-assets/cms/product/6e7eba87-a136-409a-9aab-7022ca4051be.png",
  "product_url": "https://blinkit.com/prn/country-delight-buffalo-fresh-milk/prid/637879",
  "search_query": "milk",
  "url": "https://blinkit.com/s/?q=milk",
  "scrapedAt": "2026-08-20T10:30:00.000Z"
}
```

Download results in JSON, HTML, CSV, or Excel from the **Storage** tab, or fetch them programmatically from the [Dataset API](https://docs.apify.com/api/v2#/reference/datasets).

### Pricing

**How much does it cost to scrape Blinkit with this actor?**

Blinkit Price Scraper uses **Pay-per-event** pricing — you only pay for products actually saved to the dataset:

| Event | Price per event | Price per 1,000 |
|-------|-----------------|------------------|
| `product-scraped` | $0.00199 | **$1.99** |

Pricing steps down automatically as your account's Apify usage tier increases: $1.99/1,000 on the Free tier, $1.79/1,000 on Bronze, $1.59/1,000 on Silver, and $1.39/1,000 on Gold. A search returning 100 products on the Free tier costs about $0.20. Every new Apify account gets free trial credits, so you can test this actor without adding a payment method first.

### FAQ

**Does this actor use the official Blinkit API?**
No — Blinkit does not publish a public product API. This actor reads the same structured product data Blinkit's own website loads when you search, applied through a real browser session.

**Why does price data change based on latitude/longitude?**
Blinkit prices, stock, and delivery time are set per dark store and vary by delivery area. Set **Set delivery location** with a latitude/longitude to pin results to a specific city or neighborhood, the same way opening blinkit.com from that location would.

**What happens if `setGeolocation` is turned off?**
The actor skips setting a fixed location and lets Blinkit fall back to its own IP-based location detection, similar to visiting the site without picking an address.

**What if my search keyword has few or no exact matches?**
Blinkit's own search page fills remaining slots with recommended products when a query has few matches — this actor returns exactly what Blinkit's search API returns, including that fallback behavior.

**Can I schedule recurring runs?**
Yes. Use [Apify's Scheduler](https://docs.apify.com/platform/schedules) to run this actor daily, hourly, or on any custom interval to track price and discount changes over time.

**Can I use this with the API or integrations?**
Yes. Every run is accessible through the [Apify API](https://docs.apify.com/api/v2), and you can connect this actor to Zapier, Make, Google Sheets, Slack, and webhooks from the **Integrations** tab.

**I found a bug or the actor stopped returning data — what do I do?**
Blinkit occasionally changes its site layout or bot-detection rules. Please open an issue on the **Issues** tab with your input and a description of what happened — reports are usually addressed quickly.

### Is it legal to scrape Blinkit?

Scraping publicly available data, such as product names and prices shown to any visitor without logging in, is generally considered legal, including under precedents like *hiQ Labs v. LinkedIn*. This actor does not access any account-gated or private data. You are responsible for using the collected data in compliance with Blinkit's terms of service and applicable data protection laws in your jurisdiction. Read more in [Apify's blog post on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Related actors

Other India-market actors from ParseBird:

- [JustDial Business Scraper](https://apify.com/parsebird/justdial-business-scraper) — extract business listings from JustDial
- [MagicBricks Scraper](https://apify.com/parsebird/magicbricks-scraper) — extract real estate listings from MagicBricks
- [NoBroker Scraper](https://apify.com/parsebird/nobroker-scraper) — extract property listings from NoBroker

# Actor input Schema

## `search_query` (type: `string`):

Product keyword or keywords, such as milk, amul butter, or breakfast cereal. Used when Search URL is empty.

## `search_url` (type: `string`):

Complete Blinkit search URL, e.g. https://blinkit.com/s/?q=breakfast%20cereal. When provided, it overrides Search keyword.

## `results_wanted` (type: `integer`):

Maximum number of products to save. Set to 0 to collect all products Blinkit returns for the search.

## `setGeolocation` (type: `boolean`):

Apply a fixed delivery location to the run using the coordinates below. Turn this on when Blinkit needs a serviceable area before it will show products.

## `latitude` (type: `number`):

Latitude used when Set delivery location is enabled. Default points to New Delhi.

## `longitude` (type: `number`):

Longitude used when Set delivery location is enabled. Default points to New Delhi.

## `proxyConfiguration` (type: `object`):

Blinkit is protected by bot detection. Residential proxies are strongly recommended for reliable runs.

## Actor input object example

```json
{
  "search_query": "milk",
  "search_url": "",
  "results_wanted": 20,
  "setGeolocation": true,
  "latitude": 28.6139,
  "longitude": 77.209,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "search_query": "milk",
    "results_wanted": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/blinkit-price-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "search_query": "milk",
    "results_wanted": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/blinkit-price-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "search_query": "milk",
  "results_wanted": 20
}' |
apify call parsebird/blinkit-price-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/blinkit-price-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DmE8dNPT0IVTHfP8N/builds/bJsUWKdHJDumQP8qd/openapi.json
