---
title: "Update room order"
method: PUT
path: "/shop/rooms/order"
tags: ["Rooms"]
---

# Update room order

`PUT /shop/rooms/order`

Replaces the display order of the site's `Room`s. The order of
`room_ids` in the body is the new order — element 0 becomes
`order=0`, element 1 becomes `order=1`, and so on.

Requires the `SETTINGS_MANAGE` permission on the site.

## Request body

- object
  - `room_ids` string[], required — Ordered list of room IDs. Element 0 becomes the first-displayed room, element 1 the second, and so on.
  - `site_id` string, uuid, required — ID of the site whose room order is being updated. The caller's API key must have access to this site.

## Response `200`

The site's rooms in display order. Used to drive a drag-and-drop
ordering UI alongside the matching `PUT /shop/rooms/order` endpoint.

- object — Single-item envelope mixin. `allOf` this into any show response that wraps its `data` payload in an outer object; the concrete schema (e.g. `ShowUser`) adds its own `data` property with the appropriate `$ref` and keeps its own title so the SDK surface is unchanged.
  - `data` RoomSummary[], required — The rooms in their current display order.
    - `id` string, object-id, required — The ID of the room.
    - `capacity` integer, required
    - `name` string, required — The name of the room.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
