Zepto Scraper — grocery prices and MRP in INR
Pricing
from $0.30 / 1,000 products
Zepto Scraper — grocery prices and MRP in INR
Scrape Zepto (zepto.com) public catalogue: title, selling price and MRP in INR, pack size and in-stock flag. Pincode is recorded; storeId is the store Zepto assigned after WAF, not a proven dark-store switch. Residential IN. No login.
Pricing
from $0.30 / 1,000 products
Rating
0.0
(0)
Developer
Noah Adler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Zepto (zepto.com) is Indian quick-commerce. This Actor paints the public catalogue (home + /cn/ categories) with Apify RESIDENTIAL IN and returns selling price, MRP (when shown), pack size and an in-stock flag (the ADD button). No login.
Keywords: zepto scraper · zepto price tracker · india quick commerce prices · zepto product scraper
What it does
| Step | Action |
|---|---|
| 1 | Input: pincode (6 digits) + maxItems |
| 2 | Opens zepto.com with RESIDENTIAL IN (without it you get an empty AWS WAF page) |
| 3 | After the catalogue paints, sets a user_position cookie from the PIN coordinates |
| 4 | One dataset row per product card that shows a rupee price |
Pincode vs dark store: each row stores the pincode you requested. storeId / storeCity come from Zepto’s serviceability cookie if it is present after paint. Probes with IN residential did not switch store between 560001 and 400001 (same storeId, priceDiff=0). Do not treat this as a guaranteed dark-store selector. IN exits often land Bengaluru.
Zepto’s search page asks anonymous users to log in. v0.1 does not scrape /search. If you pass query, it is ignored.
Input
| Field | Required | Description |
|---|---|---|
pincode | Yes | 6-digit Indian PIN (560001, 400001, 110001…). Recorded on every row. |
categoryUrl | No | Optional https://www.zepto.com/cn/… URL to crawl first |
query | No | Ignored in v0.1 (login wall on search) |
maxItems | No | 1–200 rows (default 25) |
proxyConfiguration | Yes in practice | RESIDENTIAL + country IN |
Example (Try it)
{"pincode": "560001","maxItems": 25,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "IN"}}
Output (one product per row)
| Field | Example |
|---|---|
pincode | The PIN you sent (not proof of a unique dark store) |
storeId / storeCity | UUID / city if the cookie has them; otherwise null |
productTitle / packSize | Surf Excel Matic… · 1 pack (5 kg) |
price / mrp / currency | 599 · 780 · INR |
inStock | true when the card shows ADD (boolean flag, not a unit count) |
url / productVariantId | https://www.zepto.com/pn/…/pvid/{uuid} |
error | Honest row if WAF blocks; message tells you to turn on RESIDENTIAL IN |
There is no availableQuantity.
Pricing
Pay-per-event: cheap volume PPE per product row (see Actor pricing on Apify). You also pay Apify residential proxy traffic.
Notes
- Not Blinkit / Instamart. Same job, different apps — do not mix catalogues.
- Outside India the site often returns HTTP 202 and no products. Country IN is not optional.
inStockis a flag. Zepto does not expose a reliable public unit counter on the card.- Public Terms of Use restrict robots (clause 10.4) and commercial copying of the platform (10.2). You are responsible for how you use the data. This Actor only reads what the public storefront already shows.