GetRatePeriod
const url = 'https://example.com/wink.partner.v1.Inventory/GetRatePeriod';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"propertyId":"example","startDate":"example","periodInDays":1,"adults":1,"languageCode":"example","quoteCurrencies":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/wink.partner.v1.Inventory/GetRatePeriod \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "propertyId": "example", "startDate": "example", "periodInDays": 1, "adults": 1, "languageCode": "example", "quoteCurrencies": [ "example" ] }'Rate calendar
The best available rate for every check-in/check-out combination across a date range — what you need to render a “cheapest night to stay” calendar without one call per date.
Billed as period_in_days hotel-day units.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Request for GetRatePeriod.
object
Stable property identifier. Required.
First check-in date to price, ISO-8601 “YYYY-MM-DD”. Required.
How many days forward to price from start_date. Between 2 and 30. Required.
This is also the billed unit count: a 30-day calendar costs 30 hotel-day units.
Adults per room, between 1 and 10. Omit it to take the default of 2.
ISO 639-1 language for the room names, e.g. “en”. Required: room names are translated against it, and with no language supplied every name falls back to its untranslated form.
ISO 4217 currencies you want an exchange rate into – same meaning and limits as
UserSession.quote_currencies. The platform currency (USD) is always quoted as well.
Example generated
{ "propertyId": "example", "startDate": "example", "periodInDays": 1, "adults": 1, "languageCode": "example", "quoteCurrencies": [ "example" ]}Responses
Section titled “Responses”The RPC completed with gRPC status OK.
Response for GetRatePeriod.
object
The rate calendar.
object
Stable property identifier.
The property’s name, in the requested language.
Adults every rate in this calendar is priced for — the occupancy you asked for, so it is the same for every entry and is stated once here rather than repeated on each.
True if internet is included across the priced rates.
True if parking is included across the priced rates.
One entry per check-in/check-out combination in the range.
The best available rate for one check-in/check-out combination.
object
Identifier of the room type this rate is for. Join to Content for its description, images and amenities.
The room type’s name, in the requested language.
Check-in date, ISO-8601 “YYYY-MM-DD”.
Check-out date, ISO-8601 “YYYY-MM-DD”.
Nights covered.
True if this combination is bookable.
True if it can be cancelled without charge before the policy’s deadline.
Days from TODAY until free cancellation closes; -1 when not refundable, 0 when it closes today. Same
calculation as RoomRate.refundable_until_days.
True if breakfast is included.
What the guest pays for this combination, in minor units of RatePeriod.currency.
Only meaningful when available is true. An unavailable combination reports 0, which means “no price”
rather than “free” — do not render it as a price.
The currency every RatePeriodEntry.total is in, and the exchange rates out of it.
object
ISO 4217 code the property’s amounts are denominated in, e.g. “THB”.
How many decimal places currency_code has: 2 for THB and USD, 0 for JPY, KRW and VND. Amounts are
integers in MINOR UNITS, so the real value is amount / 10^currency_exponent. Published rather than
assumed because a fixed divide-by-100 is wrong for a real slice of Wink’s inventory – a JPY stay priced
at 15000 is ¥15,000, not ¥150.
Exchange rates out of currency_code: the platform currency first, then each of
user_session.quote_currencies in the order you sent them, each once. A requested currency with no usable rate is
omitted.
Find a rate by its currency_code, never by position: when the platform rate is missing, the first entry is
a requested currency, not USD.
In a page of search results, a property whose currency has no usable platform rate is returned with the quotes
that do exist, possibly none, rather than failing the whole page: its amounts are in currency_code and are
correct either way, so treat an empty or short list as “no rate to convert with”, never as a zero rate. The
calls that price ONE property or a batch of them (Inventory.GetPropertyInventory, Inventory.GetRatePeriod and
Inventory.ListPropertyInventory, which is atomic) return NOT_FOUND instead.
An exchange rate from a property’s currency into one other currency.
object
ISO 4217 code this rate converts INTO.
Units of currency_code per ONE unit of the property’s currency, as a decimal string such as “0.0275”.
A string rather than a double so the digits you receive are exactly the digits we hold. Always positive.
When this rate was recorded, ISO-8601 in UTC, e.g. “2026-10-19T11:00:00Z”.
ISO 639-1 language the names in this response are in.
Example generated
{ "period": { "propertyId": "example", "name": "example", "adults": 1, "internetIncluded": true, "parkingIncluded": true, "entries": [ { "roomTypeId": "example", "name": "example", "startDate": "example", "endDate": "example", "roomNights": 1, "available": true, "refundable": true, "refundableUntilDays": 1, "breakfastIncluded": true, "total": "example" } ], "currency": { "currencyCode": "example", "currencyExponent": 1, "fxQuotes": [ { "currencyCode": "example", "rate": "example", "asOf": "example" } ] } }, "languageCode": "example"}