---
title: "Update a room"
method: PATCH
path: "/rooms/{id}"
tags: ["Rooms"]
---

# Update a room

`PATCH /rooms/{id}`

## Request

- Base URL: `https://visio-sandbox.beta.numerique.gouv.fr/external-api/v1.0`
- URL: `https://visio-sandbox.beta.numerique.gouv.fr/external-api/v1.0/rooms/{id}`
- Auth: HTTP bearer

Partially updates a room. Only the delegated user's rooms where they are
administrator or owner can be updated; any other role gets a `403`.

**Updatable fields:** `access_level` and `configuration`. Every other field
(`id`, `name`, `slug`, `pin_code`) is read-only and silently ignored when sent.

`configuration` is replaced as a whole, it is not merged with the stored one.
Send the complete object you want the room to end up with.

Full replacement (`PUT`) is not supported. Use `PATCH` instead.

## Path parameters

- `id` string, uuid, required

## Request body

- RoomUpdate: Fields that can be updated on an existing room. Both are optional, omitted fields keep their current value.
  - `access_level` 'public' | 'trusted' | 'restricted': Controls who can join the room without going through the lobby. - `public`: Anyone with the room link can join directly, no authentication required. - `trusted`: Authenticated users join directly. Unauthenticated users wait in the lobby for approval. - `restricted`: Only participants explicitly trusted by the owner bypass the lobby. Everyone else waits for approval regardless of authentication. `public` is rejected with a `400` unless the deployment explicitly enables it for this API. This applies both when creating a room and when updating one.
  - `configuration` RoomConfiguration: Optional room behaviour settings. Unknown fields are rejected. All fields are optional and default to `null` (server-side defaults apply).
    - `can_publish_sources` string[], nullable: Restricts which media tracks participants are allowed to publish. If `null`, all sources are permitted.
    - `everyone_can_mute` boolean, nullable: Whether any participant can mute others, or only the room owner/moderator. If `null`, the server default applies.

## Response `200`

Room updated successfully

- Room
  - `id` string, uuid: Unique room identifier
  - `slug` string: URL-friendly room identifier (auto-generated)
  - `access_level` 'public' | 'trusted' | 'restricted': Controls who can join the room without going through the lobby. - `public`: Anyone with the room link can join directly, no authentication required. - `trusted`: Authenticated users join directly. Unauthenticated users wait in the lobby for approval. - `restricted`: Only participants explicitly trusted by the owner bypass the lobby. Everyone else waits for approval regardless of authentication. `public` is rejected with a `400` unless the deployment explicitly enables it for this API. This applies both when creating a room and when updating one.
  - `url` string, uri: Full URL to access the room
  - `telephony` object: Telephony dial-in information (if enabled)
    - `enabled` boolean: Whether telephony is available
    - `pin_code` string: PIN code for dial-in access
    - `phone_number` string: Phone number to dial
    - `default_country` string: Default country code
  - `configuration` RoomConfiguration: Optional room behaviour settings. Unknown fields are rejected. All fields are optional and default to `null` (server-side defaults apply).
    - `can_publish_sources` string[], nullable: Restricts which media tracks participants are allowed to publish. If `null`, all sources are permitted.
    - `everyone_can_mute` boolean, nullable: Whether any participant can mute others, or only the room owner/moderator. If `null`, the server default applies.

## Other responses

- `400`: Invalid request data
- `401`: Authentication required or token invalid/expired
- `403`: Insufficient permissions for this operation
- `404`: Room not found
- `405`: Method not allowed, `PUT` is not supported on this endpoint.

## Changes

- **2026-09-03** `88efa89515c9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/betagouv/apis/meet-external-api/changes/rooms/:id/patch.md)

---

[API](https://skmtc.dev/betagouv/apis/meet-external-api.md) - [All operations](https://skmtc.dev/betagouv/apis/meet-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/betagouv/apis/meet-external-api/revisions/88efa89515c9?raw)
