# Changelog of Booking Price Monitor · Hotel Rate Tracker (`corent1robert/booking-price-monitor`) Actor

- **URL**: https://apify.com/corent1robert/booking-price-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/corent1robert/booking-price-monitor.md

## Changelog

### \[1.9] - 2026-09-07

#### Added

- **Actor Standby:** HTTP lookup `GET`/`POST /lookup` — **one** Booking.com hotel page or search URL, forced to **1** property, no change detection. Unbounded market scans are rejected. Console **Start** still writes the dataset as before.
- OpenAPI spec for the Standby tab (`web_server_openapi.json`).

### \[2026-09-03]

#### Fixed

- Store Try / LIMITED\_PERMISSIONS no longer crashes on `openKeyValueStore('monitor-state')` (403). Comparison is skipped; rates still export.
- Empty / junk Try input uses the Console Gstaad example (3 hotels) instead of a 0-row exit.

### \[2026-09-01]

#### Changed

- Free plan cap: 20 rows per run. Anonymous Try off.

### 1.8 — 2026-08-27

#### Fixed

- Store Try: `exampleRunInput` matches schema prefill (Gstaad, `maxProperties: 3`). Missing `searchUrls` logs a warning and exits **0** instead of `Actor.fail`. Stop ~40s before platform timeout.

### 1.7 — 2026-08-24

#### Changed

- Store suite: README and listing copy name companion Actors (Hotel Search, Availability). Dropped “Store does not cross-sell”.
- Input schema: `detectChanges` now has a description (required by the Store validator).

### 1.6 — 2026-08-20

#### Changed

- Store README: FAQ, Try cap (`maxProperties: 3`) documented.

### 1.5 — 2026-08-20

#### Changed

- Store Try: 3 properties per search URL (compact date windows) so the health check stays under 5 minutes.

### 1.4 — 2026-08-20

#### Changed

- Store categories: `TRAVEL`, `REAL_ESTATE` (drop Automation / Ecommerce).

### 1.3 — 2026-08-19

#### Added

- Store **Examples** (published tasks): Paris, Lyon, Gstaad sample, Marbella.

### 1.2 — 2026-08-19

#### Changed

- Store categories: `TRAVEL`, `REAL_ESTATE`. README **Also available** (Booking suite) at the top.

### 1.1 — 2026-06-17

#### Fixed

- **`maxProperties` now enforced** — was documented but ignored; prefill Try runs scanned the full Paris market (~2 500 hotels × 15 configs) and hit the 300 s Console timeout before aggregation finished
- **Minimal prefill for Try** — Gstaad (small market) + `maxProperties: 5`; compact scan uses 3 date configs (J+7 only) when cap ≤ 25
- **Batch dataset push** — rows pushed in batches of 50 instead of one-by-one

### 1.0 — 2026-06-13

#### Added

- Initial release
- HTTP-only GraphQL search via Booking.com internal `/dml/graphql` endpoint — no browser required
- Maximum coverage mode: 15 search configurations (3 stay durations × 5 date windows) per market URL
- Stay durations: 1 night (baseline), 2 nights, 7 nights — captures properties with minimum stay requirements
- Date windows: J+7, J+14, J+30, J+60, J+90 from today — automatic, no date input required
- Per-property aggregation: avg/min/max price per stay duration, discount detection, weekly discount %, promo badge detection
- Progressive pay-per-event pricing: FREE → BRONZE → SILVER → GOLD tiers
- Dataset views: Overview (aggregated) and Flat prices (one row per date window)
- Market summary in run log: avg price by date window, free cancellation rate, discount distribution
- Full pagination support (up to ~930 properties per search, Booking.com backend cap)
- RUN\_LOG persisted to key-value store
