---
title: "List available hotel rooms"
method: GET
path: "/demand-api-v2-compatible/hotelAvailability"
tags: ["demand-api-v2-compatible"]
---

# List available hotel rooms

`GET /demand-api-v2-compatible/hotelAvailability`

This endpoint returns the cheapest available room for each hotel matching your check-in and check-out dates.
You can search a specific list of up to 1000 hotels with `hotel_ids`, or an area with `latitude`, `longitude` and `radius` (the two are mutually exclusive).
For each hotel you get whether the price includes breakfast or other meals and whether it can be cancelled for free.
Request the `room_details` extra for a per-room price breakdown, and use `add_filtered_rate`/`options` to filter the results.

String enum values (such as `user_platform`, `extras`, `options`, `add_filtered_rate`, `order_by` and `order_dir`) are case-insensitive. `language` accepts the lowercase codes listed below.

## Query parameters

- `checkin` string, date, required — The arrival date.
- `checkout` string, date, required — The departure date. Must be later than {checkin}. Must be between 1 and 30 days after {checkin}.
- `guest_country` string, required — Guest country code (ISO 3166-1 alpha-2). Used to display the most accurate prices and price details for guests from that country.
- `hotel_ids` integer[] — Limit the result to up to 1000 specific hotels that have availability for the given guests and dates. Mutually exclusive with `latitude`/`longitude`: use either a hotel list or an area search, not both.
- `latitude` number, double — Latitude for an area search, used together with `longitude` and `radius`. Requires `longitude`; cannot be combined with `hotel_ids`.
- `longitude` number, double — Longitude for an area search, used together with `latitude` and `radius`. Requires `latitude`; cannot be combined with `hotel_ids`.
- `radius` number, double — Search radius in km around `latitude`/`longitude`. Only applies to an area search. Minimum and default 15, maximum 100.
- `room1` string — Guests per room, as a comma-separated list: `A` for each adult and the age (0-17) for each child (e.g. `A,A,5` = two adults and a 5-year-old). For multi-room searches, repeat the parameter per room as `room1`, `room2`, ... up to `room30`.
- `no_rooms` integer — Splits a single guest group into this many rooms automatically. Only applied when exactly one room group is provided and the value is between 2 and the number of adults inclusive; larger values have no effect.
- `currency` string — Return prices in this currency (ISO 4217 code).
- `language` 'ar' | 'bg' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en-gb' | 'en-us' | 'es' | 'es-ar' | 'es-mx' | 'et' | 'fi' | 'fr' | 'he' | 'hi' | 'hr' | 'hu' | 'id' | 'is' | 'it' | 'ja' | 'ka' | 'ko' | 'lt' | 'lv' | 'ms' | 'nl' | 'no' | 'pl' | 'pt-br' | 'pt-pt' | 'pt' | 'ro' | 'ru' | 'sk' | 'sl' | 'sr' | 'sv' | 'th' | 'tl' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh-cn' | 'zh-tw' — The user's language.
- `user_platform` 'ANDROID' | 'DESKTOP' | 'IOS' | 'MOBILE' | 'TABLET' — The user's platform.
- `genius` integer — Genius loyalty level (0-3) used to include Genius rates the partner is eligible for. Defaults to 0 (no Genius rates).
- `extras` string[] — The extra items for this request. See the documentation for more details about each extra.
- `options` string[] — The list of options to filter the results.
- `add_filtered_rate` string[] — The list of rates to filter the results.
- `order_by` 'DISTANCE' | 'POPULARITY' | 'PRICE' | 'RANKING' | 'REVIEW_SCORE' | 'STARS' — The way to order your results. When ordering by distance, make sure to specify latitude and longitude.
- `order_dir` 'ASC' | 'DESC' — The direction you wish for your order_by parameter to be ordered in.
- `rows` integer — The maximum number of results to return.
- `page` string — Pagination token used to retrieve the next page of results. Obtained from `next_page`.

## Headers

- `Accept` 'application/json'

## Response `200`

OK

- object
  - `meta` Meta
    - `ruid` string
  - `result` object[]
    - `hotel_id` integer — The unique identifier of this hotel.
    - `hotel_currency_code` string — The currency code of the hotel's currency.
    - `price` number, double — The display price of the room in this hotel.
    - `net_price` number, double — The net price (price without charges) of the room in this hotel.
    - `rooms` object[] — List of available rooms. Only included when room details are requested.
      - `room_name` string
      - `refundable` boolean
      - `deposit_required` boolean
      - `breakfast_included` boolean
      - `room_id` integer
      - `num_rooms_available_at_this_price` integer
      - `price` number, double
      - `deal_tagging` object
        - `discount_percentage` integer
        - `public_price` number, double
        - `deal_name` string
        - `platform` string
      - `refundable_until` string
      - `children` string[]
      - `adults` integer
      - `room_type_id` integer
      - `net_price` number, double
      - `block_id` string
      - `all_inclusive` boolean
      - `half_board` boolean
      - `full_board` boolean
      - `extra_charge` object[]
        - `currency` string
        - `charge_amount` number, double
        - `amount` number, double
        - `type` string
        - `name` string
        - `name_id` integer
        - `charge_price_mode` string
        - `excluded` boolean
        - `other_currency` object
          - `currency` string
          - `amount` number, double
        - `is_conditional` boolean
      - `mcid` integer
      - `ppt` string — Pricing Product Tag indicating applied pricing products (e.g. G1GM = Genius L1 + Geo + Mobile)
    - `review_nr` integer — The number of reviews of the hotel.
    - `stars` string — The star rating of the hotel.
    - `review_score` number, double — The review score of the hotel, in the range 1..10.
    - `review_score_word` string — The review score of the hotel in words.
    - `hotel_name` string — The name of the hotel.
    - `address` string — The address of the hotel.
    - `postcode` string — The postcode or zipcode of the hotel.
    - `country` string — The country that the hotel is located in.
    - `default_language` string — The default language.
    - `checkin_time` object — The checkin time window for a property.
      - `from` string — The time from when checkin starts at this property.
      - `until` string — The time until when checkin can be done at this property.
    - `photo` string — The url of the main photo of this hotel.
    - `cheapest_breakfast_rate` object
      - `price` number, double — The display price of the cheapest breakfast rate.
      - `net_price` number, double — The net price (price without charges) of the cheapest breakfast rate.
      - `rooms` object[] — The room details for the cheapest breakfast rate.
        - `room_name` string
        - `refundable` boolean
        - `deposit_required` boolean
        - `breakfast_included` boolean
        - `room_id` integer
        - `num_rooms_available_at_this_price` integer
        - `price` number, double
        - `deal_tagging` object
          - `discount_percentage` integer
          - `public_price` number, double
          - `deal_name` string
          - `platform` string
        - `refundable_until` string
        - `children` string[]
        - `adults` integer
        - `room_type_id` integer
        - `net_price` number, double
        - `block_id` string
        - `all_inclusive` boolean
        - `half_board` boolean
        - `full_board` boolean
        - `extra_charge` object[]
          - `currency` string
          - `charge_amount` number, double
          - `amount` number, double
          - `type` string
          - `name` string
          - `name_id` integer
          - `charge_price_mode` string
          - `excluded` boolean
          - `other_currency` object
            - `currency` string
            - `amount` number, double
          - `is_conditional` boolean
        - `mcid` integer
        - `ppt` string — Pricing Product Tag indicating applied pricing products (e.g. G1GM = Genius L1 + Geo + Mobile)
    - `cheapest_filtered_rate` object
      - `price` number, double — The display price of the cheapest filtered rate.
      - `net_price` number, double — The net price (price without charges) of the cheapest filtered rate.
      - `rooms` object[] — The room details for the cheapest filtered rate.
        - `room_name` string
        - `refundable` boolean
        - `deposit_required` boolean
        - `breakfast_included` boolean
        - `room_id` integer
        - `num_rooms_available_at_this_price` integer
        - `price` number, double
        - `deal_tagging` object
          - `discount_percentage` integer
          - `public_price` number, double
          - `deal_name` string
          - `platform` string
        - `refundable_until` string
        - `children` string[]
        - `adults` integer
        - `room_type_id` integer
        - `net_price` number, double
        - `block_id` string
        - `all_inclusive` boolean
        - `half_board` boolean
        - `full_board` boolean
        - `extra_charge` object[]
          - `currency` string
          - `charge_amount` number, double
          - `amount` number, double
          - `type` string
          - `name` string
          - `name_id` integer
          - `charge_price_mode` string
          - `excluded` boolean
          - `other_currency` object
            - `currency` string
            - `amount` number, double
          - `is_conditional` boolean
        - `mcid` integer
        - `ppt` string — Pricing Product Tag indicating applied pricing products (e.g. G1GM = Genius L1 + Geo + Mobile)
    - `hotel_url` string — URL of the property's page on Booking.com.

## Other responses

- `400` — Invalid input, e.g. a missing, invalid, unknown, or conflicting parameter.
- `500` — An unexpected server error occurred.

---

[API](https://skmtc.net/booking/apis/connect-api.md) · [All operations](https://skmtc.net/booking/apis/connect-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/booking/connect-api/revisions/0fbdc2f4423a/schema)
