# Blinkit API — India's 10-minute grocery app: dark-store price, MRP, discount, live stock, ETA and full product data per PIN code or GPS point

> Search blinkit AS SEEN FROM ONE DELIVERY LOCATION (the dark store that serves it): products with selling price, MRP, discount, pack size and the other pack sizes, live stock count, the store (merchant) id, delivery ETA in minutes, brand, rating and a sponsored flag. `query` and a location (`pincode`, or `lat`+`lon`) are required.
> ReefAPI engine `blinkit` · 3 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/blinkit/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/blinkit/v1/search — 3 credits
Search blinkit AS SEEN FROM ONE DELIVERY LOCATION (the dark store that serves it): products with selling price, MRP, discount, pack size and the other pack sizes, live stock count, the store (merchant) id, delivery ETA in minutes, brand, rating and a sponsored flag. `query` and a location (`pincode`, or `lat`+`lon`) are required.

**Parameters:**
- `query` (string, required) — What to search for, as typed in the blinkit search box.
- `pincode` (string, optional) — 6-digit Indian PIN code to shop from. Give `pincode` OR `lat`+`lon` (one is required): blinkit serves every location from one dark store, so the catalogue, prices and stock depend on it. Resolved through blinkit's own location search and accepted only if the place's postal code is this PIN. Echoed.
- `lat` (number, optional) — Delivery latitude (WGS84). Use with `lon` instead of `pincode`.
- `lon` (number, optional) — Delivery longitude (WGS84). Use with `lat` instead of `pincode`.
- `page` (integer, optional, default 1) — Result page, 1-5 (about 12 rows each). Pages follow the source's own next-page link, so page N costs N upstream searches.

**Returns:** query, location{pincode, lat, lon, address, locality, city, state, postal_code}, serviceable, eta_minutes, total (items the source will page through), exact_match_count (the source's direct matches), search_method (basic | similarity), page, has_next, returned, repeated_from_earlier_pages, non_product_tiles_skipped, results[]{product_id (-> product.product_id), name, brand, pack_size, price, mrp, discount_percent, discount_text, price_text, mrp_text, price_text_matches, currency, inventory, in_stock, product_state, merchant_id, merchant_type, eta_identifier, eta_minutes, group_id, rating{average, count, count_text}, sponsored, similar_result (an item appended after the direct matches ran out), repeated_from_earlier_page, image, image_count, url, variants[]{product_id, pack_size, price, mrp, discount_percent, inventory, in_stock}, rank}

**Example request body:**
```json
{
  "query": "atta",
  "pincode": "400020"
}
```

### POST https://api.reefapi.com/blinkit/v1/product — 3 credits
One blinkit product at one delivery location, by the `product_id` a search row returns (or its blinkit.com/prn/.../prid/<id> URL): price, MRP, discount, live stock count, whether this dark store sells it at all, store id, ETA, pack size and the other pack sizes with their prices, breadcrumb, images, description, shelf life, country of origin, FSSAI licence, manufacturer and every product attribute the page carries.

**Parameters:**
- `product_id` (string, required) — The product's `product_id` exactly as a search row returns it, or its https://blinkit.com/prn/<slug>/prid/<id> URL.
- `pincode` (string, optional) — 6-digit Indian PIN code to shop from. Give `pincode` OR `lat`+`lon` (one is required): blinkit serves every location from one dark store, so the catalogue, prices and stock depend on it. Resolved through blinkit's own location search and accepted only if the place's postal code is this PIN. Echoed.
- `lat` (number, optional) — Delivery latitude (WGS84). Use with `lon` instead of `pincode`.
- `lon` (number, optional) — Delivery longitude (WGS84). Use with `lat` instead of `pincode`.

**Returns:** location{...}, serviceable, product{product_id, name, brand, pack_size, available_at_store, price, mrp, discount_percent, price_text, additional_charges, currency, inventory, in_stock, product_state, merchant_id, merchant_type, eta_minutes, group_id, category_ids{l0, l1, l2}, breadcrumb[], images[], description, shelf_life, country_of_origin, fssai_license, manufacturer, attributes[]{name, value, shown_to_customer}, url, variants[]{product_id, pack_size, price_text, price, selected}}

**Example request body:**
```json
{
  "product_id": "68482",
  "pincode": "400020"
}
```

### POST https://api.reefapi.com/blinkit/v1/store — 2 credits
Whether blinkit delivers to a location and how fast: the resolved address and postal code, serviceable yes/no, the delivery promise in minutes, and the dark stores (merchant ids) serving it with the minutes per service (express, longtail, large order, pharmacy ...).

**Parameters:**
- `pincode` (string, optional) — 6-digit Indian PIN code to shop from. Give `pincode` OR `lat`+`lon` (one is required): blinkit serves every location from one dark store, so the catalogue, prices and stock depend on it. Resolved through blinkit's own location search and accepted only if the place's postal code is this PIN. Echoed.
- `lat` (number, optional) — Delivery latitude (WGS84). Use with `lon` instead of `pincode`.
- `lon` (number, optional) — Delivery longitude (WGS84). Use with `lat` instead of `pincode`.

**Returns:** location{pincode, lat, lon, address, locality, city, state, postal_code}, serviceable, eta_minutes, eta_title, stores[]{merchant_id, services{<service>: minutes}}

**Example request body:**
```json
{
  "pincode": "110001"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=blinkit
- Human docs page: https://reefapi.com/docs/blinkit
- Overview page: https://reefapi.com/blinkit-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
