---
updatedAt: 2026-04-24T16:38:27.000Z
agentTools:
  projectIndex: https://developers.cloudbeds.com/llms.txt
---

# putRoomBlock

Updates a room block.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Cloudbeds API",
    "description": "<p>\n    Welcome to the documentation for <strong>Cloudbeds API Version v1.3</strong>!\n    If you are looking to learn how to use the Cloudbeds API to access guest information, reservations, or similar data\n    for your Cloudbeds customers, then you've come to the right place.\n</p>\n\n<p>\n    In this document you will find all the API methods we provide along with explanations for parameters and response\n    examples.\n</p>\n\n<p>\n    If you have questions about different implementation steps (e.g. how to implement OAuth 2.0), please refer to our\n    <a href=\"https://integrations.cloudbeds.com/hc/en-us\">Integrations Portal</a>.\n</p>\n\n<p>\n    Be sure to <a href=\"https://go.pardot.com/l/308041/2018-07-24/qb2lg\">subscribe</a> to the monthly\n    Cloudbeds API announcement mailing list to receive information on new additions and improvements to the\n    Cloudbeds API and related developer tools.\n</p>\n\n<p>\n    <strong>Endpoint:</strong> https://api.cloudbeds.com/api/v1.3/{method}\n</p>\n\n<p>\n    <strong>HTTPS:</strong> Our API requires HTTPS. We'll respond with an appropriate error if you're not using it.\n</p>\n\n<p>\n    <strong>Request Format:</strong> HTTP GET, POST and PUT (Content-Type: application/x-www-form-urlencoded)\n</p>\n\n<p>\n    <strong>Response Format:</strong> JSON\n</p>\n\n<p>\n    <strong>Response Header:</strong> X-Request-ID is added to response headers in all calls to help accelerate support\n    and troubleshooting.\n</p>\n\n<p>\n    <strong>\n        <a href=\"https://integrations.cloudbeds.com/hc/en-us/articles/14104678058267-API-Documentation#postman-collection\">\n            <img src=\"https://run.pstmn.io/button.svg\" alt=\"Run in Postman\">\n        </a>\n    </strong> use this link to access our Public collection in Postman.\n</p>",
    "version": "v1.3"
  },
  "servers": [
    {
      "url": "https://api.cloudbeds.com/api/v1.3/"
    }
  ],
  "components": {
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header"
      },
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "",
            "tokenUrl": "",
            "scopes": {
              "delete:adjustment": "delete:adjustment",
              "delete:appPropertySettings": "delete:appPropertySettings",
              "delete:roomblock": "delete:roomblock",
              "read:allotmentBlock": "read:allotmentBlock",
              "read:appPropertySettings": "read:appPropertySettings",
              "read:communication": "read:communication",
              "read:currency": "read:currency",
              "read:customFields": "read:customFields",
              "read:dashboard": "read:dashboard",
              "read:group": "read:group",
              "read:guest": "read:guest",
              "read:hotel": "read:hotel",
              "read:houseAccount": "read:houseAccount",
              "read:housekeeping": "read:housekeeping",
              "read:item": "read:item",
              "read:package": "read:package",
              "read:payment": "read:payment",
              "read:rate": "read:rate",
              "read:reservation": "read:reservation",
              "read:room": "read:room",
              "read:roomblock": "read:roomblock",
              "read:taxesAndFees": "read:taxesAndFees",
              "read:user": "read:user",
              "write:adjustment": "write:adjustment",
              "write:allotmentBlock": "write:allotmentBlock",
              "write:appError": "write:appError",
              "write:appPropertySettings": "write:appPropertySettings",
              "write:communication": "write:communication",
              "write:customFields": "write:customFields",
              "write:group": "write:group",
              "write:guest": "write:guest",
              "write:hotel": "write:hotel",
              "write:houseAccount": "write:houseAccount",
              "write:housekeeping": "write:housekeeping",
              "write:item": "write:item",
              "write:payment": "write:payment",
              "write:rate": "write:rate",
              "write:reservation": "write:reservation",
              "write:room": "write:room",
              "write:roomblock": "write:roomblock"
            }
          }
        }
      }
    },
    "schemas": {
      "PutRoomBlockRequest": {
        "type": "object",
        "properties": {
          "propertyID": {
            "description": "Property ID",
            "type": "string",
            "nullable": true
          },
          "roomBlockID": {
            "description": "Room block ID",
            "type": "string"
          },
          "roomBlockReason": {
            "description": "Room block reason",
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "description": "Room block start date",
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "endDate": {
            "description": "Room block end date",
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "rooms": {
            "description": "All rooms for room block. When multiple rooms are submitted they will be created under the same roomBlockID. For properties using split inventory (virtual rooms linked to physical rooms), only provide the source rooms you want to block. Linked rooms will be automatically added. Do not include auto-added linked rooms in the request - the API will reject requests that include both a source room and its linked room(s). Auto-added rooms cannot be individually swapped out; to remove an auto-added room, you must remove or swap its source room.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "roomID": {
                  "description": "Room ID",
                  "type": "string",
                  "nullable": true
                },
                "roomTypeID": {
                  "description": "Room type ID",
                  "type": "string",
                  "nullable": true
                }
              }
            },
            "nullable": true
          },
          "firstName": {
            "description": "First name - for courtesy hold updates",
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "description": "Last name - for courtesy hold updates",
            "type": "string",
            "nullable": true
          },
          "lengthOfHoldInHours": {
            "description": "Length of hold in hours - for courtesy hold updates",
            "type": "integer",
            "nullable": true
          },
          "email": {
            "description": "Email address - for courtesy hold updates",
            "type": "string",
            "nullable": true
          },
          "phone": {
            "description": "Phone number - for courtesy hold updates",
            "type": "string",
            "nullable": true
          }
        }
      },
      "PutRoomBlockResponse": {
        "type": "object",
        "properties": {
          "success": {
            "description": "Returns if the request could be completed",
            "type": "boolean"
          },
          "propertyID": {
            "description": "Property ID",
            "type": "string"
          },
          "roomBlockID": {
            "description": "Room block ID",
            "type": "string"
          },
          "roomBlockType": {
            "description": "Room block type. 'blocked_dates' - Room block. 'out_of_service' - Out of service block. 'courtesy_hold' - Courtesy hold.",
            "type": "string",
            "enum": [
              "blocked_dates",
              "out_of_service",
              "courtesy_hold"
            ]
          },
          "roomBlockReason": {
            "description": "Room block reason",
            "type": "string"
          },
          "startDate": {
            "description": "Room block start date",
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "description": "Room block end date",
            "type": "string",
            "format": "date"
          },
          "rooms": {
            "description": "All rooms for room block. For properties using split inventory, this includes both source rooms (explicitly requested) and linked rooms (automatically added based on shared inventory configuration).",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "eventID": {
                  "description": "Event ID (unique identifier for this specific room's block entry)",
                  "type": "string"
                },
                "roomID": {
                  "description": "Room ID",
                  "type": "string"
                },
                "roomTypeID": {
                  "description": "Room Type ID",
                  "type": "string"
                },
                "isSource": {
                  "description": "Indicates whether this room was explicitly requested (true) or automatically added due to split inventory configuration (false). Auto-added rooms cannot be individually removed or swapped; they are managed through their source room.",
                  "type": "boolean"
                },
                "sourceEventIds": {
                  "description": "Event IDs of source events that triggered this auto-added room. Null for source rooms. Present only for properties using split inventory.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true
                },
                "linkedEventIds": {
                  "description": "Event IDs of auto-added rooms triggered by this source room. Null for auto-added rooms. Present only for properties using split inventory.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true
                }
              }
            }
          },
          "message": {
            "description": "To be used in case any error occurs (if success = false).  If success = true, it does not exist.",
            "type": "string"
          }
        }
      }
    }
  },
  "paths": {
    "/putRoomBlock": {
      "put": {
        "tags": [
          "Room"
        ],
        "summary": "putRoomBlock",
        "description": "Updates a room block.",
        "responses": {
          "200": {
            "description": "200 Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PutRoomBlockResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": [
              "write:roomblock"
            ]
          },
          {
            "OAuth2": [
              "write:roomblock"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PutRoomBlockRequest"
              }
            }
          }
        }
      }
    }
  }
}
```