A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.
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.
Promotions that apply in the period to at least one room with a price, in the order of the package’s promotions.
priceFrom
Prices by currency, or null when no room has a price for the period.
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.
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.
A non-null priceFrom has one or both currencies, CZK and EUR. Each
currency has three prices:
Metric
Meaning
perPersonPerNight
Lowest price per guest per night.
perPersonPerStay
Price per guest for the whole stay, in the same room as perPersonPerNight.
perStay
Lowest price of a whole room for the whole stay. It can come from a different room or hotel.
Every metric has these fields:
Field
Meaning
amount
Price after promotions, as Money. Display it directly.
original
Price of the same room before promotions, or null when promotions do not lower the rounded price.
nights
Length of the priced stay: the package’s minimum or fixed number of nights, not the length of the period.
occupancy
Standard occupancy of the room the price comes from.
hotel
Hotel of that room: id and localized name.
roomTypeId
Room type the price comes from.
appliedPromotionIds
Promotions included in this price, in the order of the package’s promotions.
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.
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 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.
Value
Meaning
Field missing
The detail was requested without expand=priceFromPeriods, or the response is a list.
priceFromPeriods: null
SpaPortal cannot calculate the periods for this package. Do not show a price table.
priceFromPeriods: []
The package has no price list for the nights of its validity. Do not show a price table.
A period with priceFrom: null
The period exists, but none of its rooms has a price. Show the row without a price.
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.
Prices by currency. Null when no room has a price for the period; the period and its promotion ids are still returned.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SpaPortal Docs","colors":{"primary":"#3585BA","light":"#99C246","dark":"#141414"},"logo":{"light":"https://mintcdn.com/spabooking/Bibq090v9MI8jPV2/logo/light.svg?fit=max\u0026auto=format\u0026n=Bibq090v9MI8jPV2\u0026q=85\u0026s=c50b2546b29ce5fb747f06c3c0a287e8","dark":"https://mintcdn.com/spabooking/Bibq090v9MI8jPV2/logo/dark.svg?fit=max\u0026auto=format\u0026n=Bibq090v9MI8jPV2\u0026q=85\u0026s=50c74aef7110c454d7a8a682cc9d67ff"},"favicon":"https://mintcdn.com/spabooking/Bibq090v9MI8jPV2/favicon.svg?fit=max\u0026auto=format\u0026n=Bibq090v9MI8jPV2\u0026q=85\u0026s=c33997c3644726a7de4d900b2fdd36be","api":{"playground":{"display":"interactive"}},"navbar":{"links":[{"href":"mailto:info@spabooking.de","label":"Support"}],"primary":{"type":"button","label":"SpaPortal","href":"https://spaportal.cz/"}},"footer":{"socials":{}},"seo":{"metatags":{"canonical":"https://docs.spaportal.cz"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"spabooking","hasAudioNarration":false,"actualSubdomain":"spabooking","customDomains":["docs.spaportal.cz"],"gitSource":{"type":"github","owner":"spabooking","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeb96afb0fd5b4c7f1f6afa","collectionId":"7f3ffb80-880e-4abf-91a7-701a788f156d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb96afb0fd5b4c7f1f6afa"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeb96afb0fd5b4c7f1f6afa","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":36},{"language":"default","tag":"SpaPortal API","count":17},{"language":"default","tag":"Objects","count":12},{"language":"default","tag":"Endpoints","count":7},{"language":"default","tag":"Guides","count":6},{"language":"default","tag":"Introduction","count":2},{"language":"default","tag":"Getting started","count":2},{"language":"default","tag":"Hotels","count":2},{"language":"default","tag":"Room types","count":2},{"language":"default","tag":"Visit types","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api/objects/price-from-period","slug":"/api/objects/price-from-period","pageMetadata":{"title":"Price period","description":"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.","openapi-schema":"api/v2/openapi.yaml PriceFromPeriod","href":"/api/objects/price-from-period"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A price period is a range of nights in which a package has the same prices.\nUse periods for a price table on a package page, for example “10 to 11 January:\nfrom EUR 523.60 per guest for 7 nights”.`}),`\n`,_jsxs(_components.p,{children:[`Request the `,_jsx(_components.a,{href:`/api/v2/reference/visit-types/get-a-visit-type`,children:`visit type detail`}),`\nwith `,_jsx(_components.code,{children:`expand=priceFromPeriods`}),`. The package’s `,_jsx(_components.code,{children:`priceFromPeriods`}),` compares all\nits hotels, and each `,_jsx(_components.code,{children:`hotelListings[]`}),` entry has the periods of that hotel.\nWith `,_jsx(_components.code,{children:`hotelId`}),`, the detail returns only that hotel’s listing, and the\npackage’s periods still compare all hotels. The list endpoint does not return\nperiods.`]}),`\n`,_jsxs(_components.p,{children:[`Each period prices the package’s shortest stay as if every night of the stay\nhad the prices and promotions of that period. Free rooms and permitted\narrival days are not checked, and the stay does not have to fit into the\nperiod: a sold-out room can set the lowest price, and a one-night period\ncan show a price for seven nights. When the guest chooses dates, test them\nagainst the `,_jsx(_components.a,{href:`/api/visit-types#testing-a-stay-against-its-rules`,children:`stay rules`}),`\nand check that a room is free.`]}),`\n`,_jsx(Heading,{level:`2`,id:`fields-and-night-bounds`,children:`Fields and night bounds`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`from`})}),_jsx(_components.td,{children:`First night of the period.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`to`})}),_jsx(_components.td,{children:`Last night of the period, inclusive.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`activePromotionIds`})}),_jsxs(_components.td,{children:[`Promotions that apply in the period to at least one room with a price, in the order of the package’s `,_jsx(_components.code,{children:`promotions`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`priceFrom`})}),_jsxs(_components.td,{children:[`Prices by currency, or `,_jsx(_components.code,{children:`null`}),` when no room has a price for the period.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A night is identified by the date it starts on: `,_jsx(_components.code,{children:`to: \"2027-01-11\"`}),` includes\nthe night of 11 January, with checkout on 12 January. Periods are sorted by\ndate and do not overlap. Nights outside the package’s validity or its price\nlist have no period, so the list can have gaps. Periods have no id.`]}),`\n`,_jsx(Heading,{level:`2`,id:`where-periods-start-and-end`,children:`Where periods start and end`}),`\n`,_jsx(_components.p,{children:`Periods cover the nights on which the package is valid and its price list\nhas a season, including past nights. A new period starts where a season\nstarts or ends, or where a promotion starts or ends for a room with a price.\nTwo neighboring periods can therefore have the same prices, for example when\na promotion changes only the price of a more expensive room.`}),`\n`,_jsx(_components.p,{children:`The package’s periods combine all its hotels: a new period at one hotel also\nstarts a new period of the package. Disabled room types are ignored: they set\nno prices and start no periods.`}),`\n`,_jsxs(_components.p,{children:[`Periods also end with each `,_jsx(_components.a,{href:`/api/objects/visit-type#validity`,children:`validity`}),`\nperiod of the package. With `,_jsx(_components.code,{children:`toAppliesTo: \"departure\"`}),`, the last night is\nthe night before `,_jsx(_components.code,{children:`to`}),`; with `,_jsx(_components.code,{children:`toAppliesTo: \"arrival\"`}),`, it is the night of\n`,_jsx(_components.code,{children:`to`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`price-metrics`,children:`Price metrics`}),`\n`,_jsxs(_components.p,{children:[`A non-null `,_jsx(_components.code,{children:`priceFrom`}),` has one or both currencies, `,_jsx(_components.code,{children:`CZK`}),` and `,_jsx(_components.code,{children:`EUR`}),`. Each\ncurrency has three prices:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`perPersonPerNight`})}),_jsx(_components.td,{children:`Lowest price per guest per night.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`perPersonPerStay`})}),_jsxs(_components.td,{children:[`Price per guest for the whole stay, in the same room as `,_jsx(_components.code,{children:`perPersonPerNight`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`perStay`})}),_jsx(_components.td,{children:`Lowest price of a whole room for the whole stay. It can come from a different room or hotel.`})]})]})]}),`\n`,_jsx(_components.p,{children:`Every metric has these fields:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`amount`})}),_jsxs(_components.td,{children:[`Price after promotions, as `,_jsx(_components.a,{href:`/api/currencies`,children:_jsx(_components.code,{children:`Money`})}),`. Display it directly.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`original`})}),_jsxs(_components.td,{children:[`Price of the same room before promotions, or `,_jsx(_components.code,{children:`null`}),` when promotions do not lower the rounded price.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`nights`})}),_jsx(_components.td,{children:`Length of the priced stay: the package’s minimum or fixed number of nights, not the length of the period.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`occupancy`})}),_jsx(_components.td,{children:`Standard occupancy of the room the price comes from.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`hotel`})}),_jsxs(_components.td,{children:[`Hotel of that room: `,_jsx(_components.code,{children:`id`}),` and localized `,_jsx(_components.code,{children:`name`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`roomTypeId`})}),_jsx(_components.td,{children:`Room type the price comes from.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`appliedPromotionIds`})}),_jsxs(_components.td,{children:[`Promotions included in this price, in the order of the package’s `,_jsx(_components.code,{children:`promotions`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Prices assume a room at its standard occupancy and use the same nightly\nprices and discounts as a booking. Overlapping promotions combine as\ndescribed in `,_jsx(_components.a,{href:`/api/prices#promotions`,children:`Prices`}),`.`]}),`\n`,_jsx(_components.p,{children:`Per-person amounts are rounded separately. A room at EUR 100 per night for\nthree guests gives EUR 33.33 per guest per night and EUR 233.33 per guest for\nseven nights. Take each amount from the API instead of multiplying rounded\nvalues.`}),`\n`,_jsxs(_components.p,{children:[`For a price per guest, display `,_jsx(_components.code,{children:`perPersonPerStay.amount`}),` with its `,_jsx(_components.code,{children:`nights`}),`.\nFor a room price, display `,_jsx(_components.code,{children:`perStay.amount`}),` with its `,_jsx(_components.code,{children:`nights`}),` and\n`,_jsx(_components.code,{children:`occupancy`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`promotions-in-a-period`,children:`Promotions in a period`}),`\n`,_jsxs(_components.p,{children:[`Look up promotion ids in the package’s `,_jsx(_components.a,{href:`/api/objects/promotion`,children:_jsx(_components.code,{children:`promotions`})}),`.\n`,_jsx(_components.code,{children:`activePromotionIds`}),` lists the promotions that apply in the period, and\n`,_jsx(_components.code,{children:`appliedPromotionIds`}),` lists the promotions included in one price. A promotion\ncan be active without lowering the displayed price, for example when it\ndiscounts only a more expensive room.`]}),`\n`,_jsxs(_components.p,{children:[`Show `,_jsx(_components.code,{children:`original`}),` struck through next to the `,_jsx(_components.code,{children:`amount`}),` of the same metric, and\ndo not apply the promotions to `,_jsx(_components.code,{children:`amount`}),` again.\n`,_jsx(_components.a,{href:`/guides/visit-types#displaying-discounts`,children:`Building package pages`}),` shows how\nto display a saving.`]}),`\n`,_jsx(Heading,{level:`2`,id:`past-periods-and-empty-values`,children:`Past periods and empty values`}),`\n`,_jsxs(_components.p,{children:[`Past periods use today’s price list and promotions, so they do not show what\npast bookings paid. With `,_jsx(_components.code,{children:`expand=priceFromPeriods`}),`, the detail also returns\nended promotions, so every id in a past period can be looked up.`]}),`\n`,_jsxs(_components.p,{children:[`Periods are returned for every package, including packages booked on request\nand unavailable packages. An ended package has `,_jsx(_components.code,{children:`validity: []`}),` and\n`,_jsx(_components.code,{children:`priceFrom: null`}),`, and its periods still show its past prices.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Field missing`}),_jsxs(_components.td,{children:[`The detail was requested without `,_jsx(_components.code,{children:`expand=priceFromPeriods`}),`, or the response is a list.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`priceFromPeriods: null`})}),_jsx(_components.td,{children:`SpaPortal cannot calculate the periods for this package. Do not show a price table.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`priceFromPeriods: []`})}),_jsx(_components.td,{children:`The package has no price list for the nights of its validity. Do not show a price table.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A period with `,_jsx(_components.code,{children:`priceFrom: null`})]}),_jsx(_components.td,{children:`The period exists, but none of its rooms has a price. Show the row without a price.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`fields`,children:`Fields`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Price period","description":"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.","openapi-schema":"api/v2/openapi.yaml PriceFromPeriod","href":"/api/objects/price-from-period"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Fields and night bounds","slug":"fields-and-night-bounds","depth":2,"children":[]},{"title":"Where periods start and end","slug":"where-periods-start-and-end","depth":2,"children":[]},{"title":"Price metrics","slug":"price-metrics","depth":2,"children":[]},{"title":"Promotions in a period","slug":"promotions-in-a-period","depth":2,"children":[]},{"title":"Past periods and empty values","slug":"past-periods-and-empty-values","depth":2,"children":[]},{"title":"Fields","slug":"fields","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"schemaData":{"type":"object","additionalProperties":false,"required":["from","to","activePromotionIds","priceFrom"],"properties":{"from":{"type":"string","format":"date","description":"First night of the period.","isRequired":true,"uniqueKey":"from","typeLabel":"string\u003cdate>"},"to":{"type":"string","format":"date","description":"Last night of the period, inclusive.","isRequired":true,"uniqueKey":"to","typeLabel":"string\u003cdate>"},"activePromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"activePromotionIds.items.[INDEX]","typeLabel":"string"},"description":"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.","isRequired":true,"uniqueKey":"activePromotionIds","typeLabel":"string[]"},"priceFrom":{"oneOf":[{"type":"object","description":"Prices by currency. Null when no room has a price for the period; the period and its promotion ids are still returned.","minProperties":1,"properties":{"CZK":{"type":"object","additionalProperties":false,"required":["perPersonPerNight","perPersonPerStay","perStay"],"properties":{"perPersonPerNight":{"type":"object","description":"Lowest price per guest per night.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.amount.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.amount.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.amount.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.amount","typeLabel":"object"},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.original.oneOf.0.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.original.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.original.oneOf.0.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.original.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.original.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.original","typeLabel":"object | null"},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.nights","typeLabel":"integer"},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.occupancy","typeLabel":"integer"},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.id","typeLabel":"string"},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.cs-CZ.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.cs-CZ.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.cs-CZ","typeLabel":"string | null"},"de":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.de.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.de.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.de","typeLabel":"string | null"},"en":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.en.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.en.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.en","typeLabel":"string | null"},"ru":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.ru.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.ru.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name.ru","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel.name","typeLabel":"object"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.hotel","typeLabel":"object"},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.roomTypeId","typeLabel":"string"},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.appliedPromotionIds.items.[INDEX]","typeLabel":"string"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight.appliedPromotionIds","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerNight","typeLabel":"object"},"perPersonPerStay":{"type":"object","description":"Price per guest for the whole stay, in the same room as `perPersonPerNight`. Rounded separately; do not multiply the nightly price.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.amount.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.amount.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.amount.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.amount","typeLabel":"object"},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.original.oneOf.0.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.original.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.original.oneOf.0.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.original.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.original.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.original","typeLabel":"object | null"},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.nights","typeLabel":"integer"},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.occupancy","typeLabel":"integer"},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.id","typeLabel":"string"},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.cs-CZ.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.cs-CZ.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.cs-CZ","typeLabel":"string | null"},"de":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.de.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.de.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.de","typeLabel":"string | null"},"en":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.en.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.en.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.en","typeLabel":"string | null"},"ru":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.ru.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.ru.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name.ru","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel.name","typeLabel":"object"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.hotel","typeLabel":"object"},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.roomTypeId","typeLabel":"string"},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.appliedPromotionIds.items.[INDEX]","typeLabel":"string"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay.appliedPromotionIds","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perPersonPerStay","typeLabel":"object"},"perStay":{"type":"object","description":"Lowest price of a whole room for the whole stay, at its standard occupancy. It can come from a different room or hotel.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.amount.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.amount.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.amount.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.amount","typeLabel":"object"},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.original.oneOf.0.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.original.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.original.oneOf.0.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.original.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.original.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.original","typeLabel":"object | null"},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.nights","typeLabel":"integer"},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.occupancy","typeLabel":"integer"},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.id","typeLabel":"string"},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.cs-CZ.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.cs-CZ.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.cs-CZ","typeLabel":"string | null"},"de":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.de.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.de.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.de","typeLabel":"string | null"},"en":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.en.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.en.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.en","typeLabel":"string | null"},"ru":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.ru.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.ru.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name.ru","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel.name","typeLabel":"object"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.hotel","typeLabel":"object"},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.roomTypeId","typeLabel":"string"},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"priceFrom.oneOf.0.CZK.perStay.appliedPromotionIds.items.[INDEX]","typeLabel":"string"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay.appliedPromotionIds","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.CZK.perStay","typeLabel":"object"}},"uniqueKey":"priceFrom.oneOf.0.CZK","typeLabel":"object"},"EUR":{"type":"object","additionalProperties":false,"required":["perPersonPerNight","perPersonPerStay","perStay"],"properties":{"perPersonPerNight":{"type":"object","description":"Lowest price per guest per night.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.amount.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.amount.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.amount.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.amount","typeLabel":"object"},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.original.oneOf.0.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.original.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.original.oneOf.0.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.original.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.original.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.original","typeLabel":"object | null"},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.nights","typeLabel":"integer"},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.occupancy","typeLabel":"integer"},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.id","typeLabel":"string"},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.cs-CZ.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.cs-CZ.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.cs-CZ","typeLabel":"string | null"},"de":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.de.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.de.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.de","typeLabel":"string | null"},"en":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.en.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.en.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.en","typeLabel":"string | null"},"ru":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.ru.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.ru.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name.ru","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel.name","typeLabel":"object"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.hotel","typeLabel":"object"},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.roomTypeId","typeLabel":"string"},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.appliedPromotionIds.items.[INDEX]","typeLabel":"string"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight.appliedPromotionIds","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerNight","typeLabel":"object"},"perPersonPerStay":{"type":"object","description":"Price per guest for the whole stay, in the same room as `perPersonPerNight`. Rounded separately; do not multiply the nightly price.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.amount.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.amount.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.amount.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.amount","typeLabel":"object"},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.original.oneOf.0.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.original.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.original.oneOf.0.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.original.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.original.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.original","typeLabel":"object | null"},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.nights","typeLabel":"integer"},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.occupancy","typeLabel":"integer"},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.id","typeLabel":"string"},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.cs-CZ.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.cs-CZ.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.cs-CZ","typeLabel":"string | null"},"de":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.de.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.de.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.de","typeLabel":"string | null"},"en":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.en.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.en.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.en","typeLabel":"string | null"},"ru":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.ru.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.ru.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name.ru","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel.name","typeLabel":"object"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.hotel","typeLabel":"object"},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.roomTypeId","typeLabel":"string"},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.appliedPromotionIds.items.[INDEX]","typeLabel":"string"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay.appliedPromotionIds","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perPersonPerStay","typeLabel":"object"},"perStay":{"type":"object","description":"Lowest price of a whole room for the whole stay, at its standard occupancy. It can come from a different room or hotel.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.amount.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.amount.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.amount.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.amount","typeLabel":"object"},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.original.oneOf.0.amountMinor","typeLabel":"integer"},"currency":{"type":"string","enum":["CZK","EUR"],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.original.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.original.oneOf.0.currencyExponent","typeLabel":"enum\u003cinteger>"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.original.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.original.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.original","typeLabel":"object | null"},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.nights","typeLabel":"integer"},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.occupancy","typeLabel":"integer"},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.id","typeLabel":"string"},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.cs-CZ.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.cs-CZ.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.cs-CZ","typeLabel":"string | null"},"de":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.de.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.de.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.de","typeLabel":"string | null"},"en":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.en.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.en.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.en","typeLabel":"string | null"},"ru":{"oneOf":[{"type":"string","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.ru.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.ru.oneOf.1","typeLabel":"null"}],"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name.ru","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel.name","typeLabel":"object"}},"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.hotel","typeLabel":"object"},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.roomTypeId","typeLabel":"string"},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","uniqueKey":"priceFrom.oneOf.0.EUR.perStay.appliedPromotionIds.items.[INDEX]","typeLabel":"string"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price.","isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay.appliedPromotionIds","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0.EUR.perStay","typeLabel":"object"}},"uniqueKey":"priceFrom.oneOf.0.EUR","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.0","typeLabel":"object"},{"type":"null","description":"Prices by currency. Null when no room has a price for the period; the period and its promotion ids are still returned.","minProperties":1,"properties":{"CZK":{"type":"object","additionalProperties":false,"required":["perPersonPerNight","perPersonPerStay","perStay"],"properties":{"perPersonPerNight":{"type":"object","description":"Lowest price per guest per night.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency."}}},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}}]},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period."},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from."},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum."},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"de":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"en":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"ru":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"additionalProperties":false}}},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from."},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price."}},"additionalProperties":false},"perPersonPerStay":{"type":"object","description":"Price per guest for the whole stay, in the same room as `perPersonPerNight`. Rounded separately; do not multiply the nightly price.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency."}}},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}}]},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period."},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from."},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum."},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"de":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"en":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"ru":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"additionalProperties":false}}},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from."},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price."}},"additionalProperties":false},"perStay":{"type":"object","description":"Lowest price of a whole room for the whole stay, at its standard occupancy. It can come from a different room or hotel.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency."}}},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}}]},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period."},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from."},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum."},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"de":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"en":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"ru":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"additionalProperties":false}}},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from."},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price."}},"additionalProperties":false}}},"EUR":{"type":"object","additionalProperties":false,"required":["perPersonPerNight","perPersonPerStay","perStay"],"properties":{"perPersonPerNight":{"type":"object","description":"Lowest price per guest per night.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency."}}},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}}]},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period."},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from."},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum."},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"de":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"en":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"ru":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"additionalProperties":false}}},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from."},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price."}},"additionalProperties":false},"perPersonPerStay":{"type":"object","description":"Price per guest for the whole stay, in the same room as `perPersonPerNight`. Rounded separately; do not multiply the nightly price.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency."}}},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}}]},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period."},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from."},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum."},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"de":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"en":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"ru":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"additionalProperties":false}}},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from."},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price."}},"additionalProperties":false},"perStay":{"type":"object","description":"Lowest price of a whole room for the whole stay, at its standard occupancy. It can come from a different room or hotel.","required":["amount","original","nights","occupancy","hotel","roomTypeId","appliedPromotionIds"],"properties":{"amount":{"type":"object","description":"Price after promotions. Do not apply promotions again.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in the smallest currency unit.","example":180000},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Decimal exponent for the currency."}}},"original":{"oneOf":[{"type":"object","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}},{"type":"null","description":"Price of the same room before promotions; null when promotions do not lower the rounded price.","required":["amountMinor","currency","currencyExponent"],"properties":{"amountMinor":{"type":"integer","description":"Amount in minor units, for example cents or haléře."},"currency":{"type":"string","enum":["CZK","EUR"]},"currencyExponent":{"type":"integer","enum":[2],"description":"Number of decimal places of `amountMinor`."}}}]},"nights":{"type":"integer","minimum":1,"description":"Length of the priced stay: the package's minimum or fixed number of nights, not the length of the period."},"occupancy":{"type":"integer","minimum":1,"description":"Standard occupancy of the room type the price comes from."},"hotel":{"type":"object","description":"Hotel of the room type the price comes from.","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Hotel whose offer gives this minimum."},"name":{"type":"object","description":"Localized hotel name, with the same Czech fallback as the hotel's `name`.","example":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"},"properties":{"cs-CZ":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"de":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"en":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]},"ru":{"oneOf":[{"type":"string","minLength":1},{"type":"null","minLength":1}]}},"additionalProperties":false}}},"roomTypeId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Room type the price comes from."},"appliedPromotionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-fA-F]{24}$"},"description":"Promotions included in this price, in the order of the package's `promotions`. Each is also listed in the period's `activePromotionIds`. Empty when no promotion changes the price."}},"additionalProperties":false}}}},"additionalProperties":false,"isRequired":true,"uniqueKey":"priceFrom.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"priceFrom","typeLabel":"object | null"}},"description":"A range of nights in which the package has the same prices. Past periods use today's price list. See [Price period](/api/objects/price-from-period).","example":{"title":"Example","value":{"from":"2027-01-10","to":"2027-01-11","activePromotionIds":["6720c0a1b2c3d4e5f6a7d311","6720c0a1b2c3d4e5f6a7d314","6720c0a1b2c3d4e5f6a7d312"],"priceFrom":{"EUR":{"perPersonPerNight":{"amount":{"amountMinor":7480,"currency":"EUR","currencyExponent":2},"original":{"amountMinor":11000,"currency":"EUR","currencyExponent":2},"nights":7,"occupancy":2,"hotel":{"id":"6720c0a1b2c3d4e5f6a7c103","name":{"cs-CZ":"Hotel Bellevue","de":"Hotel Bellevue"}},"roomTypeId":"6720c0a1b2c3d4e5f6a7f201","appliedPromotionIds":["6720c0a1b2c3d4e5f6a7d311","6720c0a1b2c3d4e5f6a7d314"]},"perPersonPerStay":{"amount":{"amountMinor":52360,"currency":"EUR","currencyExponent":2},"original":{"amountMinor":77000,"currency":"EUR","currencyExponent":2},"nights":7,"occupancy":2,"hotel":{"id":"6720c0a1b2c3d4e5f6a7c103","name":{"cs-CZ":"Hotel Bellevue","de":"Hotel Bellevue"}},"roomTypeId":"6720c0a1b2c3d4e5f6a7f201","appliedPromotionIds":["6720c0a1b2c3d4e5f6a7d311","6720c0a1b2c3d4e5f6a7d314"]},"perStay":{"amount":{"amountMinor":71400,"currency":"EUR","currencyExponent":2},"original":{"amountMinor":84000,"currency":"EUR","currencyExponent":2},"nights":7,"occupancy":1,"hotel":{"id":"6720c0a1b2c3d4e5f6a7c101","name":{"cs-CZ":"Hotel Pramen","de":"Hotel Pramen"}},"roomTypeId":"6720c0a1b2c3d4e5f6a7f103","appliedPromotionIds":["6720c0a1b2c3d4e5f6a7d311"]}}}}},"uniqueKey":"","typeLabel":"object"},"originalFileLocation":"api/v2/openapi.yaml"},"subdomain":"spabooking","siteName":"SpaPortal Docs","title":"Price period - SpaPortal Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T20:34:18.924Z","originalFileLocation":"api/objects/price-from-period.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SpaPortal Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Price period - SpaPortal Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SpaPortal Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.spaportal.cz/api/objects/price-from-period\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://spabooking.mintlify.site/_mintlify/api/og/v2?division=Objects\u0026amp;title=Price+period\u0026amp;description=A+range+of+nights+with+the+same+package+prices%3A+prices+per+guest+and+per+room%2C+and+the+promotions+that+apply.\u0026amp;theme=c449e4c5bfadb6d592bceac4\u0026amp;signature=ef3f4adf8b9b35920a16557a1b8b94085d36e950d276b7c98fc89a833c8346d8\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Price period - SpaPortal Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spabooking.mintlify.site/_mintlify/api/og/v2?division=Objects\u0026amp;title=Price+period\u0026amp;description=A+range+of+nights+with+the+same+package+prices%3A+prices+per+guest+and+per+room%2C+and+the+promotions+that+apply.\u0026amp;theme=c449e4c5bfadb6d592bceac4\u0026amp;signature=ef3f4adf8b9b35920a16557a1b8b94085d36e950d276b7c98fc89a833c8346d8\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/spabooking/3ILofRrE8iwd8KIp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SpaPortal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3585BA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.spaportal.cz/api/objects/price-from-period\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/objects/price-from-period.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.spaportal.cz/#organization\",\"name\":\"SpaPortal Docs\",\"url\":\"https://docs.spaportal.cz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/spabooking/Bibq090v9MI8jPV2/logo/light.svg?fit=max\u0026auto=format\u0026n=Bibq090v9MI8jPV2\u0026q=85\u0026s=c50b2546b29ce5fb747f06c3c0a287e8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.spaportal.cz#website\",\"name\":\"SpaPortal Docs\",\"url\":\"https://docs.spaportal.cz\",\"publisher\":{\"@id\":\"https://docs.spaportal.cz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.spaportal.cz/api/objects/price-from-period#webpage\",\"url\":\"https://docs.spaportal.cz/api/objects/price-from-period\",\"name\":\"Price period\",\"description\":\"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.\",\"dateModified\":\"2026-11-04T20:34:18.924Z\",\"isPartOf\":{\"@id\":\"https://docs.spaportal.cz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.spaportal.cz/api/objects/price-from-period#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.spaportal.cz/api/objects/price-from-period#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Objects\",\"item\":\"https://docs.spaportal.cz/api/objects/hotel\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Price period\",\"item\":\"https://docs.spaportal.cz/api/objects/price-from-period\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.spaportal.cz/api/objects/price-from-period#apireference\",\"headline\":\"Price period\",\"name\":\"Price period\",\"description\":\"A range of nights with the same package prices: prices per guest and per room, and the promotions that apply.\",\"url\":\"https://docs.spaportal.cz/api/objects/price-from-period\",\"mainEntityOfPage\":{\"@id\":\"https://docs.spaportal.cz/api/objects/price-from-period#webpage\"},\"dateModified\":\"2026-11-04T20:34:18.924Z\",\"publisher\":{\"@id\":\"https://docs.spaportal.cz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.spaportal.cz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SpaPortal Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SpaPortal Docs","nav":{"global":null,"tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/spaportal"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"API reference","groups":[{"group":"SpaPortal API","pages":[{"title":"Introduction","icon":"microphone","href":"/api"},{"title":"Authentication","icon":"key","href":"/api/authentication"},{"title":"Dates","icon":"calendar-days","href":"/api/dates"},{"title":"Currencies","icon":"coins","href":"/api/currencies"},{"title":"Prices","icon":"tag","href":"/api/prices"},{"title":"Images","icon":"image","href":"/api/images"},{"title":"Localization","icon":"language","href":"/api/localization"},{"title":"Pagination","icon":"list-ol","href":"/api/pagination"},{"title":"Search","icon":"magnifying-glass","href":"/api/search"},{"title":"Sorting","icon":"arrow-up-arrow-down","href":"/api/sorting"},{"title":"Expand","icon":"layer-group","href":"/api/expand"},{"title":"Amenities","icon":"list-check","href":"/api/amenities"},{"title":"Visit types","icon":"suitcase","href":"/api/visit-types"},{"title":"Treatment","icon":"stethoscope","href":"/api/treatment"},{"title":"Status Codes","icon":"input-numeric","href":"/api/status-codes"},{"title":"Errors","icon":"bone-break","href":"/api/errors"},{"title":"Versioning","icon":"code-branch","href":"/api/versioning"},{"title":"API v2 changelog","icon":"clock-rotate-left","hidden":true,"href":"/api/changelog"}]},{"group":"Objects","pages":[{"title":"Hotel","href":"/api/objects/hotel"},{"title":"Room type","href":"/api/objects/room-type"},{"title":"Visit type","href":"/api/objects/visit-type"},{"title":"Treatment","href":"/api/objects/treatment"},{"title":"Procedure","href":"/api/objects/procedure"},{"title":"Price from","description":"The lowest price of a complete stay at a hotel or in a package: amount, original price, nights, occupancy, and references.","href":"/api/objects/price-from"},{"title":"Price period","href":"/api/objects/price-from-period"},{"title":"Promotion","description":"A percentage discount on nights of a stay, and the hotels and room types it applies to.","href":"/api/objects/promotion"},{"title":"Amenity category","href":"/api/objects/amenity-category"},{"title":"Amenity","href":"/api/objects/amenity"},{"title":"Amenity value","href":"/api/objects/amenity-value"},{"title":"Localized string","href":"/api/objects/localized-string"}]},{"group":"Endpoints","pages":[{"group":"Amenity categories","pages":[{"title":"List the amenity dictionary","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /amenity-categories","href":"/api/v2/reference/amenity-categories/list-the-amenity-dictionary"}]},{"group":"Hotels","pages":[{"title":"List hotels","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /hotels","href":"/api/v2/reference/hotels/list-hotels"},{"title":"Get a hotel","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /hotels/{hotelId}","href":"/api/v2/reference/hotels/get-a-hotel"}]},{"group":"Room types","pages":[{"title":"List room types","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /room-types","href":"/api/v2/reference/room-types/list-room-types"},{"title":"Get a room type","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /room-types/{roomTypeId}","href":"/api/v2/reference/room-types/get-a-room-type"}]},{"group":"Visit types","pages":[{"title":"List visit types","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /visit-types","href":"/api/v2/reference/visit-types/list-visit-types"},{"title":"Get a visit type","deprecated":null,"version":null,"openapi":"/api/v2/openapi.yaml get /visit-types/{visitTypeId}","href":"/api/v2/reference/visit-types/get-a-visit-type"}]}]}]},{"tab":"API v1","hidden":true,"pages":[{"title":"API v1","href":"/api/v1"}]}]},"basePath":"","title":"Price period - SpaPortal Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}