Google Travel Rooms API
See which rooms each booking site sells for a stay, with cancellation terms and breakfast per rate.
Overview
Get room-level offers per booking site for one hotel and stay: room names, photos, bed and view features, and per rate the nightly and whole-stay price, free cancellation, and breakfast.
Contract note
Same parameters, validation, and default dates as Prices: supply check_in and check_out together in YYYY-MM-DD format, check-in today or later and check-out after check-in, or omit both to let Google choose. Google shows room detail only for booking sites with a sponsored listing on the hotel, usually a few, so Prices lists more sites than Rooms. A hotel with no bookable rate, or no room-level offers for the stay (vacation rentals have none), returns 404. No booking links are returned; use the partner's offer in Prices for a link.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_token | string | Required | Opaque Google Travel token returned by Resolve, Search, or Similar. Tokens can be short or long (for example, a short token is CgoI0PjV-Zzk1JpgEAE). Use this token, not hotel_id, for property drilldowns. |
| check_in | date | Optional | Check-in date (YYYY-MM-DD). Must be today or later and supplied with check_out. |
| check_out | date | Optional | Check-out date (YYYY-MM-DD). Must be after check_in and supplied with it. |
| adults | integer | Optional | Number of adults, 1 to 10. Default: 2. |
| currency | string | Optional | ISO 4217 code shaping every money field. Default: USD. |
| hl | string | Optional | UI language code. Default: en. |
| gl | string | Optional | Region or country code. Default: us. |
Response schema
| Field | Type | Description |
|---|---|---|
| check_in / check_out / currency | mixed | Requested stay dates (or Google's defaults when omitted) and the money currency. |
| partners | array | Booking sites with room-level offers: name, logo, official (true for the hotel's own website), perks, and rooms. |
| partners[].rooms | array | Room types as that site names them, with photos and features (beds, occupancy, view). Rooms are not matched across sites. |
| partners[].rooms[].rates | array | Per rate: price (nightly) and total_price (whole stay) as formatted and value, free_cancellation, cancellation_policy (Google's text), free_cancellation_until (ISO date, null when the year is ambiguous or the text is not English), and breakfast_included. |
| search_metadata.provider | string | Always google_travel. |
Errors
Errors use RFC 7807 Problem Details (application/problem+json) with an error_code. Successful responses are always 2xx.
| Status | error_code | When |
|---|---|---|
| 400 | INVALID_PARAMETERS | Invalid stay dates: only one of check_in and check_out, check-in before today, or check-out not after check-in. |
| 404 | NO_RESULTS | No bookable rate, or no room-level offers for the stay. |
| 422 | VALIDATION_ERROR | entity_token is missing, or adults is outside 1 to 10. |
| 502 | SCHEMA_DRIFT / UPSTREAM_ERROR | Google's answer could not be read. Retry later. |
| 503 | SERVICE_UNAVAILABLE | Temporarily unavailable. Honour the Retry-After header. |
| 504 | UPSTREAM_TIMEOUT | Google did not answer in time. |
Identifier workflow
Resolve once, reuse the token
Resolve a hotel name or run Search to get an entity_token. Cache that token and use it for Summary, Info, Photos, Prices, Rooms, Similar, and Nearby requests.