# Changelog of Zomato Restaurant Scraper — Indian Cities & Cuisines (`blackfalcondata/zomato-com-scraper`) Actor

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

## Changelog

All notable changes to this Actor are documented here.

### \[Unreleased]

#### Added

- Optional customer reviews per restaurant (text, star rating, reviewer, date, likes, owner response), sorted newest, highest or lowest rated, with a per-restaurant limit (0 collects every review the restaurant has).
- City browse: leave the cuisine empty to list every restaurant in a city (or several cities).
- Pasted restaurant pages (including their /order, /info and /reviews pages) return that restaurant.
- Optional full menu per restaurant (dish, price, category, veg/non-veg, description, image).
- "Most liked first" review order.
- Emit Expired Listings now delivers a row for each restaurant that left the listing.

#### Fixed

- A finished run now reports the number of rows it delivered; the run summary no longer shows 0 rows while the dataset is still catching up.
- Two runs started at the same time with the same incremental state no longer both process and deliver the same results.
- Long incremental runs keep their hold on the saved state while slow review or detail pages load, and stop safely with the results delivered so far if that hold can no longer be renewed.
- Incremental runs report a restaurant's new address or city as UPDATED right away, even while its detail page cannot be read.
- Incremental mode no longer reports a restaurant as updated when the listing starts showing an address the detail page already gave.
- Restaurant details and reviews are no longer missed when several requests hit a blocked connection at the same time; all of them continue on the replacement connection.
- Incremental runs no longer report a restaurant as updated a second time when its detail page comes back after an outage.
- Later result pages keep loading after the connection switches to a new proxy exit.
- Long listings are read page by page to the end; runs no longer stop after the second page.
- A search Zomato could not be read is reported as a failed or partial run, never as "no results".
- Incremental runs deliver up to Max Results new or changed restaurants instead of counting unchanged ones.
- Changes to phone, menu or review text are reported as UPDATED; like counts alone are not a change.
- Pasted listing URLs keep their own page (dine-out vs delivery), and URLs with unsupported filters stop with a clear input error.
- Overlapping cities or searches no longer cut a listing short; very long listings are read to the end, and a run that hits its time limit is reported as partial.
- A restaurant whose details or reviews briefly fail to load is no longer reported as UPDATED, and the run says which details were missing.
- Expired restaurants now also reach your webhook, chat notifications and connected app, not only the dataset.
- "Most liked first" now ranks all of a restaurant's reviews, not only the newest ones.
- Two incremental runs on the same state key can no longer both write results; the run that loses the lock stops cleanly.
- Runs on the Apify platform no longer fail at the first page when Zomato refuses the connection; a refused connection is retried on a new one.
- Scheduled runs no longer block each other after a run ends early.
- Max Results is no longer capped at 1,000; any number (or 0 for no limit) is accepted.

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

Initial release.

#### Added

- Scrape Zomato restaurants by city and cuisine, or from a city or cuisine listing page pasted as a start URL.
- Each restaurant carries its name, cuisines, rating, cost for two, address, phone, opening hours and FSSAI licence number, with a link to the restaurant on Zomato.
- Stops at the maximum cost per run you set instead of failing the run.
- Incremental mode flags new and changed restaurants between runs.
