Zepto Catalogue by Location avatar

Zepto Catalogue by Location

Under maintenance

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Zepto Catalogue by Location

Zepto Catalogue by Location

Under maintenance

Every 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

AtTheRate AI

Maintained by Community

Actor 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, plus position so shelf order survives.
  • Price economics per product: price, mrp and discount_percent.
  • Stock depth rather than a bare flag: available_quantity and max_quantity alongside out_of_stock.
  • A sponsored flag: is_ad marks placements Zepto itself tags as sponsored.
  • Store context on every row: store_id and location_label, plus product_id, variant_id, name, brand, pack and image_url for 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 example 122002.
  • 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, mrp and discount_percent across pincodes.
  • Out-of-stock and low-stock monitoring from out_of_stock and available_quantity.
  • Ad-slot share: count is_ad rows by brand within a subcategory.
  • Assortment gap analysis by comparing the product_id set 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 and failed_locations incremented.
  • is_ad comes 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 locations field.

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.