# Changelog of OYO Rooms Reviews Scraper (`codingfrontend/oyo-rooms-reviews-scraper`) Actor

- **URL**: https://apify.com/codingfrontend/oyo-rooms-reviews-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/codingfrontend/oyo-rooms-reviews-scraper.md

## Changelog

All notable changes to the OYO Rooms Reviews Scraper are documented here.

### \[1.0.1] - 2026-08-31

#### Fixed

- Detect pagination independently of the number of reviews returned on the current page.
- Retire blocked sessions on HTTP 403 and 429 instead of disabling blocked-status handling.
- Validate and deduplicate OYO URLs and cities, reject foreign hosts, and clamp numeric limits to the input schema.

#### Improved

- Keep browser instances warm briefly between requests to reduce launch overhead.
- Added bounded local, cloud, and invalid-input QA fixtures and expanded output/limit documentation.

### \[1.0.0] - 2026-05-21

#### Added

- Initial production release of the OYO Rooms Reviews Scraper.
- PlaywrightCrawler-based architecture with parallel processing (up to 5 concurrent hotel review pages).
- Supports direct hotel URLs (`hotelUrls`) or automatic hotel discovery by city.
- `maxHotels`, `maxReviewsPerHotel`, and `maxReviewPages` controls.
- Modular project structure:
  - `src/main.js` — entry point with input validation and crawler init.
  - `src/discoveryHandler.js` — discovers hotel URLs by city.
  - `src/reviewHandler.js` — extracts guest reviews from hotel pages.
  - `src/stealth.js` — browser stealth configuration.
  - `src/constants.js` — route labels and static config.
- Output fields: `hotelName`, `hotelUrl`, `reviewerName`, `rating`, `reviewText`, `reviewDate`, `tripType`, `scrapedAt`.
- `.actor/actor.json`, `input_schema.json`, `dataset_schema.json` for Apify platform compatibility.
- Dataset views in `dataset_schema.json` for Apify Storage table display.
- `validate-datasets.js` for local dataset output validation.
- `Dockerfile` for Apify cloud deployment.
- `README.md` with full Apify usage guide.
