# Changelog of Zepto Scraper — India Grocery Prices, Stock & Delivery ETA (`blackfalcondata/zepto-com-scraper`) Actor

- **URL**: https://apify.com/blackfalcondata/zepto-com-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/blackfalcondata/zepto-com-scraper.md

## Changelog

All notable changes to this Actor are documented here.

### \[Unreleased]

#### Fixed

- Searches no longer end with 0 products when Zepto refuses the connection the run starts on: the run now opens a new site session through a proxy connection and continues, and remembers the connection that works for later runs. If a connection cannot even open a site session, the run moves on to the next one instead of stopping.
- A connection that refuses Zepto's home page no longer crashes the run while a new site session is opened; the run moves on to the next connection, and a session is opened only once Zepto's app has fully started.
- When Zepto asks the run to log in before it can search, the run now tries up to five fresh connections before it gives up, and no longer waits a minute on a connection Zepto never answers, so far fewer searches end with 0 products.
- Category and subcategory scrapes no longer stop early when Zepto shows a few pages of products you have already seen; the walk continues to the shelf's real end, so products listed after those pages are no longer missed.
- Category and subcategory scrapes no longer give up after a long stretch (50 pages) of already-seen products while Zepto keeps moving forward through the shelf; they now always reach the shelf's end, and stop early only if Zepto starts repeating a page position it already served.
- A long incremental run whose lock could no longer be confirmed now stops before writing more rows, instead of renewing a lock another run may already have taken.

### \[0.1.0] — 2026-10-26

Initial release.

#### Added

- Searches recover on their own when Zepto rejects an expired site session with an error message instead of results, rather than failing the run.
- Category URLs no longer stop early when one subcategory keeps showing the same products over and over: that subcategory is left and the remaining subcategories are still read.
- Category URLs keep walking every subcategory even when several subcategories list the same products, so products that appear only in a later subcategory are no longer missed.
- Category and subcategory URLs now return every product: all pages of each subcategory, and every subcategory of a category, are read to the end; a finished subcategory is no longer re-requested, so products that left it are reported as `EXPIRED`.
- Large searches are no longer cut off after 200 pages; a search ends when Zepto has no more results or your `maxResults` is reached.
- Product and category URLs now return exactly that product or category (by its ID), including `/Categories?categoryId=…&subCategoryId=…` links.
- Delivery point accepts an area/landmark name or a PIN code, not only coordinates; an unknown or unserved place stops with a clear message instead of using the default store.
- With `emitExpired`, products that disappeared are now delivered as `EXPIRED` rows; `skipReposts` now recognises re-listed products.
- Incremental runs keep paging until they find new or changed products (and filtered searches until they find matches), instead of stopping on already-seen or filtered rows.
- A run that could not reach Zepto at all now fails with a clear message instead of reporting "no results"; partly failed runs are flagged as partial.
- Back-to-back incremental runs no longer block each other, and a run that loses its lock stops before writing any further rows.
- Runs recover on their own when a saved site session has expired, instead of returning no results.
- Compact output keeps the product ID, so compact rows can be matched to full rows and across runs.
- Search Zepto by keyword and delivery point: prices (selling price and MRP in INR), discount, stock status, pack size, brand, ratings and delivery ETA for each product.
