---
title: "Get rooms a reservation can be reassigned to"
method: GET
path: "/booking-room/v1/{bookingRoomId}/assignable-rooms"
tags: ["booking-room"]
---

# Get rooms a reservation can be reassigned to

`GET /booking-room/v1/{bookingRoomId}/assignable-rooms`

## Request

- Base URL: `https://api.cloudbeds.com`
- URL: `https://api.cloudbeds.com/booking-room/v1/{bookingRoomId}/assignable-rooms`
- Auth: OAuth 2
  - Authorization code: `https://api.cloudbeds.com/auth/oauth/authorize`
  - Token URL: `https://api.cloudbeds.com/auth/oauth/token` scopes: `read:reservation`

Returns the reservation's current room assignment, the property's room types, and the rates and rooms available for a room type: the reservation's current type when roomTypeId is omitted, or the requested type when it is provided.

## Path parameters

- `bookingRoomId` string, required

## Query parameters

- `roomTypeId` string

## Headers

- `x-property-id` string, required

## Response `200`

Assignable rooms and supporting data

- union
  - AssignableRoomsResponseSchema
    - `reservation` ReservationContextSchema, required
      - `bookingRoomId` string, required
      - `checkinDate` string, date, required
      - `checkoutDate` string, date, required
      - `currentRoomTypeId` string, required
      - `currentRoomId` string, nullable: Composite room id "{roomTypeId}-{roomNumber}", or null when no room is assigned.
      - `currentRateId` string, required
      - `originalRateTotal` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
        - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
        - `currencyCode` string, required: ISO 4217 currency code
      - `allotmentBlockCode` string, nullable: Allotment block code the reservation belongs to, if any.
      - `adults` integer, required: Adults on the current assignment.
      - `children` integer, required: Children on the current assignment.
      - `confirmationNumber` string, required: Confirmation number for this specific room within the reservation.
      - `roomGroup` string, required: Group key shared by the rooms that were booked together in this reservation.
      - `guestName` string, required: Guest full name for the current assignment; empty when unset.
      - `currentPackageId` string, nullable, required: Package id of the current rate, or null when the current rate has no package.
      - `detailedRates` NightlyRateSchema[], required: Current assignment's per-night rates (for "preserve original price" saves).
        - `date` string, date, required
        - `rate` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
          - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
          - `currencyCode` string, required: ISO 4217 currency code
        - `adults` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
          - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
          - `currencyCode` string, required: ISO 4217 currency code
        - `kids` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
          - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
          - `currencyCode` string, required: ISO 4217 currency code
    - `roomTypes` RoomTypeOptionSchema[], required: Selectable room types (names only, no pricing).
      - `id` string, required
      - `name` string, required
    - `selectedRoomTypeId` string, required: The room type the rates and rooms below are scoped to.
    - `rates` RatePlanSchema[], required: Rate plans for the selected room type, totalled over the stay.
      - `rateId` string, required
      - `rateType` 'standard' | 'derived' | 'package' | 'allotment', required: Rate plan type.
      - `name` string, required
      - `rateTotal` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
        - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
        - `currencyCode` string, required: ISO 4217 currency code
      - `packageId` string, nullable
      - `packageName` string, nullable
      - `detailedRates` NightlyRateSchema[], required: Per-night rates for the stay under this plan.
        - `date` string, date, required
        - `rate` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
          - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
          - `currencyCode` string, required: ISO 4217 currency code
        - `adults` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
          - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
          - `currencyCode` string, required: ISO 4217 currency code
        - `kids` MoneySchema, required: Money representation with amount in smallest currency unit and ISO 4217 currency code
          - `amount` string, required: Amount in the smallest representable units of the currency (e.g., cents for USD). For example, USD $124.39 would be "12439".
          - `currencyCode` string, required: ISO 4217 currency code
    - `rooms` AssignableRoomSchema[], required: Rooms of the selected type free for the whole stay. Includes the reservation's currently-assigned room when the selected type matches its current type (match on reservation.currentRoomId), so the drawer can render it as selected.
      - `roomId` string, required: Composite room id "{roomTypeId}-{roomNumber}" used by the reassign action.
      - `name` string, required
      - `housekeepingStatus` 'clean' | 'dirty' | 'inspected', required: Housekeeping status key.
  - LegacyAssignableRoomsResponseSchema: An earlier, narrower shape of this response. See AssignableRoomsResponseSchema for the current shape.
    - `reservation` LegacyReservationContextSchema, required: An earlier, narrower assignable-rooms reservation-context shape: ids are integers, originalRateTotal is a raw float, and none of the save-context fields are present. See ReservationContextSchema for the current shape.
      - `bookingRoomId` integer, required
      - `checkinDate` string, date, required
      - `checkoutDate` string, date, required
      - `currentRoomTypeId` integer, required
      - `currentRoomId` string, nullable: Composite room id "{roomTypeId}-{roomNumber}", or null when no room is assigned.
      - `currentRateId` integer, required
      - `originalRateTotal` number, float, required: Total for the stay under the current rate.
      - `allotmentBlockCode` string, nullable: Allotment block code the reservation belongs to, if any.
    - `roomTypes` LegacyRoomTypeOptionSchema[], required: Selectable room types (names only, no pricing).
      - `id` integer, required
      - `name` string, required
    - `selectedRoomTypeId` integer, required: The room type the rates and rooms below are scoped to.
    - `rates` LegacyRatePlanSchema[], required: Rate plans for the selected room type, totalled over the stay.
      - `rateId` integer, required
      - `rateType` 'standard' | 'derived' | 'package' | 'allotment', required: Rate plan type.
      - `name` string, required
      - `rateTotal` number, float, required: Total for the stay (sum of nightly rates).
      - `packageId` integer, nullable
      - `packageName` string, nullable
    - `rooms` AssignableRoomSchema[], required: Rooms of the selected type free for the whole stay. Includes the reservation's currently-assigned room when the selected type matches its current type (match on reservation.currentRoomId), so the drawer can render it as selected.
      - `roomId` string, required: Composite room id "{roomTypeId}-{roomNumber}" used by the reassign action.
      - `name` string, required
      - `housekeepingStatus` 'clean' | 'dirty' | 'inspected', required: Housekeeping status key.

## Other responses

- `400`: Malformed request
- `403`: No permission for the property
- `404`: Booking room not found / out of scope
- `422`: Invalid room type for property, or reservation not reassignable
- `500`: Server error

---

[API](https://skmtc.dev/cloudbeds/apis/cloudbeds-api-v2.md) - [All operations](https://skmtc.dev/cloudbeds/apis/cloudbeds-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudbeds/apis/cloudbeds-api-v2/revisions/69bffac143cc?raw)
