# Blinkit

Measured Blinkit data, one operation per call — a product's price and stock at ONE dark store, right now. Every op takes `store`: a storeId, or a pincode (with city), or lat/lon. Prices, MRP, discounts and stock are per store and every fetch adds a point to that product's price history at that store. ops: products (full detail for up to ten blinkit.com product URLs at the store — price, MRP, discount, stock count, rating, seller, manufacturer, specifications), search (what a shopper at that store sees for a query — listings with price, stock and rank), category (one page of the app's own menu at that store; names must match the app exactly, e.g. category "Atta, Rice & Dal", subCategory "Atta" — the pair must belong together), history (stored price/stock series for products already held, free). Ops are independent — issue several as PARALLEL tool calls. Fresh fetches cost credits; anything already held is free.

`POST https://api.zomler.com/api/v1/platforms/blinkit`

-   [products](#products)
-   [search](#search)
-   [category](#category)
-   [history](#history)

## products

from 1 credit · fresh for 6 hours

Full product detail at one store — price, MRP, discount, stock count, rating, seller, manufacturer, specifications. By product URL.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `store` (required) | object | — | — |
| `store.storeId` | string | `—` | — |
| `store.city` | string | `—` | — |
| `store.pincode` | string | `—` | — |
| `store.lat` | number | `—` | — |
| `store.lon` | number | `—` | — |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/blinkit \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "products",
    "subjects": [
      "example"
    ],
    "store": {
      "pincode": "560001"
    }
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/blinkit", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "products",
      "subjects": [
        "example"
      ],
      "store": {
        "pincode": "560001"
      }
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/blinkit",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "products",
        "subjects": [
          "example"
        ],
        "store": {
          "pincode": "560001"
        }
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## search

from 20 credits for 20

Search the app as a shopper at that store would — listings with price, MRP, stock and rank.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `store` (required) | object | — | — |
| `store.storeId` | string | `—` | — |
| `store.city` | string | `—` | — |
| `store.pincode` | string | `—` | — |
| `store.lat` | number | `—` | — |
| `store.lon` | number | `—` | — |
| `limit` | integer | `20` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/blinkit \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "search",
    "query": "example",
    "store": {
      "pincode": "560001"
    }
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/blinkit", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "search",
      "query": "example",
      "store": {
        "pincode": "560001"
      }
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/blinkit",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "search",
        "query": "example",
        "store": {
          "pincode": "560001"
        }
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## category

from 20 credits for 20

One category page at one store. Names must match the app's own menu exactly (e.g. category "Baby Care", subCategory "Diapers").

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `category` (required) | string | — | ≤80 chars |
| `subCategory` (required) | string | — | ≤80 chars |
| `store` (required) | object | — | — |
| `store.storeId` | string | `—` | — |
| `store.city` | string | `—` | — |
| `store.pincode` | string | `—` | — |
| `store.lat` | number | `—` | — |
| `store.lon` | number | `—` | — |
| `limit` | integer | `20` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/blinkit \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "category",
    "category": "example",
    "subCategory": "example",
    "store": {
      "pincode": "560001"
    }
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/blinkit", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "category",
      "category": "example",
      "subCategory": "example",
      "store": {
        "pincode": "560001"
      }
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/blinkit",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "category",
        "category": "example",
        "subCategory": "example",
        "store": {
          "pincode": "560001"
        }
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## history

free · reads what is held

The stored price/stock series of products already held at a store — free.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `store` (required) | object | — | — |
| `store.storeId` | string | `—` | — |
| `store.city` | string | `—` | — |
| `store.pincode` | string | `—` | — |
| `store.lat` | number | `—` | — |
| `store.lon` | number | `—` | — |
| `metric` | enum | `price` | `price`, `mrp`, `discount_pct`, `stock_count`, `rating`, `rating_count` |
| `days` | integer | `90` | 1-730 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/blinkit \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "history",
    "subjects": [
      "example"
    ],
    "store": {
      "pincode": "560001"
    }
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/blinkit", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "history",
      "subjects": [
        "example"
      ],
      "store": {
        "pincode": "560001"
      }
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/blinkit",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "history",
        "subjects": [
          "example"
        ],
        "store": {
          "pincode": "560001"
        }
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

---

Source: https://zomler.com/docs/api/platforms/blinkit
