# Blinkit price history API

Last updated 5 Nov 2026.

GET /v1/data/observations with retailer=blinkit returns every reading of a Blinkit product's price, MRP and stock at a pin code, newest first, between two dates. For Blinkit, Rewalto holds price readings: 1022 pins held · 2,35,681 readings on 4 Nov 2026 (measured 4 Nov 2026), and 5,228 open dark stores in 453 cities (counted 5 Nov 2026). It needs an API key and costs 1 credit per 10 readings; the sample record below is free.

## Key facts

| | |
| --- | --- |
| Endpoint | GET /v1/data/observations |
| App filter | retailer=blinkit |
| Cost | 1 credit per 10 readings (Only delivered records use credits) |
| Key | API key needed |

## A real Blinkit record

One record from the free samples route (GET /v1/data/samples?dataset=price_history), exactly as the paid read returns it, with long lists cut to three items. Samples are at least a week old; this set holds records up to 29 Oct 2026.

```json
{
  "id": 93922989,
  "retailer": "blinkit",
  "retailerSku": "782873",
  "pincode": "411045",
  "observedAt": "2026-10-29T18:28:43.000000Z",
  "ingestedAt": "2026-10-29T18:29:46.284791Z",
  "title": "Miss Nails Minis Nail Paint (Wish You Were Mine)",
  "brand": "Miss Nails",
  "packSizeRaw": "6 ml",
  "priceMinor": 10900,
  "mrpMinor": 10900,
  "currency": "INR",
  "inStock": true,
  "category": "personal_care_qc",
  "productId": null,
  "sourceUrl": "https://blinkit.com/v1/layout/search?offset=24&limit=12&actual_query=nail+polish&last_snippet_type=product_card_snippet_type_2&last_widget_type=listing_conta...",
  "recipeVersion": 7,
  "source": "harvest",
  "evidence": {
    "sha256": "15cd464f654e744ea7e5e52bfdba608e18b24728807c6b24c060bb8ac8f2437c",
    "missing": false
  }
}
```

## Call the Blinkit endpoint

Set REWALTO_API_KEY to a key from your account, then run any of these.

cURL:

```bash
curl -H "Authorization: Bearer $REWALTO_API_KEY" \
  "https://api.rewalto.com/v1/data/observations?retailer=blinkit&pincode=411045&retailerSku=782873&limit=20"
```

Python:

```python
import os
import requests

r = requests.get(
    "https://api.rewalto.com/v1/data/observations",
    params={"retailer": "blinkit", "pincode": "411045", "retailerSku": "782873", "limit": 20},
    headers={"Authorization": f"Bearer {os.environ['REWALTO_API_KEY']}"},
    timeout=30,
)
r.raise_for_status()
for record in r.json()["data"]:
    print(record["title"], record["priceMinor"])
```

Node:

```javascript
const res = await fetch("https://api.rewalto.com/v1/data/observations?retailer=blinkit&pincode=411045&retailerSku=782873&limit=20", {
  headers: { Authorization: `Bearer ${process.env.REWALTO_API_KEY}` },
});
if (!res.ok) throw new Error(`Rewalto API ${res.status}`);
const { data } = await res.json();
for (const record of data) console.log(record.title, record.priceMinor);
```

## Track a Blinkit price over time

Pass retailerSku (or productId) with from and to to get one product's readings between two dates, and pincode for one pin code. Each reading carries its own time, so a price change shows on the day it was read.

## Fields in each record

From API contract 0.157.0.

| Field | Type | What it means | Example |
| --- | --- | --- | --- |
| `id` | integer | Stable identifier of this reading; cite it when disputing a value. | `48210377` |
| `retailer` | string | The retailer key, as listed by /v1/data/retailers. | `"blinkit"` |
| `retailerSku` | string | The retailer's own product identifier. Unique within one retailer only. | `"prd-88213"` |
| `pincode` | string | The Indian pin code the page was read for, or national when the page is not pin-scoped. | `"110092"` |
| `observedAt` | string (date-time) | When the retailer's page was read. | `"2026-10-14T09:27:00Z"` |
| `ingestedAt` | string (date-time) | When the reading entered Rewalto's store. | `"2026-10-14T10:40:00Z"` |
| `title` | null or string | The product title as the retailer showed it. | `"Aashirvaad Atta 5 kg"` |
| `brand` | null or string | The brand as the retailer attributed it; often absent or wrong. | `"Aashirvaad"` |
| `packSizeRaw` | null or string | The pack size exactly as printed, unparsed. | `"5 kg"` |
| `priceMinor` | null or integer | Selling price in paise; null when it could not be read, never 0 for unknown. | `28500` |
| `mrpMinor` | null or integer | Maximum retail price in paise; null when the retailer published none. | `31000` |
| `currency` | string | ISO 4217 code of the amounts. | `"INR"` |
| `inStock` | null or boolean | Availability as the page showed it; null when the page carried no signal. Always null for Flipkart. | `true` |
| `category` | null or string | The retailer's own category, not normalised across retailers. | `"atta-rice-dal"` |
| `productId` | null or string | The matched Rewalto product, when the listing is matched to one. | `"0d6b4a52-4b6e-4c1a-9a7e-5b0d2f8f1a11"` |
| `sourceUrl` | null or string | The page this reading was taken from. | `"https://blinkit.com/prn/aashirvaad-atta/prid/88213"` |
| `recipeVersion` | null or integer | Version of the extraction recipe that produced the reading. | `5` |
| `source` | string | Always harvest: Rewalto's own collection. | `"harvest"` |
| `evidence` | object | Proof of where the record came from: the SHA-256 of the fetched response. The response itself is not kept; the hash, the source URL and the time are. |  |

## Full reference

Every parameter and error code for this endpoint is in the reference.

- [Blinkit price history API reference](https://rewalto.com/developers/docs/api/blinkit/price-history)

## Blinkit search rank and sponsored ads data

Rewalto records where each Blinkit product ranks in the app's search, by search term, pin code and day, with sponsored slots kept apart from organic ones. Read it with the search rank endpoint and the sponsored share endpoint and retailer=blinkit; the terms, pin codes and dates covered are on the search rank data page.

- [Search rank and sponsored slots data](https://rewalto.com/data/commerce/quick-commerce-search-rank)

## Not Blinkit's own API

Rewalto is not affiliated with, endorsed by or partnered with Blinkit. It reads Blinkit's public pages, the way a shopper sees them.

## Questions people ask

**Is this the official Blinkit API?** No. Rewalto is not affiliated with, endorsed by or partnered with Blinkit. It reads Blinkit's public pages, the way a shopper sees them.

**What does a read cost?** 1 credit per 10 readings. Every account gets 1,000 free credits a month, and a read that delivers nothing costs nothing.

**Do I need an API key?** Yes, for this endpoint. The sample on this page comes from GET /v1/data/samples, which is free and needs no key.

**How do I build a Blinkit price tracker?** Read this endpoint each day for the products you follow, keep the records, and compare each new price with the last. Re-reading the same records within a week is free.

**Can an AI agent read it?** AI agents can read the same records through Rewalto's MCP server, which is in preview.

## Related

- [Blinkit API](https://rewalto.com/developers/api/blinkit)
- [Blinkit product data API](https://rewalto.com/developers/api/blinkit/products)
- [Blinkit dark store coverage API](https://rewalto.com/developers/api/blinkit/coverage)
- [Blinkit price and dataset page](https://rewalto.com/data/commerce/blinkit)
- [Blinkit dark store map](https://rewalto.com/data/dark-stores/app/blinkit)
- [Blinkit scraper alternative](https://rewalto.com/guides/blinkit-scraper-alternative)
- [Blinkit API contract for agents (OpenAPI)](https://rewalto.comhttps://api.rewalto.com/openapi/blinkit.json)
- [Full API contract (OpenAPI)](https://rewalto.com/developers/openapi.json)
- [Data catalogue for agents](https://rewalto.com/developers/catalog.json)
- [MCP server tools (preview)](https://rewalto.com/developers/mcp)
- [Quickstart: your first request](https://rewalto.com/developers/docs/quickstart)
- [Pricing and free credits](https://rewalto.com/pricing)

---

Canonical page: https://rewalto.com/developers/api/blinkit/price-history
Last content change: 2026-11-05
