# List all bookable rooms at a property

This endpoint is where you find a list of all bookable or available rooms at a property.
A room can have multiple blocks, as a block is a combination of the meal, cancellation policy, occupancy and other things.
You can find detailed information about one hotel per search (detail_level)
which will return most of the information needed to replicate the booking.com property page.
If you want to search multiple hotels, you can, but you get less detail.
For searching multiple hotels, it is recommended to use hotelAvailability.

Endpoint: GET /demand-api-v2-compatible/blockAvailability
Version: 1.2.2
Security: BearerAuth

## Query parameters:

  - `blockInput` (object, required)

## Header parameters:

  - `Accept` (string)

## Response 200 fields (application/json):

  - `result` (array)

  - `result.block` (array)
    The object containing all the relevant information for the combination of room, policy, meal and occupancy that determines the price."
A block is the unique entity you book with booking.com.

  - `result.block.block_id` (string)
    Unique ID value for the block.

  - `result.block.breakfast_included` (boolean)
    Boolean value set to "true" if breakfast is included or "false" if it is not included in this block.

  - `result.block.min_price` (object)
    Minimum currency and price.

  - `result.block.min_price.price` (number)
    Price in the hotel currency.

  - `result.block.min_price.currency` (string)
    Three-letter ISO currency code that the price is shown in.
    Example: EUR

  - `result.block.min_price.other_currency` (object)
    Price in the other currency.

  - `result.block.min_price.other_currency.currency` (string)
    Three-letter ISO currency code that the price is shown in.
    Example: EUR

  - `result.block.min_price.other_currency.price` (number)
    Price in the other currency.

  - `result.block.min_price.extra_charges_breakdown` (object)
    This element contains an array with the breakdown of taxes, fees and charges. This covers all the extra charges (included and excluded) that are applicable to this block.

  - `result.block.min_price.extra_charges_breakdown.net_price` (number)
    Net component of price in the indicated currency.

  - `result.block.min_price.extra_charges_breakdown.net_price_other_currency` (object)
    Net component of price in the other currency.

  - `result.block.min_price.extra_charges_breakdown.net_price_other_currency.currency` (string)
    Three-letter ISO currency code that the price is shown in.
    Example: EUR

  - `result.block.min_price.extra_charges_breakdown.net_price_other_currency.price` (number)
    Price in the other currency.

  - `result.block.min_price.extra_charges_breakdown.extra_charge` (array)
    A breakdown of each extra charge.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.currency` (string)
    Three-letter ISO currency code that the charge is shown in.
    Example: EUR

  - `result.block.min_price.extra_charges_breakdown.extra_charge.charge_amount` (number)
    The charge that is used along with charge_price_mode to calculate the amount.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.amount` (number)
    Extra charge amount in the indicated currency.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.type` (string)
    Extra charge type.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.name` (string)
    Extra charge name.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.name_id` (integer)
    The ID that identifies the name of the extra charge.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.charge_price_mode` (integer)
    Determines the method of calculating the charge.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.excluded` (boolean)
    Boolean value set to "true" if the extra charge is excluded or "false" if it is included.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.other_currency` (object)
    Extra charge in the other currency.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.other_currency.currency` (string)
    Three-letter ISO currency code that the charge is shown in.
    Example: EUR

  - `result.block.min_price.extra_charges_breakdown.extra_charge.other_currency.amount` (number)
    Charge amount in the other currency.

  - `result.block.min_price.extra_charges_breakdown.extra_charge.is_conditional` (boolean)
    Set as "true" if this is a conditional charge. Not present otherwise. Example of conditional charge: cleaning fee in case of pets.

  - `result.block.incremental_price` (array)
    A list of prices for the block. Each item shows the price for multiple bookings of the block.

  - `result.block.room_id` (integer)
    Unique ID value for the room in this block.

  - `result.block.deposit_required` (boolean)

  - `result.block.refundable` (boolean)
    Boolean value set to "true" if the rate is refundable or "false" if it is not refundable.

  - `result.block.refundable_until` (string)
    Refunds are permitted until this date. Format: YYYY-MM-DD HH:MM:SS +/-GMT

  - `result.block.min_rate_nr_available_blocks` (integer)
    The minimum number of stays for rate blocks

  - `result.block.max_occupancy` (integer)

  - `result.block.name` (string)
    The name of the room.

  - `result.block.room_description` (string)
    Room description.

  - `result.block.lunch_included` (boolean)
    Boolean value set to "true" if lunch is included or "false" if it is not included in this block.

  - `result.block.full_board` (boolean)
    Boolean value set to "true" if the block mealplan is full board or "false" if it is not.

  - `result.block.half_board` (boolean)
    Boolean value set to "true" if the block mealplan is half board or "false" if it is not.

  - `result.block.dinner_included` (boolean)
    Boolean value set to "true" if dinner is included or "false" if it is not included in this block.

  - `result.block.all_inclusive` (boolean)
    Boolean value set to "true" if the block mealplan is all inclusive or "false" if it is not.

  - `result.block.taxes` (string)
    Taxes that are included in the price for the block.

  - `result.block.number_of_rooms_left` (integer)
    The number of rooms left.

  - `result.block.max_children_free` (integer)
    The number of children that can stay free of charge

  - `result.block.max_adults` (integer)
    The maximum number of adults allowed to stay in this room for this price.

  - `result.block.room_type_id` (integer)
    Identifier for the type of this room. Displayed when extras=room_type_id is requested.

  - `result.block.smoking` (integer)
    Smoking status for the block. Possible values are: 0 - undefined, 1 - smoking, 2 - non-smoking, 3 - both options available.

  - `result.block.max_children_free_age` (integer)
    The age of children that can stay free of charge

  - `result.block.deal_tagging` (object)

  - `result.block.deal_tagging.deal_name` (string)
    Name of the deal being applied to this rate.
    Example: Geo Rates + Deals of the Day

  - `result.block.deal_tagging.discount_percentage` (integer)
    The % value of the discount.

  - `result.block.deal_tagging.platform` (string)
    When the deal tag is Mobile, this value will describe whether the deal is for 'Web' or 'App' users

  - `result.block.deal_tagging.public_price` (object)
    Details on the public price value for this block (in order to determine the amount of discount).

  - `result.block.deal_tagging.public_price.price` (number)
    Price in the hotel currency.

  - `result.block.deal_tagging.public_price.currency` (string)
    Three-letter ISO currency code that the price is shown in.
    Example: EUR

  - `result.block.deal_tagging.best_price_without_genius` (object)
    Best price excluding Genius deal. Included in a response only if Genius deal is applied.

  - `result.block.deal_tagging.best_price_without_genius.price` (number)
    Price in the hotel currency.

  - `result.block.deal_tagging.best_price_without_genius.currency` (string)
    Three-letter ISO currency code that the price is shown in.
    Example: EUR

  - `result.block.free_wifi` (boolean)
    Boolean value set to "true" if free wifi is provided or "false" if free wifi is not provided.

  - `result.block.internet_included` (boolean)
    Boolean value set to "true" if free internet is provided or "false" if free internet is not provided.

  - `result.block.mcid` (integer)
    A code that represents the ID of the price campaign

  - `result.block.ppt` (string)
    Pricing Product Tag indicating applied pricing products (e.g. G1GM = Genius L1 + Geo + Mobile)

  - `result.block.cancellation_info` (array)
    Cancellation information and schedule for the block

  - `result.block.cancellation_info.from` (string)
    The date and time of the beginning of the cancellation period for the given fee. Format: YYYY-MM-DD HH:MM:SS, in the timezone reported by timezone.

  - `result.block.cancellation_info.until` (string)
    The date and time of the end of the cancellation period for the given fee. Format: YYYY-MM-DD HH:MM:SS, in the timezone reported by timezone.

  - `result.block.cancellation_info.fee` (number)
    Cancellation fee for the given period, in the currency indicated.
    Example: 309.96

  - `result.block.cancellation_info.currency` (string)
    Three-letter ISO currency code that the fee is given in.
    Example: EUR

  - `result.block.cancellation_info.timezone` (string)
    Timezone that from and until are given in.
    Example: CET

  - `result.block.cancellation_info.guest_currency` (string)
    Three-letter ISO currency code that guest_currency_fee is given in. Present only when the guest currency differs from the block currency.
    Example: USD

  - `result.block.cancellation_info.guest_currency_fee` (number)
    Cancellation fee for the given period, converted to guest_currency. Present only when the guest currency differs from the block currency.
    Example: 352.78

  - `result.block.cancellation_info.guest_currency_fee_pretty` (string)
    Cancellation fee for the given period, converted to guest_currency and formatted for display: rounded and with the currency symbol. Present only when the guest currency differs from the block currency.
    Example: $352.78

  - `result.can_pay_now` (boolean)
    Boolean value set to "true" if payment can be made during reservation process or "false" if it can not.

  - `result.checkin` (string)
    The date that was searched for as checkin. Format: YYYY-MM-DD

  - `result.checkout` (string)
    The date that was searched for as checkout. Format: YYYY-MM-DD

  - `result.direct_payment` (boolean)
    Boolean value set to "true" if the direct payment is available or "false" if it is not.

  - `result.hotel_id` (integer)
    Booking.com hotel ID. The unique identifier of this hotel.

  - `result.hotel_url` (string)
    URL of the hotel's page on Booking.com.
    Example: https://www.booking.com/hotel/nl/toren.html

  - `result.is_flash_deal` (boolean)
    Boolean value set to "true" for a flash deal or "false" if not a flash deal.

  - `result.policies` (array)
    Hotel level policies. Displayed when extras=policies is requested.

  - `result.policies.class` (string)
    Policy type identifier
    Example: POLICY_HOTEL_PETS

  - `result.policies.pets` (object)
    Pets policy information

  - `result.policies.pets.allowed` (string)
    Whether pets are allowed
    Enum: "YES", "NO", "UPON_REQUEST"

  - `result.policies.pets.charge_mode` (string)
    The charge mode for pets
    Enum: "FREE", "CHARGES_MAY_APPLY"

  - `result.policies.internet` (object)
    Internet policy information

  - `result.policies.internet.connection_type` (string)
    The type of internet connection
    Enum: "WIFI", "WIRED"

  - `result.policies.internet.coverage` (string)
    The coverage area for internet access
    Enum: "ALL_ROOMS", "SOME_ROOMS", "PUBLIC_AREAS", "BUSINESS_CENTER", "ENTIRE_PROPERTY"

  - `result.policies.internet.charge_mode` (string)
    The charge mode for internet access
    Enum: "FREE", "PAID"

  - `result.policies.parking` (object)
    Parking policy information

  - `result.policies.parking.type` (string)
    The type of parking available
    Enum: "PRIVATE", "PUBLIC"

  - `result.policies.parking.location` (string)
    The location of parking
    Enum: "ON_SITE", "NEARBY"

  - `result.policies.parking.charge_mode` (string)
    The charge mode for parking
    Enum: "FREE", "PAID"

  - `result.policies.children` (object)
    Children policy information

  - `result.policies.children.allowed` (boolean)
    Whether children are allowed at the property
    Example: true

  - `result.policies.children.minimum_age` (integer)
    The minimum age for children (0 means all ages welcome)
    Example: 0

  - `result.policies.children.cots_and_beds` (array)
    Rules for cots and extra beds by age range

  - `result.policies.children.cots_and_beds.type` (string)
    Type of sleeping arrangement
    Enum: "CRIB", "EXISTING_BED", "EXTRA_BED"

  - `result.policies.children.cots_and_beds.from_age` (integer)
    Minimum age for this rule (inclusive)
    Example: 0

  - `result.policies.children.cots_and_beds.to_age` (integer)
    Maximum age for this rule (inclusive)
    Example: 3

  - `result.policies.children.cots_and_beds.charge_mode` (string)
    How the charge is applied
    Enum: "FREE", "PER_NIGHT", "PER_STAY"

  - `result.policies.children.cots_and_beds.price` (number)
    Price for this rule (null if free)
    Example: 15

  - `result.policies.max_rooms` (integer)
    Maximum rooms before group policies apply (present when class is POLICY_HOTEL_GROUPS)
    Example: 5

  - `result.max_rooms_in_reservation` (integer)
    The max number of rooms in one reservation. Displayed when extras=max_rooms_in_reservation is requested.

  - `meta` (object)

  - `meta.ruid` (string)

## Response 400 fields (application/json):

  - `errors` (array)
    List of errors that occurred during request processing.

  - `errors.id` (string)
    Machine-readable error identifier.
    Example: invalid_parameter

  - `errors.name` (string)
    Human-readable error name.
    Example: Invalid Value

  - `errors.message` (string)
    Detailed error message explaining what went wrong.
    Example: The request contains an invalid parameter.

  - `meta` (object)

  - `meta.ruid` (string)

  - `meta.account_id` (string)
    Account ID that triggered request, useful for debugging and support.
    Example: 123432

## Response 500 fields (application/json):

  - `errors` (array)
    List of errors that occurred during request processing.

  - `errors.id` (string)
    Machine-readable error identifier.
    Example: invalid_parameter

  - `errors.name` (string)
    Human-readable error name.
    Example: Invalid Value

  - `errors.message` (string)
    Detailed error message explaining what went wrong.
    Example: The request contains an invalid parameter.

  - `meta` (object)

  - `meta.ruid` (string)

  - `meta.account_id` (string)
    Account ID that triggered request, useful for debugging and support.
    Example: 123432

