India's quick-commerce market runs on three platforms — Blinkit, Zepto, and Instamart — and all three now expose nearly the same product schema through Mindcase: price, MRP, discount, stock, rating, and rank, by product, category, or search. If you're picking one for a price-monitoring or catalog agent, the endpoints won't tell you much apart from a field list. What actually differs is which cities and dark stores each platform covers, and how deep its category taxonomy runs.
If you're an agent (or building one) reading this rather than a human, the full machine-readable schema for every endpoint below lives at mindcase.co/skills.md.
Why do all three platforms return almost the same fields?
Quick-commerce apps sell the same kind of catalog — packaged groceries,
household goods, personal care — from hyperlocal dark stores, so the data
they expose converges: productName, brand, price, mrp, discount,
stockCount, rating, rank, storeId. Blinkit Products
and Instamart Products both return 25 fields
with identical names. Zepto Products matches them
field-for-field too; only its category-browsing variant drops the
category column, returning 24.
That convergence means a schema comparison won't help you choose a platform. What will is coverage — whether the platform even operates in the city you need, and whether its dark-store network reaches the pincode you're targeting.
Which platform covers the most ground?
Coverage isn't advertised anywhere public — it's only visible in each endpoint's own filter options, which list every real city, pincode, and dark store Mindcase can currently target on that platform:
| Platform | Cities | Dark stores (sample) | Sub-categories |
|---|---|---|---|
| Blinkit | 253 | 2,100 | 302 |
| Instamart | 145 | 1,206 | 504 |
| Zepto | 82 | 1,202 | 228 |
Blinkit's city count is the widest by a large margin — it reaches tier-2/tier-3 towns (Bahadurgarh, Hisar, Jind, Kaithal) the other two don't list at all. Zepto's footprint is the narrowest and stays concentrated in metro and near-metro markets. If your agent needs to price-check a product across every city a brand sells in, Blinkit is the only one of the three that gets you into most of them; if you only need metro coverage, all three work and the choice comes down to which one actually stocks the SKU.
Instamart's category taxonomy is the deepest — 504 sub-categories against Zepto's 228 — which matters if your agent is browsing by category rather than searching by keyword, since a finer taxonomy means less manual filtering after the pull.
How do you target the right store on each platform?
All three need a store_id before they'll return store-specific pricing —
quick-commerce prices aren't global, they're set per dark store. Pick a
city first, which filters the pincode list, which filters the store list:
curl -X POST "https://api.mindcase.co/v1/data/blinkit/products/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"query": "Amul Milk",
"city": "New Delhi",
"pincode": "110001",
"store_id": "34748",
"maxResults": 20
}
}'
# $0.001 per productSwap blinkit/products for zepto/products or instamart/products and
the shape of the call barely changes — store_id comes from that
platform's own store list, not a shared ID space across platforms, so a
Blinkit store ID won't resolve anything on Zepto. For a full walkthrough
of building a cross-platform live price feed with matched store targeting,
see Turning Blinkit and Zepto Prices into a Live Feed;
for category browsing versus keyword search specifically, see
Category and Search Data Across Quick-Commerce Apps.
What can't you get from any of these?
Two cases.
No unified quick-commerce ID. Each platform assigns its own
productId, variantId, and storeId — there's no shared SKU or GTIN
across Blinkit, Zepto, and Instamart. Matching "the same product" across
all three means matching on productName and brand yourself, not
joining on an ID.
No historical pricing. Every endpoint returns the current price at call time — none of the three expose a price-history field. Tracking a price over time means polling on a schedule and storing your own snapshots.
Which endpoint should you use for which job?
| Endpoint | Input | Price | Best for |
|---|---|---|---|
| Blinkit Products | Query, category, brand, or product URL | $0.001 / product | Widest city coverage — tier-2/tier-3 towns the other two don't reach |
| Instamart Products | Query, category, or product URL | $0.001 / product | Deepest category taxonomy for category-driven browsing |
| Zepto Products | Query, category, or product URL | $0.001 / product | Metro-focused coverage where all three overlap |
FAQ
Nearly identical. Blinkit and Instamart Products both return 25 fields with matching names — productName, brand, price, mrp, discount, stock, rating, rank, and more. Zepto Products matches them too; only Zepto's category-browsing endpoint drops one field, returning 24.
Blinkit, by a large margin — 253 cities against Instamart's 145 and Zepto's 82, based on each endpoint's own city filter options. Blinkit is the only one of the three that reaches most tier-2 and tier-3 towns.
No. Each platform assigns its own productId, variantId, and storeId with no shared identifier. Matching the same product across platforms means matching on productName and brand.
No. Each call returns the current price only. Tracking price changes over time means polling on a schedule and storing your own snapshots.
All three cost $0.001 per product returned, whether you're browsing by category, searching by keyword, or pulling specific product URLs.
