Zepto Product Scraper - Prices, MRP, Stock by Location avatar

Zepto Product Scraper - Prices, MRP, Stock by Location

Pricing

from $1.20 / 1,000 products

Go to Apify Store
Zepto Product Scraper - Prices, MRP, Stock by Location

Zepto Product Scraper - Prices, MRP, Stock by Location

Scrape Zepto product listings for any delivery location in India — name, brand, price, MRP, discount, pack size, stock, rating and image. Search by keyword or paste category/product URLs. Compare prices across cities. JSON, CSV or Excel out, billed per product.

Pricing

from $1.20 / 1,000 products

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

153

Total users

36

Monthly active users

a day ago

Last modified

Share

Zepto Product Scraper

Turn Zepto — India's 10-minute grocery app — into structured product data for any delivery location. Search by keyword, or paste category / product URLs, and get one clean row per product with price, MRP, discount, pack size, stock, rating and image — tagged with the location it was priced for.

Built for price monitoring, competitor tracking and quick-commerce market research across India.

How it works

How the Zepto Product Scraper works

✨ Why use this scraper?

  • Real, location-specific prices — Zepto stock and prices vary by store, so every row is tagged with the delivery location it was scraped for. Run multiple cities to compare.
  • Three ways in — keyword search, category URLs, or direct product URLs. Mix them in one run.
  • Rich product rows — name, brand, MRP, selling price, discount %, Zepto Pass price, pack size, unit, stock, rating, category and images.
  • Prices in ₹, not paise — converted and clean, ready for a sheet.
  • No login, no browser, no captcha — talks to Zepto's own app API directly; fast and cheap to run.
  • JSON, CSV, Excel or API — pipe straight into your BI tool, sheet or pipeline. Billed per product.

🎯 Use cases

You are a…Use it to…
Brand / FMCG teamTrack your SKUs' prices, discounts and availability across cities on Zepto
Competitor analystCompare a category's pricing between Zepto stores / cities
Quick-commerce researcherMeasure assortment, discount depth and stock-outs over time
Pricing / revenue teamFeed live competitor prices into dynamic-pricing models
Data / app builderSeed a grocery price-comparison product with structured rows

📥 Supported inputs

InputExampleWhat it does
Location (required)Koramangala, Bengaluru or 12.9352,77.6245Resolves the delivery store; everything is priced for it
Search keywordmilk, chocolate, attaSearches the keyword in each location, paginated
Category URLhttps://www.zepto.com/Categories?categoryId={X}&subCategoryId={Y}Sweeps a category for each location (use this deeplink form — it carries both ids the API needs)
Product URLhttps://www.zepto.com/pn/{slug}/pvid/{id}Looks up that product (resolved via search) for each location

Not supported: placing orders, cart / checkout, account-only data, or any non-public content. The actor reads only the public catalogue.

⚙️ How it works

  1. Resolve each location — free text is geocoded through Zepto's own maps, then matched to a serviceable store.
  2. Fetch the catalogue from Zepto's app API: keyword search, category page, or product page — paginated.
  3. Parse the product grid into flat rows; prices are converted from paise to ₹.
  4. Tag every row with its store / location, dedupe, and emit one row per product.

⚙️ Input parameters

FieldTypeDefaultDescription
locationsarray—Area names or lat,lng pairs. Required (Zepto prices are per-store).
searchQueriesarray—Products to search, one product per entry (e.g. milk, bread, atta). Zepto searches one product at a time, so a comma/newline-separated list in a single field (bread, milk) is auto-split and each product searched individually.
startUrlsarray—Zepto category (/cn/…/cid/…) and/or product (/pn/…/pvid/…) URLs.
maxItemsinteger1000Hard cap on product rows for the whole run.
maxItemsPerQueryinteger1000Cap per keyword × location (and per URL × location).
maxConcurrencyinteger4Parallel requests. Keep low — Zepto rate-limits per IP.
maxRequestRetriesinteger12Retry budget on Zepto's rate-limit codes (the 477–486 band) and network errors. Each retry rotates to a fresh India IP across two residential pools.
proxyobjectApify Residential INIndia residential is used automatically.

📊 Output overview

Each dataset record is one product, priced for one location. Run the same keyword across several locations to get one row per (product × location) — ideal for cross-city price comparison. All money fields are in INR (₹), converted from Zepto's internal paise.

📦 Output sample

{
"rowType": "product",
"productId": "5dac97a5-0241-4b24-9a5d-8243838257f5",
"variantId": "ba77f9b3-0525-4ce8-bc4b-a2480419b780",
"productUrl": "https://www.zepto.com/pn/godrej-jersey-toned-fresh-milk-pouch/pvid/ba77f9b3-0525-4ce8-bc4b-a2480419b780",
"name": "Godrej Jersey Toned Fresh Milk | Pouch",
"brand": "Godrej Jersey",
"mrp": 27,
"sellingPrice": 26,
"discountedPrice": 26,
"discountPercent": 3,
"zeptoPassPrice": null,
"packSize": "1 pack (490 ml or 500 ml)",
"unit": "ml",
"weightInGms": 500,
"images": ["https://cdn.zeptonow.com/production/cms/product_variant/8fd1fa19-56f7-4f23-8a0d-625fc669cec2.jpeg"],
"inStock": true,
"availableQuantity": 10,
"category": "Dairy, Bread & Eggs",
"categoryId": "5d92e29c-1f5a-43a2-9d8e-8b6f5f0f0a11",
"rating": 4.6,
"ratingCount": 66206,
"storeId": "5ec071fd-78df-41f6-b3ae-7298d9f96a3d",
"location": "Koramangala, Bengaluru",
"latitude": 12.9352,
"longitude": 77.6245,
"sourceQuery": "milk",
"sourceUrl": null,
"scrapedAt": "2026-06-23T20:30:00.000Z"
}

🗂 Key output fields

FieldTypeNotes
name / brandstringProduct name + brand
sellingPrice / mrp / discountedPricenumberIn ₹ (converted from paise)
discountPercentnumberDiscount off MRP
zeptoPassPricenumber | nullZepto Pass member price, when offered
packSize / unit / weightInGmsstring / numberPack details
inStock / availableQuantityboolean / numberLive stock for the store
rating / ratingCountnumberProduct rating + number of ratings
category / categoryIdstringPrimary category
imagesstring[]Product image URLs
productUrl / productId / variantIdstringCanonical URL + ids
storeId / location / latitude / longitudestring / numberThe store & location this row was priced for
sourceQuery / sourceUrlstring | nullWhat produced the row

🔁 Coming from another Zepto scraper?

These are the things people most often report as missing or broken on other Zepto actors. Each one is a field or a behaviour this actor already has.

What you hit elsewhereWhat this actor does
A multi-keyword run is unsortable — rows don't say which keyword produced themEvery row carries sourceQuery (and sourceUrl for URL inputs), so you can group a milk, bread run by search
No link back to the product on ZeptoproductUrl is built on every row, ready to click or feed to another step
The same product shows up twice as a "duplicate"Variants are separate rows keyed by variantId, and identical variants are de-duplicated per store
No location input, so the prices belong to no particular storelocations is required and accepts area names, 6-digit pincodes or lat,lng. Each row carries storeId, location, latitude, longitude
You ask for 30 rows and get 10maxItems and maxItemsPerQuery are the only row caps. There is no hidden plan limit
Empty results, or "the actor is down", when Zepto throttlesRetries rotate the whole identity rather than only the IP, resolved stores are cached across runs, and a throttle wall is waited out inside the run's time budget instead of returning nothing
A location outside Zepto's delivery area looks the same as a failureIt is reported as not serviceable, by name, so you can tell "Zepto doesn't deliver here" from "the scrape broke"

❓ FAQ

Why do I need a location? Zepto is a delivery app — every product's price, discount and stock depend on the store serving your address. No location, no catalogue.

Can I compare prices across cities? Yes — that's the point. Put several entries in locations and the same product comes back once per location, each with its local price and stock.

How many products per keyword? Fewer than the match count Zepto reports: "milk" in Koramangala reports 237 matches, but its pages hold 87 distinct pack sizes before Zepto marks the last page. The actor pages until that marker, so you get everything the search returns. Categories can be larger. Use maxItemsPerQuery to cap.

Are the prices accurate / live? Yes — they're read live from Zepto's catalogue at scrape time, in ₹.

Do I need to set up proxies? No. India residential routing is built in (Zepto is India-only). Just give it a location and what to scrape.

💬 Support

Found a bug or need an extra field? Open an issue on the actor's Issues tab and it'll be looked at quickly.

🛠 Additional services

Need a custom field, another quick-commerce app (Blinkit, Instamart), or a scheduled price-tracking feed into your warehouse? Custom scraping and pipeline work is available on request.

🔎 Explore more scrapers

Looking for more India / commerce data sources? Check out the other directory, e-commerce and company scrapers in the same publisher's collection on the Apify Store.


🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/zepto-product-scraper).

Purpose: Zepto (India's 10-minute grocery app) product rows for any delivery location, priced per-store so the same product can be compared across cities.

Minimal input:

{
"locations": ["Koramangala, Bengaluru"],
"searchQueries": ["milk"],
"maxItems": 50
}

URL mode instead of keywords: drop searchQueries and pass "startUrls": ["https://www.zepto.com/pn/{slug}/pvid/{id}"] (product) or a https://www.zepto.com/Categories?categoryId={X}&subCategoryId={Y} deeplink (category).

Output: one row per product × location — rowType, productId, variantId, productUrl, name, brand, mrp, sellingPrice, discountedPrice, discountPercent, zeptoPassPrice, packSize, unit, weightInGms, images, inStock, availableQuantity, category, categoryId, rating, ratingCount, storeId, location, latitude, longitude, sourceQuery, sourceUrl, scrapedAt. Money fields are in ₹ (converted from paise).

Behaviors an agent should know:

  • locations is required (prices/stock are per-store); every query and URL is scraped once per location, so the same product returns one row per location.
  • Set maxItems (whole-run cap, default 1000) and maxItemsPerQuery (per keyword × location, default 1000); one keyword search returns fewer products than Zepto's reported match count (e.g. 87 pack sizes for a reported 237); the actor pages to Zepto's last page.
  • searchQueries is one product per entry; a comma/newline list in a single entry (bread, milk) is auto-split and searched individually.
  • Category URLs must use the Categories?categoryId=…&subCategoryId=… deeplink form — a plain /cn/…/cid/… URL carries only one id and won't list products.
  • India residential proxy is built in; keep maxConcurrency low (3–5) — Zepto rate-limits per IP.
  • Billing: one paid product event per row — see the Pricing tab on the actor page.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zepto (Kiranakart Technologies Pvt. Ltd.) or any of its subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available Zepto product catalogue data — no authenticated endpoints, no account-only features, no order placement. Users are responsible for ensuring their use complies with Zepto's Terms of Service, applicable data-protection law (including India's DPDP Act, GDPR and CCPA where relevant) and any contractual obligations of their own organisation.


SEO Keywords

zepto scraper, scrape zepto, zepto product scraper, zepto price scraper, zepto api, zepto data extraction, quick commerce scraper india, zepto price tracker, grocery price scraper india, zepto product data, q-commerce price monitoring, zepto competitor analysis, indian grocery delivery scraper, zepto category scraper, zepto mrp discount scraper, blinkit instamart zepto data, dynamic pricing grocery india, zepto stock availability, scrape indian quick commerce, zepto bengaluru mumbai delhi prices