# Changelog of Despegar Hotel Ratings Scraper — Guest Scores & Summary (`kestrel/despegar-hotel-ratings`) Actor

- **URL**: https://apify.com/kestrel/despegar-hotel-ratings/changelog.md
- **Full Actor documentation**: https://apify.com/kestrel/despegar-hotel-ratings.md

## Changelog

### 2026-08-30

- Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
- Store listing: moved into the categories buyers actually browse (the old `Business` category has no Store page).

### 1.0 — 2026-08-29

First release.

- One request per hotel: the whole Opiniones payload is server-rendered in `<script id="serverApp-state">`, so there is no reviews endpoint to page and no browser to run.
- `hotel` rows (charged $0.004): 0-10 guest rating with its scale and 0-5 conversion, Despegar's rating label, the review count behind the score, the six category scores (service, staff, location, internet, cleanliness, value), Despegar's own AI-written summary, stars, city, country, address, coordinates, providers and traveller profiles.
- `review` rows (free): the up-to-four comments the page publishes — score, good/bad halves, month (`YYYY-MM` normalised), traveller type, reviewer name and country, provider and helpful votes.
- `status` rows (free): `ok`, `no_reviews`, `not_found`, `filtered`, `duplicate`, `blocked`, `limited`, `error`, each with its reason.
- 14 country sites plus the auto-routing `despegar.com`; `locale` picks Spanish or English when no country is given. Brazil (`decolar.com`) is listed but refused every request we made.
- `minRating` filters hotels before billing; a filtered, unrated, unknown or duplicate hotel is never charged.
- Transport: `curl_cffi` with the Chrome TLS profile on Apify's residential proxy, the in-session retry that clears DataDome's first 403, and a canonical-URL check so a page for another hotel is never billed as the one you asked for.
