> For complete lifecycle-event payload schemas and examples, use the canonical overview: Session /api/sessions; Room lifecycle, participants, and room playback /api/rooms; Session playback /api/playback; Recording /api/recording; DTMF /api/keypad-input; Messages /api/messages; WebSocket Session /api/web-socket. Use /api/event-delivery for transport behavior. Endpoint pages name relevant events, but these overviews are the canonical references. # Room Playback overview > Room Playback API overview; complete room-playback event schemas and examples are in the Room overview. Room Playback plays audio in a room's shared mix for every participant. Use [session playback](/api/playback) for one session. ## When to use Use Room Playback when everyone in a Room should hear the same audio, such as an announcement or prerecorded message. Start with [Play audio in room](/api/room-playback/play). For finite files, you can [seek](/api/room-playback/seek) or [pause and resume](/api/room-playback/pause). Live streams do not support seek, pause, or resume. You can [set volume](/api/room-playback/volume) or [stop](/api/room-playback/stop) any playback. For finite files, provide a non-empty `urls` array and the required `type: "files"`. Accepted commands return `202 Accepted`. Every command accepts an optional lowercase UUID v4 `Operation-Id` header. The response returns it as `operation_uuid`, or generates one if omitted. Use `Idempotency-Key` separately for safe retries. Each started playback produces exactly one terminal event: [`room.playback.ended`](/api/rooms#roomplaybackended) or [`room.playback.failed`](/api/rooms#roomplaybackfailed). Its `operation_uuid` identifies the original play request. An API stop has a separate effective `operation_uuid` in its `202 Accepted` response. Each finite URL file that starts playing also emits [`room.playback.file.ended`](/api/rooms#roomplaybackfileended) when it completes or playback is stopped through the API. It identifies the original `urls` entry with `file_index` and `url`, and arrives before the operation's terminal event. When `loop: true`, completed repeats emit separate file events with the same `file_index` and `url`. > Build reliable calling experiences with Vorbal APIs for calls, media, messaging, and webhooks. ## API Docs - Room Playback [Play audio in room](https://docs.vorbal.dev/api/room-playback/play.md) - Room Playback [Pause room playback](https://docs.vorbal.dev/api/room-playback/pause.md) - Room Playback [Start recording room audio](https://docs.vorbal.dev/api/room-playback/start-recording.md) - Room Playback [Stop recording room audio](https://docs.vorbal.dev/api/room-playback/stop-recording.md) - Room Playback [Seek room playback](https://docs.vorbal.dev/api/room-playback/seek.md) - Room Playback [Stop room playback](https://docs.vorbal.dev/api/room-playback/stop.md) - Room Playback [Set room playback volume](https://docs.vorbal.dev/api/room-playback/volume.md) - Room Playback [Resume room playback](https://docs.vorbal.dev/api/room-playback/resume-room-playback.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://docs.vorbal.dev/openapi.json) - [OpenAPI YAML](https://docs.vorbal.dev/openapi.yaml)