> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voyantcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Accommodation Set

> Update metadata, defaults, or media for an accommodation set.

## Method

`PATCH` `/v1/products/:id/accommodations/sets/:setId`

## Path Parameters

<ParamField path="id" type="uuid" required>Product ID.</ParamField>
<ParamField path="setId" type="uuid" required>Accommodation set ID.</ParamField>

## Body Parameters

<ParamField name="name" type="string">Display name (1-200 characters).</ParamField>
<ParamField name="selectionStrategy" type="string">Selection strategy identifier.</ParamField>
<ParamField name="ruleJson" type="object">Optional rule configuration (stored as JSON).</ParamField>
<ParamField name="defaults" type="object">Optional default assignment metadata.</ParamField>
<ParamField name="media" type="array">Optional array of media descriptors attached to the set.</ParamField>

All fields are optional; only provided keys are updated.

## Headers

<ParamField header="Authorization" type="string">Bearer token (requires `products:write`).</ParamField>
<ParamField header="content-type" type="string">`application/json`</ParamField>

## Request Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH "https://api.voyantcloud.com/v1/products/prod_123/accommodations/sets/acset_01J0D0EY7XG9ZW5P0N5T0KX6QG" \
    -H "Authorization: Bearer $VOYANT_API_KEY" \
    -H "content-type: application/json" \
    -d '{
      "name": "Premium Options",
      "selectionStrategy": "priority",
      "defaults": { "board": "half-board" }
    }'
  ```

  ```javascript Node.js theme={null}
  await fetch("https://api.voyantcloud.com/v1/products/prod_123/accommodations/sets/acset_01J0D0EY7XG9ZW5P0N5T0KX6QG", {
    method: "PATCH",
    headers: {
      Authorization: `Bearer ${process.env.VOYANT_API_KEY}`,
      "content-type": "application/json",
    },
    body: JSON.stringify({ ruleJson: { minNights: 2 } }),
  })
  ```

  ```python Python theme={null}
  import os, requests

  requests.patch(
    "https://api.voyantcloud.com/v1/products/prod_123/accommodations/sets/acset_01J0D0EY7XG9ZW5P0N5T0KX6QG",
    headers={
      "Authorization": f"Bearer {os.environ['VOYANT_API_KEY']}",
      "content-type": "application/json",
    },
    json={"media": [{"type": "image", "assetId": "media_abc123"}]},
  )
  ```
</RequestExample>

## Response Example

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "item": {
      "id": "acset_01J0D0EY7XG9ZW5P0N5T0KX6QG",
      "name": "Premium Options",
      "selection_strategy": "priority"
    }
  }
  ```

  ```json 500 Internal Server Error theme={null}
  { "error": "Failed to update accommodation set" }
  ```
</ResponseExample>
