# DMart dark store API

Last updated 5 Nov 2026.

GET /v1/data/dark-stores with platform=dmart returns each DMart dark store Rewalto holds, with its store id, name, city, pin code, map point and the pin codes it serves. For DMart, Rewalto holds price readings: 58 pins held · 97,785 readings on 4 Nov 2026 (measured 4 Nov 2026), and 45 open dark stores in 13 cities (counted 5 Nov 2026). It needs an API key and costs 5 credits per dark store; the sample record below is free.

## Key facts

| | |
| --- | --- |
| Endpoint | GET /v1/data/dark-stores |
| App filter | platform=dmart |
| Cost | 5 credits per dark store (Only delivered records use credits) |
| Key | API key needed |

## A real DMart record

One record from the free samples route (GET /v1/data/samples?dataset=dark_stores), 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
{
  "day": "2026-11-03",
  "platform": "dmart",
  "storeId": "10687",
  "name": "DMart",
  "source": "core_sweep",
  "city": "Bengaluru",
  "cityTier": "tier_1_metro",
  "status": "open",
  "sweepStatus": "seen",
  "catchmentPins": [
    "560001",
    "560016",
    "560032"
  ],
  "catchmentPoints": [],
  "firstSeen": "2026-09-26T17:25:02.000000Z",
  "lastSeen": "2026-11-02T20:42:35.000000Z",
  "closedAt": null,
  "seenSweeps": null,
  "missedSweeps": 0,
  "lat": 13.033389,
  "lon": 77.6375,
  "id": "1598",
  "sources": [
    "app_reading",
    "core_sweep",
    "served_points_centroid"
  ],
  "homePincode": "560045",
  "pincodeSource": "nearest_pin_centre",
  "area": "Arabic College",
  "address": "4, Hennur Bagalur Main Rd, Byreshwara Layout, Hennur Bande, HBR Layout, Bengaluru, Karnataka 560043",
  "state": "Karnataka",
  "country": "IN",
  "coordSource": "app_reading"
}
```

## Call the DMart 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/dark-stores?platform=dmart&city=Bengaluru&limit=20"
```

Python:

```python
import os
import requests

r = requests.get(
    "https://api.rewalto.com/v1/data/dark-stores",
    params={"platform": "dmart", "city": "Bengaluru", "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["name"], record["city"])
```

Node:

```javascript
const res = await fetch("https://api.rewalto.com/v1/data/dark-stores?platform=dmart&city=Bengaluru&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.name, record.city);
```

## DMart dark stores by city or pin code

Add city, state or pincode to narrow the stores. Each record lists the pin codes the store was seen serving, so a pin code with no store record is one Rewalto has not seen DMart serve.

## Fields in each record

From API contract 0.157.0.

| Field | Type | What it means | Example |
| --- | --- | --- | --- |
| `day` | string (date) | The IST day the store was last seen. The order and the from and to filters use this day. | `"2026-10-15"` |
| `source` | string | Where its status comes from: old_sweep (the weekly sweeps up to 17 Oct 2026) or core_sweep (Core’s weekly serviceability sweeps), the one that saw it most recently; for a store no sweep has seen, app_reading (Rewalto’s other readings of the app: its locator, product readings at a pin) or store_list (a store list Rewalto holds). Every source that holds the store is in sources. | `"old_sweep"` |
| `platform` | string | The quick-commerce app: blinkit, zepto, instamart, bigbasket, flipkart_minutes or jiomart. | `"blinkit"` |
| `storeId` | string | The app’s own id for the store; for a store known only from a store list, Rewalto’s own id for it (ds-<id>). | `"1234"` |
| `name` | null or string | The store name the app states; null when it states none. | `"HSR"` |
| `city` | null or string | The city the sweep found it in, else the city of its first catchment pin; null when neither is known. | `"Bengaluru"` |
| `cityTier` | null or string | The city’s tier from the Government of India’s house rent allowance classes (DoE O.M. No. 2/5/2017-E.II(B), 7 Jul 2017): tier_1_metro (X), tier_2 (Y), tier_3 (every other city, Z); null where the city is not known. | `"tier_2"` |
| `status` | string | open (seen in the sweeps since the first one), opened (first seen after the first sweep of its city: a new store) or closed (no longer seen). | `"open"` |
| `sweepStatus` | string | The sweep’s own status word. old_sweep: active, opened, flicker (missed in one sweep and seen again) or closed. core_sweep: seen (in the app’s newest sweep week) or missed. | `"active"` |
| `catchmentPins` | array of string | The pin codes the store was seen serving, ascending. | `["560034","560102"]` |
| `catchmentPoints` | array of string | Sweep grid points (latitude,longitude) the store was seen serving that the sweep did not place on a pin code; empty for most stores. | `["22.48303,88.35303"]` |
| `firstSeen` | string (date-time) | When a sweep first saw the store (UTC). | `"2026-10-13T14:30:26.000Z"` |
| `lastSeen` | string (date-time) | When a sweep last saw the store (UTC). | `"2026-10-15T16:27:27.000Z"` |
| `closedAt` | null or string | When the store was marked closed; null while open. | `"2026-10-20T00:00:00.000Z"` |
| `seenSweeps` | null or integer | How many sweeps saw the store; null for core_sweep stores. | `2` |
| `missedSweeps` | integer | How many sweeps since it was last seen missed it. | `0` |
| `lat` | null or number | Latitude when located; null otherwise. | `12.9116` |
| `lon` | null or number | Longitude when located; null otherwise. | `77.6389` |
| `id` | string | Rewalto’s own id for the store, stable across refreshes. | `"1042"` |
| `sources` | array of string | Every kind of source that holds the store (old_sweep, core_sweep, app_reading, store_list). | `["old_sweep","app_reading"]` |
| `homePincode` | null or string | The pin code the store is in; null when unknown. pincodeSource says how it is known: an estimate (catchment, catchment_point) is the pin it serves most, not its address. | `"560034"` |
| `pincodeSource` | null or string | app_reading or store_list (stated), nearest_pin_centre (the pin whose centre is nearest the store’s own point), catchment (its most-seen catchment pin) or catchment_point (the pin nearest a grid point it served); null with no pin. | `"catchment"` |
| `area` | null or string | The locality the store is in: as a source stated it, else the main locality of its pin code (India Post); null when unknown. | `"Koramangala"` |
| `address` | null or string | The store’s address as the app or a store list states it; null when none does. | `"Sector 110, Gurugram, Haryana, 122017"` |
| `state` | null or string | The state: as a source stated it, else its pin code’s; null when unknown. | `"Karnataka"` |
| `country` | string | ISO 3166-1 alpha-2 country code. | `"IN"` |
| `coordSource` | null or string | Where lat and lon come from: the app’s own statement of the store’s point (old_sweep, core_sweep, app_reading), or served_points_centroid, the centroid of the points the store served, derived by Rewalto because the app states none; null when not located. | `"core_sweep"` |

## Full reference

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

- [DMart dark store API reference](https://rewalto.com/developers/docs/api/dmart/dark-stores)

## Not DMart's own API

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

## Questions people ask

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

**What does a read cost?** 5 credits per dark store. 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.

**Which pin codes does a DMart dark store serve?** Each record lists the pin codes the store was seen serving and how many times it was seen, with the first and last time.

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

## Related

- [DMart API](https://rewalto.com/developers/api/dmart)
- [DMart price and dataset page](https://rewalto.com/data/commerce/dmart)
- [DMart dark store map](https://rewalto.com/data/dark-stores/app/dmart)
- [DMart API contract for agents (OpenAPI)](https://rewalto.comhttps://api.rewalto.com/openapi/dmart.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/dmart/dark-stores
Last content change: 2026-11-05
