# Retrieve hotelpage

URL: https://docs.emergingtravel.com/docs/affiliate-api/hotel-search/retrieve-hotelpage/

Tags: affiliate

---



**Sandbox**

```
https://api-sandbox.worldota.net/api/b2b/v3/search/hp/
```

**Production**

```
https://api.worldota.net/api/b2b/v3/search/hp/
```




> [!NOTE]
> * <strong>This call is required</strong> for the [Recommended Flow (Prebook from Hotelpage)](/docs/integration-guide/#recommended-workflow).
> * Request this call only when the user has chosen the hotel.
> * Don’t request this call for each of the hotels found from the calls made by the SERP mechanism.



The call gets the hotel available rates. Show this information to the user when they have chosen the hotel and want to see the rates.

> [!NOTE]
> The limitations:
> * The recommended rate lifetime is 30 minutes.
> * The actual rate lifetime is longer and depends on different internal factors.



## Sandbox limitations { #limitations }

> [!WARNING]
> Use only field values, IDs, API keys, and any static content from the sandbox environment within the sandbox. <strong>Do not use sandbox data in test or production environments, and do not mix data or configuration between different environments.</strong>




* The value of the `language` field is always set to `en`.
* The value of the `currency` field is always set to `USD`.
* The maximum number of items in `hotels.rates` is `5`.
* The following fields are not supported:
  * `hotels.rates.payment_options.payment_types.cancellation_penalties.policies.commission_info.charge.amount_gross`.
  * `hotels.rates.payment_options.payment_types.cancellation_penalties.policies.commission_info.charge.amount_commission`.

## Request example


**Sandbox**

```shell
curl --user '<KEY_ID>:<API_KEY>' 'https://api-sandbox.worldota.net/api/b2b/v3/search/hp/' \
--header 'Content-Type: application/json' \
--data '{
    "checkin": "2026-11-22",
    "checkout": "2026-11-25",
    "residency": "gb",
    "language": "en",
    "guests": [
        {
            "adults": 2,
            "children": []
        }
    ],
    "hid": 10004834,
    "currency": "USD",
    "filter": {
        "star_rating": [
            4
        ],
        "kind": [
            "Hotel"
        ],
        "meal_type": [
            "all-inclusive",
            "super-all-inclusive",
            "soft-all-inclusive",
            "ultra-all-inclusive"
        ]
    }
}'
```

**Production**

```shell
curl --user '<KEY_ID>:<API_KEY>' 'https://api.worldota.net/api/b2b/v3/search/hp/' \
--header 'Content-Type: application/json' \
--data '{
    "checkin": "2026-11-22",
    "checkout": "2026-11-25",
    "residency": "gb",
    "language": "en",
    "guests": [
        {
            "adults": 2,
            "children": []
        }
    ],
    "hid": 10004834,
    "currency": "USD",
    "filter": {
        "star_rating": [],
        "kind": [],
        "meal_type": []
    }
}'
```




## Request body



[//]: # (checkin)
- **checkin** *(String, required)*

  <p>The check-in date. The value must be not later than 730 days from the day when the request is made.</p>


[//]: # (checkout)
- **checkout** *(String, required)*

  <p>The check-out date. The value must be not later than 30 days from the checkin field value.</p>


[//]: # (currency)
- **currency** *(String, optional)*

  <p>The currency of all rooms’ prices.</p>
  <p>If passed, the <code>show_amount</code> and <code>show_currency_amount</code> fields will have the currency of this field.</p>
  > [!NOTE]
  > * The default value is the contract currency for prepaid rates.


[//]: # (id)
- **id** *(String, required or optional, deprecated)*

  <p>The unique hotel ID in the legacy string format.</p>
  > [!NOTE]
  > * Either this field or the `hid` field is required.


[//]: # (hid)
- **hid** *(Int, required or optional)*

  <p>The unique hotel ID in the new numeric format.</p>
  > [!NOTE]
  > * Each ID is an integer no longer than 10 digits.
  > * We are gradually migrating all clients to use this format.


[//]: # (language)
- **language** *(String, optional)*

  <p>The hotel data language.</p>
  > [!NOTE]
  > * The default value is the contract language.
  > * The possible values:
  >   * `ar` — Arabic.
  >   * `bg` — Bulgarian.
  >   * `cs` — Czech.
  >   * `da` — Danish.
  >   * `de` — German.
  >   * `el` — Greek.
  >   * `en` — English.
  >   * `es` — Spanish.
  >   * `fi` — Finnish.
  >   * `fr` — French.
  >   * `he` — Hebrew.
  >   * `hu` — Hungarian.
  >   * `it` — Italian.
  >   * `ja` — Japanese.
  >   * `kk` — Kazakh.
  >   * `ko` — Korean.
  >   * `nl` — Dutch.
  >   * `no` — Norwegian.
  >   * `pl` — Polish.
  >   * `pt` — Portuguese.
  >   * `pt_PT` — Portuguese (Portugal).
  >   * `ro` — Romanian.
  >   * `ru` — Russian.
  >   * `sq` — Albanian.
  >   * `sr` — Serbian.
  >   * `sv` — Swedish.
  >   * `th` — Thai.
  >   * `tr` — Turkish.
  >   * `uk` — Ukrainian.
  >   * `vi` — Vietnamese.
  >   * `zh_CN` — Simplified Chinese.
  >   * `zh_TW` — Traditional Chinese.


[//]: # (match_hash)
- **match_hash** *(String, optional)*

  <p>The <code>match_hash</code> field of the rate from the call made by the SERP mechanism.</p>
  <p>Use this field if you are:</p>
  <ul>
  <li>Showing rates to the users from the call made by the [SERP mechanism](/docs/glossary/#search-engine-results-page)
  .</li>
  <li>Making a booking from these rates.</li>
  <li>Using this call response as actual data on the rate.</li>
  <li>Using this call response to actualize the exact rate from the calls made by the SERP mechanism.</li>
  </ul>
  <p>Usage of this field can help the ETG collect analytics for SERP-HP matching.</p>


[//]: # (residency)
- **residency** *(String, required or optional)*

  <p>The guests’ citizenship in the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
   format.</p>
  <p>Use this field if there are doubts regarding the country or the hotel policy towards citizens.</p>
  > [!NOTE]
  > The possible values:
  > * `ad` — Andorra.
  > * `ae` — United Arab Emirates.
  > * `af` — Afghanistan.
  > * `ag` — Antigua and Barbuda.
  > * `ai` — Anguilla.
  > * `al` — Albania.
  > * `am` — Armenia.
  > * `ao` — Angola.
  > * `aq` — Antarctica.
  > * `ar` — Argentina.
  > * `as` — American Samoa.
  > * `at` — Austria.
  > * `au` — Australia.
  > * `aw` — Aruba.
  > * `ax` — Åland Islands.
  > * `az` — Azerbaijan.
  > * `ba` — Bosnia and Herzegovina.
  > * `bb` — Barbados.
  > * `bd` — Bangladesh.
  > * `be` — Belgium.
  > * `bf` — Burkina Faso.
  > * `bg` — Bulgaria.
  > * `bh` — Bahrain.
  > * `bi` — Burundi.
  > * `bj` — Benin.
  > * `bl` — Saint Barthélemy.
  > * `bm` — Bermuda.
  > * `bn` — Brunei Darussalam.
  > * `bo` — Bolivia.
  > * `bq` — Bonaire, Sint Eustatius and Saba.
  > * `br` — Brazil.
  > * `bs` — Bahamas.
  > * `bt` — Bhutan.
  > * `bv` — Bouvet Island.
  > * `bw` — Botswana.
  > * `by` — Belarus.
  > * `bz` — Belize.
  > * `ca` — Canada.
  > * `cc` — Cocos (Keeling) Islands.
  > * `cd` — Democratic Republic of the Congo, also known as Congo-Kinshasa.
  > * `cf` — Central African Republic.
  > * `cg` — The Republic of the Congo, also known as Congo-Brazzaville.
  > * `ch` — Switzerland.
  > * `ci` — Côte d'Ivoire.
  > * `ck` — Cook Islands.
  > * `cl` — Chile.
  > * `cm` — Cameroon.
  > * `cn` — China.
  > * `co` — Colombia.
  > * `cr` — Costa Rica.
  > * `cu` — Cuba.
  > * `cv` — Cabo Verde.
  > * `cw` — Curaçao.
  > * `cx` — Christmas Island.
  > * `cy` — Cyprus.
  > * `cz` — Czechia.
  > * `de` — Germany.
  > * `dj` — Djibouti.
  > * `dk` — Denmark.
  > * `dm` — Dominica.
  > * `do` — Dominican Republic.
  > * `dz` — Algeria.
  > * `ec` — Ecuador.
  > * `ee` — Estonia.
  > * `eg` — Egypt.
  > * `eh` — Western Sahara.
  > * `er` — Eritrea.
  > * `es` — Spain.
  > * `et` — Ethiopia.
  > * `fi` — Finland.
  > * `fj` — Fiji.
  > * `fk` — Falkland Islands (Malvinas).
  > * `fm` — Micronesia.
  > * `fo` — Faroe Islands.
  > * `fr` — France.
  > * `ga` — Gabon.
  > * `gb` — United Kingdom of Great Britain and Northern Ireland.
  > * `gd` — Grenada.
  > * `ge` — Georgia.
  > * `gf` — French Guiana.
  > * `gg` — Guernsey.
  > * `gh` — Ghana.
  > * `gi` — Gibraltar.
  > * `gl` — Greenland.
  > * `gm` — Gambia.
  > * `gn` — Guinea.
  > * `gp` — Guadeloupe.
  > * `gq` — Equatorial Guinea.
  > * `gr` — Greece.
  > * `gs` — South Georgia and the South Sandwich Islands.
  > * `gt` — Guatemala.
  > * `gu` — Guam.
  > * `gw` — Guinea-Bissau.
  > * `gy` — Guyana.
  > * `hk` — Hong Kong.
  > * `hm` — Heard Island and McDonald Islands.
  > * `hn` — Honduras.
  > * `hr` — Croatia.
  > * `ht` — Haiti.
  > * `hu` — Hungary.
  > * `id` — Indonesia.
  > * `ie` — Ireland.
  > * `il` — Israel.
  > * `im` — Isle of Man.
  > * `in` — India.
  > * `io` — British Indian Ocean Territory.
  > * `iq` — Iraq.
  > * `ir` — Iran.
  > * `is` — Iceland.
  > * `it` — Italy.
  > * `je` — Bailiwick of Jersey.
  > * `jm` — Jamaica.
  > * `jo` — Jordan.
  > * `jp` — Japan.
  > * `ke` — Kenya.
  > * `kg` — Kyrgyzstan.
  > * `kh` — Cambodia.
  > * `ki` — Kiribati.
  > * `km` — Comoros.
  > * `kn` — Saint Kitts and Nevis.
  > * `kp` — North Korea.
  > * `kr` — South Korea.
  > * `kw` — Kuwait.
  > * `ky` — Cayman Islands.
  > * `kz` — Kazakhstan.
  > * `la` — Laos.
  > * `lb` — Lebanon.
  > * `lc` — Saint Lucia.
  > * `li` — Liechtenstein.
  > * `lk` — Sri Lanka.
  > * `lr` — Liberia.
  > * `ls` — Lesotho.
  > * `lt` — Lithuania.
  > * `lu` — Luxembourg.
  > * `lv` — Latvia.
  > * `ly` — Libya.
  > * `ma` — Morocco.
  > * `mc` — Monaco.
  > * `md` — Moldova.
  > * `me` — Montenegro.
  > * `mf` — Saint Martin.
  > * `mg` — Madagascar.
  > * `mh` — Marshall Islands.
  > * `mk` — North Macedonia.
  > * `ml` — Mali.
  > * `mm` — Myanmar.
  > * `mn` — Mongolia.
  > * `mo` — Macao.
  > * `mp` — Northern Mariana Islands.
  > * `mq` — Martinique.
  > * `mr` — Mauritania.
  > * `ms` — Montserrat.
  > * `mt` — Malta.
  > * `mu` — Mauritius.
  > * `mv` — Maldives.
  > * `mw` — Malawi.
  > * `mx` — Mexico.
  > * `my` — Malaysia.
  > * `mz` — Mozambique.
  > * `na` — Namibia.
  > * `nc` — New Caledonia.
  > * `ne` — Niger.
  > * `nf` — Norfolk Island.
  > * `ng` — Nigeria.
  > * `ni` — Nicaragua.
  > * `nl` — Netherlands.
  > * `no` — Norway.
  > * `np` — Nepal.
  > * `nr` — Nauru.
  > * `nu` — Niue.
  > * `nz` — New Zealand.
  > * `om` — Oman.
  > * `pa` — Panama.
  > * `pe` — Peru.
  > * `pf` — French Polynesia.
  > * `pg` — Papua New Guinea.
  > * `ph` — Philippines.
  > * `pk` — Pakistan.
  > * `pl` — Poland.
  > * `pm` — Saint Pierre and Miquelon.
  > * `pn` — Pitcairn.
  > * `pr` — Puerto Rico.
  > * `ps` — Palestine.
  > * `pt` — Portugal.
  > * `pw` — Palau.
  > * `py` — Paraguay.
  > * `qa` — Qatar.
  > * `re` — Réunion.
  > * `ro` — Romania.
  > * `rs` — Serbia.
  > * `ru` — Russian Federation.
  > * `rw` — Rwanda.
  > * `sa` — Saudi Arabia.
  > * `sb` — Solomon Islands.
  > * `sc` — Seychelles.
  > * `sd` — Sudan.
  > * `se` — Sweden.
  > * `sg` — Singapore.
  > * `sh` — Saint Helena, Ascension and Tristan da Cunha.
  > * `si` — Slovenia.
  > * `sj` — Svalbard and Jan Mayen.
  > * `sk` — Slovakia.
  > * `sl` — Sierra Leone.
  > * `sm` — San Marino.
  > * `sn` — Senegal.
  > * `so` — Somalia.
  > * `sr` — Suriname.
  > * `ss` — South Sudan.
  > * `st` — Sao Tome and Principe.
  > * `sv` — El Salvador.
  > * `sx` — Sint Maarten.
  > * `sy` — Syrian Arab Republic.
  > * `sz` — Eswatini.
  > * `tc` — Turks and Caicos Islands.
  > * `td` — Chad.
  > * `tf` — French Southern Territories.
  > * `tg` — Togo.
  > * `th` — Thailand.
  > * `tj` — Tajikistan.
  > * `tk` — Tokelau.
  > * `tl` — Timor-Leste.
  > * `tm` — Turkmenistan.
  > * `tn` — Tunisia.
  > * `to` — Tonga.
  > * `tr` — Turkey.
  > * `tt` — Trinidad and Tobago.
  > * `tv` — Tuvalu.
  > * `tw` — Taiwan.
  > * `tz` — Tanzania.
  > * `ua` — Ukraine.
  > * `ug` — Uganda.
  > * `um` — United States Minor Outlying Islands.
  > * `us` — United States of America.
  > * `uy` — Uruguay.
  > * `uz` — Uzbekistan.
  > * `va` — Holy See.
  > * `vc` — Saint Vincent and the Grenadines.
  > * `ve` — Venezuela.
  > * `vg` — Virgin Islands (British).
  > * `vi` — Virgin Islands (U.S.).
  > * `vn` — Vietnam.
  > * `vu` — Vanuatu.
  > * `wf` — Wallis and Futuna.
  > * `ws` — Samoa.
  > * `xk` — Kosovo.
  > * `ye` — Yemen.
  > * `yt` — Mayotte.
  > * `za` — South Africa.
  > * `zm` — Zambia.
  > * `zw` — Zimbabwe.


[//]: # (timeout)
- **timeout** *(Float, optional)*

  <p>The maximum amount of time in seconds within which searching for rates will be executed.</p>
  > [!NOTE]
  > * The maximum value is `100`.


[//]: # (guests)
- **guests** *([Object], optional)*

  <p>The list of guests in the rooms.</p>
  > [!NOTE]
  > * One list item represents one room.
  > * The maximum number of guests per room is `10`:
  >   * Maximum number of adults per room is `6`.
  >   * Maximum number of children per room is `4`.
  > * The maximum number of rooms per request is `9`.
  > * The multiroom search:
  >   * Each request should have from `2` to `9` rooms.
  >   * A request may contain rooms with different number of guests.
  >   * Once the request is sent, you can’t:
  >     * Change the number of guests or rooms.
  >     * Cancel one of the guests or rooms.
  > 
  >   The ETG API returns rooms suitable for the maximum number of the requested guests.
  <ul>
  <li>
  <p><strong>adults</strong> <em>(Int, required)</em></p>
  <p>The number of adult guests in one room.</p>
  > [!NOTE]
  > * The minimum value is `1`.
  > * The maximum value is `6`.
  </li>
  <li>
  <p><strong>children</strong> <em>([Int], optional)</em></p>
  <p>The age list of the children who will stay in the room.</p>
  > [!NOTE]
  > * The maximum age per child is `17` years.
  > * The maximum number of children in the room is `4`.
  </li>
  </ul>


[//]: # (filter)
- **filter** *([Object], optional)*

  <p>Filter parameters for the search request. Allows you to specify additional conditions to refine the search results. Each field represents a particular filter criterion.</p>
  <ul>
  <li>
  <p><strong>star_rating</strong> <em>([Int], optional)</em></p>
  <p>The hotel rating on a scale from <code>1</code> to <code>5</code>. Has the <code>0</code> value for no available rating.</p>
  <blockquote>
  <p>[!NOTE]
  The list of possible <code>star_rating</code> field values is obtained from the call [Retrieve filter values](/docs/content-api/retrieve-filter-values/#star_rating)
  .</p></blockquote>
  </li>
  <li>
  <p><strong>kind</strong> <em>([String], optional)</em></p>
  <p>The hotel type.</p>
  <blockquote>
  <p>[!NOTE]
  The list of possible <code>kind</code> field values is obtained from the call [Retrieve filter values](/docs/content-api/retrieve-filter-values/#kind)
  .</p></blockquote>
  </li>
  <li>
  <p><strong>meal_type</strong> <em>(String, optional)</em></p>
  <p>Meal type included in the rate. You can specify multiple values to return rates that match any of the provided meal types.</p>
  <blockquote>
  <p>[!NOTE]
  The list of possible <code>meal_type</code> field values is obtained from the call [Retrieve hotel static data](/docs/affiliate-api/static-content/retrieve-hotel-static-data/#meals)
  .</p></blockquote>
  </li>
  <li>
  <p><strong>price_from</strong> <em>(Int, optional)</em></p>
  <p>Minimum rate price. The value must be an integer greater than <code>0</code> and less than the value of <code>price_to</code>.</p>
  <p>Filtering is applied to rate prices in the search currency (<code>show_amount</code>).</p>
  </li>
  <li>
  <p><strong>price_to</strong> <em>(Int, optional)</em></p>
  <p>Maximum rate price. The value must be an integer greater than <code>0</code> and greater than the value of <code>price_from</code>.</p>
  <p>Filtering is applied to rate prices in the search currency (<code>show_amount</code>).</p>
  </li>
  </ul>





## Response



[//]: # (hotels)
- **hotels** *([Object])*

  <p>The list of hotels and their rates.</p>
  <ul>
  <li>
  <p><strong>id</strong> <em>(String, deprecated)</em></p>
  <p>The unique hotel ID in the legacy string format.</p>
  > [!NOTE]
  > * Either this field or the `hid` field is required.
  </li>
  <li>
  <p><strong>hid</strong> <em>(Int)</em></p>
  <p>The unique hotel ID in the new numeric format.</p>
  > [!NOTE]
  > * Each ID is an integer no longer than 10 digits.
  > * We are gradually migrating all clients to use this format.
  </li>
  <li>
  <p><strong>rates</strong> <em>([Object])</em></p>
  <p>The list of available hotel rates.</p>
  <ul>
  <li>
  <p><strong>allotment</strong> <em>(Int)</em></p>
  <p>The number of rooms available for the rate.</p>
  </li>
  <li>
  <p><strong>amenities_data</strong> <em>([String])</em></p>
  <p>The room amenity list.</p>
  <p>To get all available room amenities and their definitions, use the <code>room_amenities</code> field from the [Retrieve hotel static data](/docs/affiliate-api/static-content/retrieve-hotel-static-data/)
   call.</p>
  </li>
  <li>
  <p><strong>any_residency</strong> <em>(Boolean)</em></p>
  <p>Whether the rate is allowed to be booked by the guest with any kind of residency or not.</p>
  <p>Use it if you don’t collect the guests’ residency.</p>
  </li>
  <li>
  <p><strong>book_hash</strong> <em>(String)</em></p>
  <p>The unique rate ID used to identify the selected rate.</p>
  > [!NOTE]
  > * Use this value in the `hash` field of the [Prebook rate from hotelpage step](/docs/affiliate-api/hotel-search/prebook-rate-from-hotelpage-step/) call.
  > * The value lifetime is 24 hours after you have got the available rate.
  </li>
  <li>
  <p><strong>daily_prices</strong> <em>([String])</em></p>
  <p>The list of daily rate prices breakdown in the request currency.</p>
  </li>
  <li>
  <p><strong>deposit</strong> <em>(Object)</em></p>
  <p>The deposit information of the order.</p>
  <p>Has a value if the rate <code>payment_types.type</code> field has the <code>hotel</code> value.</p>
  <ul>
  <li>
  <p><strong>amount</strong> <em>(String)</em></p>
  <p>The deposit amount in the currency specified by the <code>currency_code</code> field.</p>
  </li>
  <li>
  <p><strong>currency_code</strong> <em>(String)</em></p>
  <p>The deposit amount currency code. Is the same as the charged (hotel) currency code.</p>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>match_hash</strong> <em>(String)</em></p>
  <p>The <code>match_hash</code> field of the rate from the call made by the SERP mechanism.</p>
  <p>Use this field if you are:</p>
  <ul>
  <li>Showing rates to the users from the call made by the [SERP mechanism](/docs/glossary/#search-engine-results-page)
  .</li>
  <li>Making a booking from these rates.</li>
  <li>Using this call response as actual data on the rate.</li>
  <li>Using this call response to actualize the exact rate from the calls made by the SERP mechanism.</li>
  </ul>
  <p>Usage of this field can help the ETG collect analytics for SERP-HP matching.</p>
  </li>
  <li>
  <p><strong>meal</strong> <em>(String, deprecated)</em></p>
  <blockquote>
  <p>[!WARNING]
  Use the <code>meal_data</code> field instead.</p></blockquote>
  <p>The meal type.</p>
  <p>If there is no meal type provided by the rate source, the <code>nomeal</code> value is returned.</p>
  <p>To get all available meals and their definitions, use the <code>meals</code> field from the [Retrieve hotel static data](/docs/affiliate-api/static-content/retrieve-hotel-static-data/)
   call.</p>
  </li>
  <li>
  <p><strong>meal_data</strong> <em>(Object)</em></p>
  <p>The rate meals information.</p>
  <ul>
  <li>
  <p><strong>value</strong> <em>(String)</em></p>
  <p>The meal type in the rate.</p>
  <p>To get all available meal types and their definitions, use the <code>meals</code> field from the [Retrieve hotel static data](/docs/affiliate-api/static-content/retrieve-hotel-static-data/)
   call.</p>
  <p>Has the <code>nomeal</code> value if no meal type is provided.</p>
  </li>
  <li>
  <p><strong>has_breakfast</strong> <em>(Boolean)</em></p>
  <p>Whether breakfast is included to the rate or not.</p>
  </li>
  <li>
  <p><strong>no_child_meal</strong> <em>(Boolean)</em></p>
  <p>Whether the children meal is absent in the rate or not.</p>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>no_show</strong> <em>(Object)</em></p>
  <p>The no-show penalty information.</p>
  <ul>
  <li>
  <p><strong>amount</strong> <em>(String)</em></p>
  <p>The no-show penalty amount in the currency specified by the <code>currency_code</code> field.</p>
  </li>
  <li>
  <p><strong>currency_code</strong> <em>(String)</em></p>
  <p>The no-show penalty amount currency code. Is the same as the charged (hotel) currency code.</p>
  </li>
  <li>
  <p><strong>from_time</strong> <em>(String)</em></p>
  <p>The time in the hotel timezone from which the no-show penalty is charged, in <code>HH:MM:SS</code> format (24-hour).</p>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>payment_options</strong> <em>(Object)</em></p>
  <p>The accepted payment options with the specified amount to be charged.</p>
  <p>For a booking, this amount in the requested currency should be paid.</p>
  <ul>
  <li>
  <p><strong>payment_types</strong> <em>(String)</em></p>
  <p>The list with accepted payment options.</p>
  <ul>
  <li>
  <p><strong>amount</strong> <em>(String)</em></p>
  <p>The amount to be charged for the booking in the contract currency code.</p>
  </li>
  <li>
  <p><strong>by</strong> <em>(String)</em></p>
  <p>Whether the booking can be paid by a card or not.</p>
  > [!NOTE]
  > * The possible values:
  >   * `credit_card`
  >   * `null`
  </li>
  <li>
  <p><strong>cancellation_penalties</strong> <em>(String)</em></p>
  <p>The cancellation rules and commission information.</p>
  <ul>
  <li>
  <p><strong>free_cancellation_before</strong> <em>(String)</em></p>
  <p>The date and time when the free cancellation policy expires.</p>
  <p>Has the <code>null</code> value, if there is no free cancellation.</p>
  <p>The timezone is in UTC±0.</p>
  </li>
  <li>
  <p><strong>policies</strong> <em>(String)</em></p>
  <p>The cancellation policies breakdown by periods.</p>
  <ul>
  <li>
  <p><strong>amount_charge</strong> <em>(String)</em></p>
  <p>The cancellation penalty amount in the contract currency.</p>
  </li>
  <li>
  <p><strong>amount_show</strong> <em>(String)</em></p>
  <p>The cancellation penalty amount in the request currency.</p>
  </li>
  <li>
  <p><strong>end_at</strong> <em>(String)</em></p>
  <p>The date and time when this cancellation policy expires.</p>
  <p>Has the <code>null</code> value, if it is in the time from the <code>start_at</code> field value till check-in.</p>
  <p>If the <code>start_at</code> and <code>end_at</code> fields have the <code>null</code> value, this particular cancellation policy:</p>
  <ul>
  <li>Has no time restrictions.</li>
  <li>Is in effect all the time.</li>
  </ul>
  <p>The timezone is in UTC±0.</p>
  </li>
  <li>
  <p><strong>start_at</strong> <em>(String)</em></p>
  <p>The date and time when this cancellation policy takes effect.</p>
  <p>Has the <code>null</code> value, if it is in effect till the <code>end_at</code> field value.</p>
  <p>The timezone is in UTC±0.</p>
  </li>
  </ul>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>currency_code</strong> <em>(String)</em></p>
  <p>The amount currency code. Is the same as the charged (contract) currency code.</p>
  > [!NOTE]
  > If the `payment_types` is `hotel`, the hotel `currency_code` will be used here.
  </li>
  <li>
  <p><strong>is_need_credit_card_data</strong> <em>(Boolean)</em></p>
  <p>Whether the credit card information is needed or not.</p>
  </li>
  <li>
  <p><strong>is_need_cvc</strong> <em>(Boolean)</em></p>
  <p>Whether the CVC is needed or not.</p>
  </li>
  <li>
  <p><strong>type</strong> <em>(String)</em></p>
  <p>The payment type.</p>
  > [!NOTE]
  > * The possible values:
  >   * `now`. Use it to allow the user to pay for the booking via the ETG payment system:
  >     1. Request the [Create booking process](/docs/affiliate-api/booking/create-booking-process/) call and get the card details.
  >     1. Request the [Create credit card token](/docs/affiliate-api/booking/create-credit-card-token/) call with the card details.
  >   * `hotel`. Use it to allow the user to pay for the booking upon check-in at the hotel. The user won’t be charged now.
  >   * `deposit`. Use it to allow you to charge the user bank card for the booking by yourself:
  >     1. You need to keep your ETG deposit sufficient. To increase funds, contact your account manager.
  >     1. The user makes a booking.
  >     1. You charge the user bank card.
  >     1. The ETG writes funds from your deposit by themselves during the reporting period.
  </li>
  <li>
  <p><strong>show_amount</strong> <em>(String)</em></p>
  <p>The rate price in the request currency code of this object <code>show_currency_code</code> field value.</p>
  <p>Isn’t necessarily the sum in the charged or payment currency code.</p>
  </li>
  <li>
  <p><strong>show_currency_code</strong> <em>(String)</em></p>
  <p>The currency code in the request body.</p>
  </li>
  <li>
  <p><strong>tax_data</strong> <em>(Object)</em></p>
  <p>The tax information.</p>
  <ul>
  <li>
  <p><strong>taxes</strong> <em>(Object)</em></p>
  <p>The taxes list.</p>
  <ul>
  <li>
  <p><strong>amount</strong> <em>(String)</em></p>
  <p>The tax amount in the currency specified by the <code>currency_code</code> field.</p>
  </li>
  <li>
  <p><strong>currency_code</strong> <em>(String)</em></p>
  <p>The tax amount currency code in the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)
   format.</p>
  <blockquote>
  <p>[!NOTE]</p>
  <ul>
  <li>The length is <code>3</code> characters.</li>
  <li>The possible values:
  <ul>
  <li><code>AED</code>.</li>
  <li><code>AFN</code>.</li>
  <li><code>ALL</code>.</li>
  <li><code>AMD</code>.</li>
  <li><code>ANG</code>.</li>
  <li><code>AOA</code>.</li>
  <li><code>ARS</code>.</li>
  <li><code>AUD</code>.</li>
  <li><code>AWG</code>.</li>
  <li><code>AZN</code>.</li>
  <li><code>BAM</code>.</li>
  <li><code>BBD</code>.</li>
  <li><code>BDT</code>.</li>
  <li><code>BGN</code>.</li>
  <li><code>BHD</code>.</li>
  <li><code>BIF</code>.</li>
  <li><code>BMD</code>.</li>
  <li><code>BND</code>.</li>
  <li><code>BOB</code>.</li>
  <li><code>BOV</code>.</li>
  <li><code>BRL</code>.</li>
  <li><code>BSD</code>.</li>
  <li><code>BTN</code>.</li>
  <li><code>BWP</code>.</li>
  <li><code>BYR</code>.</li>
  <li><code>BYN</code>.</li>
  <li><code>BZD</code>.</li>
  <li><code>CAD</code>.</li>
  <li><code>CDF</code>.</li>
  <li><code>CHE</code>.</li>
  <li><code>CHF</code>.</li>
  <li><code>CHW</code>.</li>
  <li><code>CLF</code>.</li>
  <li><code>CLP</code>.</li>
  <li><code>CNY</code>.</li>
  <li><code>COP</code>.</li>
  <li><code>COU</code>.</li>
  <li><code>CRC</code>.</li>
  <li><code>CUC</code>.</li>
  <li><code>CUP</code>.</li>
  <li><code>CVE</code>.</li>
  <li><code>CZK</code>.</li>
  <li><code>DJF</code>.</li>
  <li><code>DKK</code>.</li>
  <li><code>DOP</code>.</li>
  <li><code>DZD</code>.</li>
  <li><code>EGP</code>.</li>
  <li><code>ERN</code>.</li>
  <li><code>ETB</code>.</li>
  <li><code>EUR</code>.</li>
  <li><code>FJD</code>.</li>
  <li><code>FKP</code>.</li>
  <li><code>GBP</code>.</li>
  <li><code>GEL</code>.</li>
  <li><code>GHS</code>.</li>
  <li><code>GIP</code>.</li>
  <li><code>GMD</code>.</li>
  <li><code>GNF</code>.</li>
  <li><code>GTQ</code>.</li>
  <li><code>GYD</code>.</li>
  <li><code>HKD</code>.</li>
  <li><code>HNL</code>.</li>
  <li><code>HRK</code>.</li>
  <li><code>HTG</code>.</li>
  <li><code>HUF</code>.</li>
  <li><code>IDR</code>.</li>
  <li><code>ILS</code>.</li>
  <li><code>INR</code>.</li>
  <li><code>IQD</code>.</li>
  <li><code>IRR</code>.</li>
  <li><code>ISK</code>.</li>
  <li><code>JMD</code>.</li>
  <li><code>JOD</code>.</li>
  <li><code>JPY</code>.</li>
  <li><code>KES</code>.</li>
  <li><code>KGS</code>.</li>
  <li><code>KHR</code>.</li>
  <li><code>KMF</code>.</li>
  <li><code>KPW</code>.</li>
  <li><code>KRW</code>.</li>
  <li><code>KWD</code>.</li>
  <li><code>KYD</code>.</li>
  <li><code>KZT</code>.</li>
  <li><code>LAK</code>.</li>
  <li><code>LBP</code>.</li>
  <li><code>LKR</code>.</li>
  <li><code>LRD</code>.</li>
  <li><code>LSL</code>.</li>
  <li><code>LTL</code>.</li>
  <li><code>LVL</code>.</li>
  <li><code>LYD</code>.</li>
  <li><code>MAD</code>.</li>
  <li><code>MDL</code>.</li>
  <li><code>MGA</code>.</li>
  <li><code>MKD</code>.</li>
  <li><code>MMK</code>.</li>
  <li><code>MNT</code>.</li>
  <li><code>MOP</code>.</li>
  <li><code>MRO</code>.</li>
  <li><code>MUR</code>.</li>
  <li><code>MVR</code>.</li>
  <li><code>MWK</code>.</li>
  <li><code>MXN</code>.</li>
  <li><code>MXV</code>.</li>
  <li><code>MYR</code>.</li>
  <li><code>MZN</code>.</li>
  <li><code>NAD</code>.</li>
  <li><code>NGN</code>.</li>
  <li><code>NIO</code>.</li>
  <li><code>NOK</code>.</li>
  <li><code>NPR</code>.</li>
  <li><code>NZD</code>.</li>
  <li><code>OMR</code>.</li>
  <li><code>PAB</code>.</li>
  <li><code>PEN</code>.</li>
  <li><code>PGK</code>.</li>
  <li><code>PHP</code>.</li>
  <li><code>PKR</code>.</li>
  <li><code>PLN</code>.</li>
  <li><code>PYG</code>.</li>
  <li><code>QAR</code>.</li>
  <li><code>RON</code>.</li>
  <li><code>RSD</code>.</li>
  <li><code>RUB</code>.</li>
  <li><code>RWF</code>.</li>
  <li><code>SAR</code>.</li>
  <li><code>SBD</code>.</li>
  <li><code>SCR</code>.</li>
  <li><code>SDG</code>.</li>
  <li><code>SEK</code>.</li>
  <li><code>SGD</code>.</li>
  <li><code>SHP</code>.</li>
  <li><code>SLL</code>.</li>
  <li><code>SOS</code>.</li>
  <li><code>SRD</code>.</li>
  <li><code>SSP</code>.</li>
  <li><code>STD</code>.</li>
  <li><code>SVC</code>.</li>
  <li><code>SYP</code>.</li>
  <li><code>SZL</code>.</li>
  <li><code>THB</code>.</li>
  <li><code>TJS</code>.</li>
  <li><code>TMT</code>.</li>
  <li><code>TND</code>.</li>
  <li><code>TOP</code>.</li>
  <li><code>TRY</code>.</li>
  <li><code>TTD</code>.</li>
  <li><code>TWD</code>.</li>
  <li><code>TZS</code>.</li>
  <li><code>UAH</code>.</li>
  <li><code>UGX</code>.</li>
  <li><code>USD</code>.</li>
  <li><code>USN</code>.</li>
  <li><code>USS</code>.</li>
  <li><code>UYI</code>.</li>
  <li><code>UYU</code>.</li>
  <li><code>UZS</code>.</li>
  <li><code>VEF</code>.</li>
  <li><code>VND</code>.</li>
  <li><code>VUV</code>.</li>
  <li><code>WST</code>.</li>
  <li><code>XAF</code>.</li>
  <li><code>XAG</code>.</li>
  <li><code>XAU</code>.</li>
  <li><code>XBA</code>.</li>
  <li><code>XBB</code>.</li>
  <li><code>XBC</code>.</li>
  <li><code>XBD</code>.</li>
  <li><code>XCD</code>.</li>
  <li><code>XDR</code>.</li>
  <li><code>XFU</code>.</li>
  <li><code>XOF</code>.</li>
  <li><code>XPD</code>.</li>
  <li><code>XPF</code>.</li>
  <li><code>XPT</code>.</li>
  <li><code>XSU</code>.</li>
  <li><code>XTS</code>.</li>
  <li><code>XUA</code>.</li>
  <li><code>YER</code>.</li>
  <li><code>ZAR</code>.</li>
  <li><code>ZMW</code>.</li>
  <li><code>ZWL</code>.</li>
  </ul>
  </li>
  </ul></blockquote>
  </li>
  <li>
  <p><strong>included_by_supplier</strong> <em>(Boolean)</em></p>
  <p>Whether the tax is included by the supplier or not.</p>
  <p>When it has:</p>
  <ul>
  <li>The <code>false</code> value, the tax is supposed to be paid at the hotel in this object currency.</li>
  <li>The <code>true</code> value, the tax is included in the price.</li>
  </ul>
  </li>
  <li>
  <p><strong>name</strong> <em>(String)</em></p>
  <p>The ETG tax ID.</p>
  <p>To get all available tax IDs and their definitions, use the <code>taxes</code> field from the [Retrieve hotel static data](/docs/affiliate-api/static-content/retrieve-hotel-static-data/)
   call.</p>
  </li>
  </ul>
  </li>
  </ul>
  </li>
  </ul>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>rg_ext</strong> <em>(Object)</em></p>
  <p>The hotel room type.</p>
  <p>Use this field to get extra data on the room from the hotel static data. For example, room images, descriptions.</p>
  <ul>
  <li>
  <p><strong>balcony</strong> <em>(Int)</em></p>
  <p>Whether there is a balcony or not.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — no balcony.
  > * `1` — a balcony.
  </li>
  <li>
  <p><strong>bathroom</strong> <em>(Int)</em></p>
  <p>The room bathroom information.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — a shared bathroom.
  > * `2` — a private bathroom.
  > * `3` — an external private bathroom.
  </li>
  <li>
  <p><strong>bedding</strong> <em>(Int)</em></p>
  <p>The room bedding information.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — a bunk bed.
  > * `2` — a single bed.
  > * `3` — a double bed.
  > * `4` — a twin bed.
  > * `7` — multiple beds.
  </li>
  <li>
  <p><strong>bedrooms</strong> <em>(Int)</em></p>
  <p>The bedroom number.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — 1 bedroom.
  > * `2` — 2 bedrooms.
  > * `3` — 3 bedrooms.
  > * `4` — 4 bedrooms.
  > * `5` — 5 bedrooms.
  > * `6` — 6 bedrooms.
  </li>
  <li>
  <p><strong>capacity</strong> <em>(Int)</em></p>
  <p>The maximum number of main bed places without additional charges and excluding extra beds, cots, etc.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — single.
  > * `2` — double.
  > * `3` — triple.
  > * `4` — quadruple.
  > * `5` — quintuple.
  > * `6` — sextuplet.
  </li>
  <li>
  <p><strong>class</strong> <em>(Int)</em></p>
  <p>The room class information.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — run of house.
  > * `1` — dorm.
  > * `2` — capsule.
  > * `3` — room.
  > * `4` — junior suite.
  > * `5` — suite.
  > * `6` — apartment.
  > * `7` — studio.
  > * `8` — villa.
  > * `9` — cottage.
  > * `17` — bungalow.
  > * `18` — chalet.
  > * `19` — camping.
  > * `20` — tent.
  </li>
  <li>
  <p><strong>club</strong> <em>(Int)</em></p>
  <p>Whether it is a club room or not.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — not a club room.
  > * `1` — a club room.
  </li>
  <li>
  <p><strong>family</strong> <em>(Int)</em></p>
  <p>Whether it is a family room or not.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — not a family room.
  > * `1` — a family room.
  </li>
  <li>
  <p><strong>floor</strong> <em>(Int)</em></p>
  <p>The room floor Information.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — a penthouse floor.
  > * `2` — a duplex floor.
  > * `3` — a basement floor.
  > * `4` — an attic floor.
  </li>
  <li>
  <p><strong>quality</strong> <em>(Int)</em></p>
  <p>The room quality information.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — economy.
  > * `2` — standard.
  > * `3` — comfort.
  > * `4` — business.
  > * `5` — superior.
  > * `6` — deluxe.
  > * `7` — premier.
  > * `8` — executive.
  > * `9` — presidential.
  > * `17` — premium.
  > * `18` — classic.
  > * `19` — ambassador.
  > * `20` — grand.
  > * `21` — luxury.
  > * `22` — platinum.
  > * `23` — prestige.
  > * `24` — privilege.
  > * `25` — royal.
  </li>
  <li>
  <p><strong>sex</strong> <em>(Int)</em></p>
  <p>The room gender restrictions.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — male.
  > * `2` — female.
  > * `3` — mixed.
  </li>
  <li>
  <p><strong>view</strong> <em>(Int)</em></p>
  <p>The room view information.</p>
  > [!NOTE]
  > The possible values:
  > * `0` — undefined.
  > * `1` — bay view.
  > * `2` — bosphorus view.
  > * `3` — burj-khalifa view.
  > * `4` — canal view.
  > * `5` — city view.
  > * `6` — courtyard view.
  > * `7` — dubai-marina view.
  > * `8` — garden view.
  > * `9` — golf view.
  > * `17` — harbour view.
  > * `18` — inland view.
  > * `19` — kremlin view.
  > * `20` — lake view.
  > * `21` — land view.
  > * `22` — mountain view.
  > * `23` — ocean view.
  > * `24` — panoramic view.
  > * `25` — park view.
  > * `26` — partial-ocean view.
  > * `27` — partial-sea view.
  > * `28` — partial view.
  > * `29` — pool view.
  > * `30` — river view.
  > * `31` — sea view.
  > * `32` — sheikh-zayed view.
  > * `33` — street view.
  > * `34` — sunrise view.
  > * `35` — sunset view.
  > * `36` — water view.
  > * `37` — with view.
  > * `38` — beachfront.
  > * `39` — ocean front.
  > * `40` — sea front.
  </li>
  </ul>
  </li>
  <li>
  <p><strong>room_data_trans</strong> <em>(Object)</em></p>
  <p>The room information in the request language.</p>
  <ul>
  <li>
  <p><strong>bathroom</strong> <em>(String)</em></p>
  <p>The room bathroom information.</p>
  <p>Has the <code>null</code> value, if it is a private bathroom.</p>
  </li>
  <li>
  <p><strong>bedding_type</strong> <em>(String)</em></p>
  <p>The room bedding information.</p>
  </li>
  <li>
  <p><strong>main_name</strong> <em>(String)</em></p>
  <p>The room name.</p>
  </li>
  <li>
  <p><strong>main_room_type</strong> <em>(String)</em></p>
  <p>The room type.</p>
  </li>
  <li>
  <p><strong>misc_room_type</strong> <em>(String)</em></p>
  <p>The room additional information.</p>
  </li>
  <li>
  <p><strong>beds</strong> <em>(Object)</em></p>
  <p>An array listing the types and quantities of beds available in the room.</p>
  > [!NOTE]
  > This field and its nested fields are **not available in the Sandbox environment**.
  <ul>
  <li>
  <p><strong>bed</strong> <em>(String)</em></p>
  <p>Type of bed.</p>
  </li>
  <li>
  <p><strong>count</strong> <em>(String)</em></p>
  <p>Quantity of this bed type.</p>
  </li>
  </ul>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>legal_info</strong> <em>(Object)</em></p>
  <p>The hotel and service provider legal information.</p>
  > [!NOTE]
  > The information provided depends on the supplier of the specific rate.
  <p>Has the value different from <code>null</code> for only countries where it is mandatory to have this information.</p>
  <p>Has the <code>null</code> value for the calls made by the [SERP mechanism](/docs/glossary/#search-engine-results-page)
  .</p>
  <ul>
  <li>
  <p><strong>hotel</strong> <em>(Object)</em></p>
  <p>The hotel legal information.</p>
  <ul>
  <li>
  <p><strong>name</strong> <em>(String)</em></p>
  <p>The hotel legal name.</p>
  </li>
  <li>
  <p><strong>address</strong> <em>(String)</em></p>
  <p>The hotel legal address.</p>
  </li>
  <li>
  <p><strong>taxpayer_number</strong> <em>(String)</em></p>
  <p>The Taxpayer Personal Identification Number (INN) of the hotel.</p>
  > [!NOTE]
  > * The length is `10` characters.
  </li>
  <li>
  <p><strong>state_registration_number</strong> <em>(String)</em></p>
  <p>The State Registration Number for Companies (OGRN) of the hotel.</p>
  > [!NOTE]
  > * The length is `13` characters.
  </li>
  <li>
  <p><strong>work_time</strong> <em>(String)</em></p>
  <p>The hotel legal address working hours.</p>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>provider</strong> <em>(Object)</em></p>
  <p>The service provider legal information.</p>
  <ul>
  <li>
  <p><strong>name</strong> <em>(String)</em></p>
  <p>The service provider legal name.</p>
  </li>
  <li>
  <p><strong>address</strong> <em>(String)</em></p>
  <p>The service provider legal address.</p>
  </li>
  <li>
  <p><strong>taxpayer_number</strong> <em>(String)</em></p>
  <p>The Taxpayer Personal Identification Number (INN) of the service provider.</p>
  > [!NOTE]
  > * The length is `10` characters.
  </li>
  <li>
  <p><strong>state_registration_number</strong> <em>(String)</em></p>
  <p>The State Registration Number for Companies (OGRN) of the service provider.</p>
  > [!NOTE]
  > * The length is `13` characters.
  </li>
  </ul>
  </li>
  </ul>
  </li>
  <li>
  <p><strong>room_name</strong> <em>(String)</em></p>
  <p>The room name in the request language.</p>
  </li>
  <li>
  <p><strong>room_name_info</strong> <em>(Object)</em></p>
  <p>The optional object that may help to resolve certain matching problems. To get access to the object, contact your account manager.</p>
  </li>
  <li>
  <p><strong>serp_filters</strong> <em>([String], deprecated)</em></p>
  <p>The list of hotel amenities. Accepts a list of limited hotel amenities of amenity values. This limit is not stable and may vary between different rates within the same hotel — some values may be applicable for one rate but not considered for another.</p>
  <blockquote>
  <p>[!NOTE]
  Supported values:</p>
  <ul>
  <li>has_airport_transfer.</li>
  <li>has_parking.</li>
  <li>air-conditioning.</li>
  <li>has_internet.</li>
  <li>has_breakfast.</li>
  </ul></blockquote>
  </li>
  <li>
  <p><strong>is_package</strong> <em>(Boolean)</em></p>
  <p>Rates marked with <code>is_package = true</code> should be sold as a part of package, and the price for the hotel should not be shown separately.</p>
  </li>
  </ul>
  </li>
  </ul>





## Response example

```json
{
  "data": {
    "hotels": [
      {
        "id": "conrad_los_angeles",
        "hid": 10004834,
        "rates": [
          {
            "book_hash": "h-8e21aecc-7639-53e7-9ae4-5d08c375b847",
            "match_hash": "m-1c758b49-7e79-5d7e-b39f-cd6999693694",
            "daily_prices": [
              "443.78",
              "443.78",
              "443.78"
            ],
            "meal": "nomeal",
            "meal_data": {
              "value": "nomeal",
              "has_breakfast": false,
              "no_child_meal": true
            },
            "payment_options": {
              "payment_types": [
                {
                  "amount": "1331.34",
                  "show_amount": "1331.34",
                  "currency_code": "USD",
                  "show_currency_code": "USD",
                  "by": null,
                  "is_need_credit_card_data": true,
                  "is_need_cvc": true,
                  "type": "hotel",
                  "tax_data": {
                    "taxes": [
                      {
                        "name": "occupancy_tax",
                        "included_by_supplier": true,
                        "amount": "183.63",
                        "currency_code": "USD"
                      },
                      {
                        "name": "resort_fee",
                        "included_by_supplier": false,
                        "amount": "135.00",
                        "currency_code": "USD"
                      }
                    ]
                  },
                  "cancellation_penalties": {
                    "policies": [
                      {
                        "start_at": null,
                        "end_at": null,
                        "amount_charge": "1331.34",
                        "amount_show": "1331.34"
                      }
                    ],
                    "free_cancellation_before": null
                  }
                }
              ]
            },
            "rg_ext": {
              "class": 3,
              "quality": 6,
              "sex": 0,
              "bathroom": 2,
              "bedding": 3,
              "family": 0,
              "capacity": 2,
              "club": 0,
              "bedrooms": 0,
              "balcony": 0,
              "view": 0,
              "floor": 0
            },
            "room_name": "Deluxe Double room (full double bed) (king size bed, handicap accessible)",
            "room_name_info": null,
            "serp_filters": [
              "has_bathroom"
            ],
            "allotment": 3,
            "amenities_data": [
              "non-smoking",
              "accessible",
              "king-bed"
            ],
            "any_residency": true,
            "deposit": null,
            "no_show": {
              "amount": "1331.00",
              "currency_code": "USD",
              "from_time": "12:00:00"
            },
            "room_data_trans": {
              "main_room_type": "Deluxe Double room",
              "main_name": "Deluxe Double room",
              "bathroom": null,
              "bedding_type": "full double bed",
              "misc_room_type": "king size bed, handicap accessible",
              "beds": [
                {
                  "bed": "double",
                  "count": 1
                }
              ]
            },
            "legal_info": {
              "provider": {
                "name": "",
                "address": "",
                "taxpayer_number": "0000000000",
                "state_registration_number": "0000000000000"
              },
              "hotel": {
                "name": "Conrad Los Angeles",
                "address": "100 South Grand Avenue, Лос-Анджелес",
                "taxpayer_number": "0000000000",
                "state_registration_number": "0000000000000",
                "work_time": "from 9-18 local time"
              }
            },
            "is_package": false
          },
          {
            "book_hash": "h-6ac42450-53d0-59a5-9543-a11f40132617",
            "match_hash": "m-fde98be9-7272-5cf3-9784-d3c8b319c5b9",
            "daily_prices": [
              "4457.01",
              "5008.18",
              "4416.31"
            ],
            "meal": "breakfast",
            "meal_data": {
              "value": "breakfast",
              "has_breakfast": true,
              "no_child_meal": false
            },
            "payment_options": {
              "payment_types": [
                {
                  "amount": "13881.50",
                  "show_amount": "13881.50",
                  "currency_code": "USD",
                  "show_currency_code": "USD",
                  "by": null,
                  "is_need_credit_card_data": true,
                  "is_need_cvc": true,
                  "type": "hotel",
                  "tax_data": {
                    "taxes": [
                      {
                        "name": "occupancy_tax",
                        "included_by_supplier": true,
                        "amount": "1914.69",
                        "currency_code": "USD"
                      },
                      {
                        "name": "resort_fee",
                        "included_by_supplier": false,
                        "amount": "135.00",
                        "currency_code": "USD"
                      }
                    ]
                  },
                  "cancellation_penalties": {
                    "policies": [
                      {
                        "start_at": null,
                        "end_at": "2026-11-21T08:00:00",
                        "amount_charge": "0.00",
                        "amount_show": "0.00"
                      },
                      {
                        "start_at": "2026-11-21T08:00:00",
                        "end_at": null,
                        "amount_charge": "13881.50",
                        "amount_show": "13881.50"
                      }
                    ],
                    "free_cancellation_before": "2026-11-21T08:00:00"
                  }
                }
              ]
            },
            "rg_ext": {
              "class": 5,
              "quality": 23,
              "sex": 0,
              "bathroom": 2,
              "bedding": 3,
              "family": 0,
              "capacity": 2,
              "club": 0,
              "bedrooms": 0,
              "balcony": 0,
              "view": 0,
              "floor": 0
            },
            "room_name": "Conrad Penthouse Double Suite (full double bed)",
            "room_name_info": null,
            "serp_filters": [
              "has_bathroom"
            ],
            "allotment": 1,
            "amenities_data": [
              "non-smoking"
            ],
            "any_residency": true,
            "deposit": null,
            "no_show": {
              "amount": "4457.00",
              "currency_code": "USD",
              "from_time": "12:00:00"
            },
            "room_data_trans": {
              "main_room_type": "Conrad Penthouse Double Suite",
              "main_name": "Conrad Penthouse Double Suite",
              "bathroom": null,
              "bedding_type": "full double bed",
              "misc_room_type": null,
              "beds": [
                {
                  "bed": "double",
                  "count": 1
                }
              ]
            },
            "legal_info": {
              "provider": {
                "name": "",
                "address": "",
                "taxpayer_number": "0000000000",
                "state_registration_number": "0000000000000"
              },
              "hotel": {
                "name": "Conrad Los Angeles",
                "address": "100 South Grand Avenue, Лос-Анджелес",
                "taxpayer_number": "0000000000",
                "state_registration_number": "0000000000000",
                "work_time": "from 9-18 local time"
              }
            },
            "is_package": false
          }
        ]
      }
    ]
  },
  "debug": {
    "api_endpoint": {
      "endpoint": "api/b2b/v3/search/hp",
      "is_active": true,
      "is_limited": true,
      "remaining": 8,
      "requests_number": 10,
      "reset": "2026-04-16T20:22:00",
      "seconds_number": 60
    },
    "request": {
      "checkin": "2026-11-22",
      "checkout": "2026-11-25",
      "residency": "gb",
      "language": "en",
      "guests": [
        {
          "adults": 2,
          "children": []
        }
      ],
      "hid": 10004834,
      "currency": "USD",
      "filter": {
        "star_rating": [],
        "kind": [],
        "meal_type": []
      }
    },
    "method": "POST",
    "real_ip": "104.30.161.77",
    "request_id": "6e5e3848a3c4ffd3b506d20d40288b2c",
    "key_id": 1234,
    "api_key_id": 1234,
    "utcnow": "2026-04-16T20:21:53.213358"
  },
  "status": "ok",
  "error": null
}
```

## Errors

The `error` field has the value specified in the headers below.

### `invalid_params`

The request body is invalid.

### `core_search_error`

An internal search error. Has `500` status code.
