---
title: "Replace the room's audio routing matrix"
method: PUT
path: "/rooms/{id}/routing"
tags: ["Rooms"]
---

# Replace the room's audio routing matrix

`PUT /rooms/{id}/routing`

Atomically replaces the room's audio routing matrix and recomputes every leg's per-listener source whitelist in one mixer-mutex acquisition. The next mix tick (≤ 20 ms) reflects the new routing. Roles are operator-supplied strings (e.g. "customer", "agent", "supervisor"). A leg with no role defaults to full mesh.

## Request body

- RoomRoutingRequest
  - `matrix` object, required — Listener-role → list of allowed source roles. Omitted listener roles default to full mesh. Empty list = hears nothing.

## Response `200`

Updated matrix

- RoomRoutingView
  - `matrix` object, required — Listener-role → list of allowed source roles. Roles absent from the matrix default to full mesh.

## Other responses

- `400` — Invalid JSON
- `404` — Room not found

---

[API](https://skmtc.net/voiceblender/apis/voiceblender-api.md) · [All operations](https://skmtc.net/voiceblender/apis/voiceblender-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voiceblender/voiceblender-api/revisions/bd583fca5230/schema)
