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

## Changes

- **2026-05-21** `98f1f6130e2c` — 1 info
  - endpoint added
- **2026-03-26** `d09c97c6ca8c` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/voiceblender/apis/voiceblender-api/changes/rooms/:id/routing/patch.md)

---

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