Free hotel reputation check by name or URL: hotel ratings on six review sites — Google Hotels, Tripadvisor, Booking.com, Agoda, Hostelworld, Despegar. One row per hotel per site: rating, 0-5 score, review count, star rating, ranking, sub-scores; summary row: rating comparison. 10 hotels per run.
Booking: hotel names are resolved through Booking's GraphQL AutoComplete, the call its own search box makes. The old autocomplete endpoint has answered 403 to every client since 2026-10-17, so each name-based run ended the Booking column as an error status. Row keys are unchanged and the run is still free.
2026-10-16 — Keyword Planner and locale documentation
Validated search terminology against Google Ads Keyword Planner and Store shelves. Added localized usage guidance and bounded examples; retained existing English phrases. Clarified locale limitations where measured. No runtime, output fields, defaults, or pricing changed.
1.2 — listing and input form reworded, 2026-10-11
No behaviour, output or price changed; the same inputs return the same rows, and the actor is still free.
Title and Store description now carry the nouns agents and buyers search for, as phrases: hotel reputation, hotel ratings, rating comparison, review sites, review count, star rating, ranking, sub-scores, and the six sites by name; "10 hotels per run" is stated on the card. The seoDescription carries review aggregator, review score comparison and the German, French and Portuguese nouns (Hotel Bewertungen, avis hôtel, avaliações).
Input order is unchanged (hotelNames, startUrls, sources, language, country, then pacing and proxy); every description now carries a literal example, its default and what empty means; startUrls was cut from 543 to under 500 characters so the agent view no longer truncates it; country says it is the market, not the hotel's country; hotelNames names the comp-set request. Nothing was renamed, removed or re-defaulted.
README: a section mapping common requests to the exact input, with the row types, the per-site scales and the status contract (ok | not_found | unsupported | skipped | error), and the other-language nouns.
1.2 — 2026-10-02
Tripadvisor: rebuilt on the parser for the page shape Tripadvisor has served since 2026-10-02. The site moved the review list to another part of the page state, so the previous build read every property page as unusable and the Tripadvisor column of every run ended as an error status. The score, review count, ranking and six sub-scores are read from the new shape (and the old one); row keys are unchanged and the run is still free.
1.1 — 2026-09-01
Tripadvisor: rebuilt on the Safari 26.0.1 TLS fingerprint. DataDome dropped curl_cffi's Firefox 147 profile on 2026-09-01 and now answers 403 to it on every IP, so the Tripadvisor column of every run errored. The parser is unchanged; curl_cffi is pinned to >=0.16.2 so the image always resolves a build that carries the Safari profile.
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. Free: there is no pay-per-event pricing and no charging call anywhere in the actor.
One reputation row per hotel per review site — Google Hotels, Tripadvisor, Booking.com, Agoda, Hostelworld and Despegar — carrying the headline score on the site's own scale, the same score on a shared 0-5 scale, the review count, the star class, the city and the property URL.
Tripadvisor's ranking sentence is parsed into ranking, ranking_position and ranking_of; the free sub-scores are kept where a site publishes them (Tripadvisor's six, Hostelworld's seven, Despegar's six).
One summary row per hotel across sites: the mean on the 0-5 scale, the kindest and harshest site, the spread between them, the total reviews found and which site had nothing.
One status row per hotel per site, ok | not_found | unsupported | skipped | error, always with a reason. A refusal is an error; a genuinely absent property is not_found; the two are never merged.
Hotels by name (hotelNames, ideally Name, City) resolved through each site's own autocomplete or typeahead, or by property URL (startUrls) on any of the six. A URL's own site is read first and the name it returns is what the other sites are then searched by.
Name matching is guarded twice: each module's own check (Tripadvisor's >= 50% typeahead word overlap, Booking's dest_type: hotel plus country match, Despegar's canonical-id check) and a uniform word-overlap score reported as matched_confidence. Below 0.6 the site is reported not_found with the score that failed, never guessed at.
Free-run bounds: 10 hotels per run (the rest are skipped with a clear message and never fetched) and at most one lookup request plus one aggregate request per site per hotel. No paging anywhere.
Tripadvisor and Despegar are fetched through the residential proxy group whatever proxyConfiguration says, because both refuse datacenter ranges; the other four run on datacenter. An account without residential access gets a warning and the configured proxy.
Every row names the paid per-source scraper that returns the full review text in reviews_scraper, and the dataset ships nine views: an overview, one per site, the cross-source summary and the status list.