Skip to content

GetRatePeriod

POST
/wink.partner.v1.Inventory/GetRatePeriod
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.

Media typeapplication/json

Request for GetRatePeriod.

object
propertyId

Stable property identifier. Required.

string
startDate

First check-in date to price, ISO-8601 “YYYY-MM-DD”. Required.

string
periodInDays

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.

integer format: int32
adults

Adults per room, between 1 and 10. Omit it to take the default of 2.

integer format: int32
languageCode

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.

string
quoteCurrencies

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.

Array<string>

Example generated

{
"propertyId": "example",
"startDate": "example",
"periodInDays": 1,
"adults": 1,
"languageCode": "example",
"quoteCurrencies": [
"example"
]
}

The RPC completed with gRPC status OK.

Media typeapplication/json

Response for GetRatePeriod.

object
period

The rate calendar.

object
propertyId

Stable property identifier.

string
name

The property’s name, in the requested language.

string
adults

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.

integer format: int32
internetIncluded

True if internet is included across the priced rates.

boolean
parkingIncluded

True if parking is included across the priced rates.

boolean
entries

One entry per check-in/check-out combination in the range.

Array<object>

The best available rate for one check-in/check-out combination.

object
roomTypeId

Identifier of the room type this rate is for. Join to Content for its description, images and amenities.

string
name

The room type’s name, in the requested language.

string
startDate

Check-in date, ISO-8601 “YYYY-MM-DD”.

string
endDate

Check-out date, ISO-8601 “YYYY-MM-DD”.

string
roomNights

Nights covered.

integer format: int32
available

True if this combination is bookable.

boolean
refundable

True if it can be cancelled without charge before the policy’s deadline.

boolean
refundableUntilDays

Days from TODAY until free cancellation closes; -1 when not refundable, 0 when it closes today. Same calculation as RoomRate.refundable_until_days.

integer format: int32
breakfastIncluded

True if breakfast is included.

boolean
total

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.

string format: int64
currency

The currency every RatePeriodEntry.total is in, and the exchange rates out of it.

object
currencyCode

ISO 4217 code the property’s amounts are denominated in, e.g. “THB”.

string
currencyExponent

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.

integer format: int32
fxQuotes

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.

Array<object>

An exchange rate from a property’s currency into one other currency.

object
currencyCode

ISO 4217 code this rate converts INTO.

string
rate

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.

string
asOf

When this rate was recorded, ISO-8601 in UTC, e.g. “2026-10-19T11:00:00Z”.

string
languageCode

ISO 639-1 language the names in this response are in.

string

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"
}