Zepto Catalogue by Location
Under maintenancePricing
from $2.50 / 1,000 results
Zepto Catalogue by Location
Under maintenanceEvery Zepto product for a delivery location, category by category, with price, MRP, discount, live available quantity and out-of-stock state.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
AtTheRate AI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Pulls the whole Zepto storefront for an Indian pincode, category by category, with price, MRP, discount, the available quantity the app reports and out-of-stock state. Zepto prices and stocks per dark store, so the same SKU differs between neighbourhoods.
What you get
- Complete category walk:
category,subcategory, their slugs and ids, pluspositionso shelf order survives. - Price economics per product:
price,mrpanddiscount_percent. - Stock depth rather than a bare flag:
available_quantityandmax_quantityalongsideout_of_stock. - A sponsored flag:
is_admarks placements Zepto itself tags as sponsored. - Store context on every row:
store_idandlocation_label, plusproduct_id,variant_id,name,brand,packandimage_urlfor joining. - Location honesty: a pincode Zepto does not serve is reported as a failed location with the reason, and returns zero rows instead of another city's data.
Input
Give one or more Indian pincodes. Everything else narrows the crawl.
{"pincodes": ["122002"],"categoryFilter": ["fruits"],"delayMs": 400,"maxPagesPerCategory": 0,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "IN"}}
pincodes: 6-digit Indian pincodes, for example122002.categoryFilter: only categories whose slug or name contains one of these strings, case-insensitive. Empty means all.maxPagesPerCategory: cap on pagination. 0 pages until Zepto reports the end.delayMs: pause between calls, 400 by default.proxyConfiguration: residential country IN is the default and is required in practice.
Output
One row per product, per subcategory, per location. The run above returned 618 rows.
{"location_label": "Gurgaon-DLF","store_id": "d8c4ab04-68f0-483f-82be-8b9fb18d17ae","category": "fruits-vegetables","category_name": "Fruits & Vegetables","subcategory_name": "Fresh Vegetables","position": 1,"product_id": "d2a42dc1-1b5a-4925-9b66-28a24d2d8830","name": "Onion","brand": "Unbranded","pack": "900 g - 1 kg","price": 62,"mrp": 126,"discount_percent": 50,"available_quantity": 5,"out_of_stock": false,"max_quantity": 5,"is_ad": false,"fetched_at": "2026-09-11T08:59:34.879Z"}
brand reads Unbranded for fresh produce, which is Zepto's own value, not a gap. available_quantity is capped by Zepto's per-order limit, so treat it as a floor on real depth.
Use cases
- Per-store price and discount tracking from
price,mrpanddiscount_percentacross pincodes. - Out-of-stock and low-stock monitoring from
out_of_stockandavailable_quantity. - Ad-slot share: count
is_adrows by brand within a subcategory. - Assortment gap analysis by comparing the
product_idset between cities.
Notes and limits
- Zepto blocks an IP after roughly 5 automated page loads, answering with an HTTP 202 challenge. A residential Indian proxy is effectively required and is the default.
- Each minted session is pinned to one exit IP. A per-request rotating gateway kills sessions within a few calls, so use sticky sessions.
- An unserved point ends that location cleanly, for example
Zepto has no open store for 24.9,81.5 (serviceable=false), with zero rows andfailed_locationsincremented. is_adcomes from Zepto's own sponsored markers. Verified runs in fresh produce returned none, so ad density varies sharply by category.- Exact coordinates can be supplied instead of pincodes through the advanced
locationsfield.
FAQ
Do I need a proxy? Yes, in practice. Use a residential proxy in India. It is already the default, and sessions must be sticky to one exit IP.
How many results can I get? A full store catalogue. One verified run returned 618 products from a single category filter.
Does it need login or an API key? No. No Zepto account, key or cookie of your own is needed.
How does a pincode pick a store? The pincode is resolved to a point and Zepto binds the session to the dark store serving it. That store's id is stamped on every row as store_id; if no store is open there, the location is skipped with the reason.