Skip to main content
A price period is a range of nights in which a package has the same prices. Use periods for a price table on a package page, for example “10 to 11 January: from EUR 523.60 per guest for 7 nights”. Request the visit type detail with expand=priceFromPeriods. The package’s priceFromPeriods compares all its hotels, and each hotelListings[] entry has the periods of that hotel. With hotelId, the detail returns only that hotel’s listing, and the package’s periods still compare all hotels. The list endpoint does not return periods. Each period prices the package’s shortest stay as if every night of the stay had the prices and promotions of that period. Free rooms and permitted arrival days are not checked, and the stay does not have to fit into the period: a sold-out room can set the lowest price, and a one-night period can show a price for seven nights. When the guest chooses dates, test them against the stay rules and check that a room is free.

Fields and night bounds

A night is identified by the date it starts on: to: "2027-01-11" includes the night of 11 January, with checkout on 12 January. Periods are sorted by date and do not overlap. Nights outside the package’s validity or its price list have no period, so the list can have gaps. Periods have no id.

Where periods start and end

Periods cover the nights on which the package is valid and its price list has a season, including past nights. A new period starts where a season starts or ends, or where a promotion starts or ends for a room with a price. Two neighboring periods can therefore have the same prices, for example when a promotion changes only the price of a more expensive room. The package’s periods combine all its hotels: a new period at one hotel also starts a new period of the package. Disabled room types are ignored: they set no prices and start no periods. Periods also end with each validity period of the package. With toAppliesTo: "departure", the last night is the night before to; with toAppliesTo: "arrival", it is the night of to.

Price metrics

A non-null priceFrom has one or both currencies, CZK and EUR. Each currency has three prices: Every metric has these fields: Prices assume a room at its standard occupancy and use the same nightly prices and discounts as a booking. Overlapping promotions combine as described in Prices. Per-person amounts are rounded separately. A room at EUR 100 per night for three guests gives EUR 33.33 per guest per night and EUR 233.33 per guest for seven nights. Take each amount from the API instead of multiplying rounded values. For a price per guest, display perPersonPerStay.amount with its nights. For a room price, display perStay.amount with its nights and occupancy.

Promotions in a period

Look up promotion ids in the package’s promotions. activePromotionIds lists the promotions that apply in the period, and appliedPromotionIds lists the promotions included in one price. A promotion can be active without lowering the displayed price, for example when it discounts only a more expensive room. Show original struck through next to the amount of the same metric, and do not apply the promotions to amount again. Building package pages shows how to display a saving.

Past periods and empty values

Past periods use today’s price list and promotions, so they do not show what past bookings paid. With expand=priceFromPeriods, the detail also returns ended promotions, so every id in a past period can be looked up. Periods are returned for every package, including packages booked on request and unavailable packages. An ended package has validity: [] and priceFrom: null, and its periods still show its past prices.

Fields

A range of nights in which the package has the same prices. Past periods use today's price list. See Price period.

from
string<date>
required

First night of the period.

to
string<date>
required

Last night of the period, inclusive.

activePromotionIds
string[]
required

Promotions that apply in the period to at least one room with a price, in the order of the package's promotions. A promotion can be active without lowering the displayed price.

Pattern: ^[0-9a-fA-F]{24}$
priceFrom
object | null
required

Prices by currency. Null when no room has a price for the period; the period and its promotion ids are still returned.