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

# Replace selected rows of the room's audio routing matrix

`PATCH /rooms/{id}/routing`

Replaces the listed listener-role rows. Pass `"sources": null` on an update to clear that row back to full mesh.

## Request body

- RoomRoutingUpdateRequest
  - `updates` RoutingRowUpdate[], required — Per-listener-role row replacements applied as a single atomic update.
    - `listener_role` string, required — The role whose row is being replaced.
    - `sources` string[], required — New list of allowed source roles for this listener role. Pass null to clear the row (full mesh).

## 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/versions/ad30827d3b57/schema)
