Reliability and billing fixes.
- Booking source is now reported for every hotel Google names one for. The
source field was matched against a fixed list of OTA names and missed most real sources (Expedia.com, Vio.com, Vrbo.com, ae.Bluepillow.com, freecancellations.com and many others), leaving the field empty. It is now read from its own field in Google's response, so any source is captured — and Google's currency list, which sits in the same block, can no longer be mistaken for one.
- Property mode no longer delivers a row it could not bill. When a run hit its spending limit,
hotels inputs still pushed the hotel row while place searches correctly dropped it. Both paths now behave the same.
- Bad input fails the run cleanly instead of crashing it. Non-numeric values for
adults, childrenAges, maxHotels, maxOffersPerHotel, sessions or perIp raised an unhandled error mid-run; out-of-range values were accepted silently. Every numeric input is now checked against the range this page documents, and language/country must be real codes.
maxHotels: 0 was silently treated as 20 and billed for 20 hotels. Values outside 1–200 are now rejected before anything is fetched.
- A negative
sweepDays produced no stays and then crashed the run; it is now rejected.
First public release.
- Hotel prices from Google Hotels for exact dates, occupancy (adults + children's ages), currency and market.
hotel rows (lowest nightly rate, stay total, deal note, class, rating, coordinates, links) for place searches, paged up to 200 hotels.
offer rows: every booking source's rate per hotel — sources (one row per source, lowest rate) or rooms (every room and rate) — with free-cancellation deadline, click link and partner deep link (official sites include the booking engine URL with the dates).
- Property mode: price exact hotels from Google Hotels URLs or entity tokens without a search.
- Relative dates (
"30 days", "6 weeks", today) so schedules never go stale; sweepDays for rate calendars.
- Billing: pay per priced row only; sold-out hotels, empty searches and
status rows are free; each hotel and stay is billed once per run even when searches overlap; maxOffersPerHotel caps offer rows.
- Dataset views in Console: Overview, Hotels, Offers by source, Run status.
- Reliability: rejects past check-ins instead of pricing tonight silently, reports failures as
status rows, runs under limited permissions, and is watched by a daily canary run.