> ## 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.

# Product Accommodations

> Manage accommodation sets and candidate items for product itineraries.

## Endpoints

| Method | Path                                                        | Description                            |
| ------ | ----------------------------------------------------------- | -------------------------------------- |
| GET    | `/v1/products/:id/accommodations/sets`                      | List accommodation sets for a product. |
| POST   | `/v1/products/:id/accommodations/sets`                      | Create an accommodation set.           |
| PATCH  | `/v1/products/:id/accommodations/sets/:setId`               | Update an accommodation set.           |
| DELETE | `/v1/products/:id/accommodations/sets/:setId`               | Delete an accommodation set.           |
| GET    | `/v1/products/:id/accommodations/sets/:setId/items`         | List candidate items in a set.         |
| POST   | `/v1/products/:id/accommodations/sets/:setId/items`         | Create a candidate item.               |
| PATCH  | `/v1/products/:id/accommodations/sets/:setId/items/:itemId` | Update a candidate item.               |
| DELETE | `/v1/products/:id/accommodations/sets/:setId/items/:itemId` | Delete a candidate item.               |

<Info>
  Read endpoints require `products:read`; mutations require `products:write`. All routes are scoped to the current workspace and rely on Upstash Redis for caching alongside Postgres persistence.
</Info>

## Key concepts

* **Accommodation sets** group candidate properties/room types per product. Sets can use different `selection_strategy` values (e.g., priority order).
* **Candidate items** hold references to property products, property IDs, room types, rate plans, and pricing metadata used by the booking wizard.
* Candidate priorities determine the ordering of fallback selections when multiple accommodations are available.
* Payload schemas live in `@workspace/types` (`createAccommodationSetSchema`, `updateAccommodationSetSchema`, `createAccommodationSetItemSchema`).
