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

# RoomParticipant

> Room-participant API overview; complete participant lifecycle-event schemas and examples are in the Room overview.

A `RoomParticipant` represents a Session's participation in one Room. Its `uuid` matches
the corresponding `Session.session_uuid`.

## When to use

Use Room participants to add or remove individual Sessions and control their
mute state and volume.

To add a participant, use the complete `session_uuid` from the Session creation
response or `session.created` webhook. The participant list cannot supply this
value before the Session joins the Room.

## Methods

* [List room participants](https://docs.vorbal.dev/api/room-participants/list)
* [Add a room participant](https://docs.vorbal.dev/api/room-participants/add)
* [Get room participant details](https://docs.vorbal.dev/api/room-participants/get)
* [Remove a room participant](https://docs.vorbal.dev/api/room-participants/remove)
* [Mute a room participant](https://docs.vorbal.dev/api/room-participants/mute)
* [Unmute a room participant](https://docs.vorbal.dev/api/room-participants/unmute)
* [Set room-participant volume](https://docs.vorbal.dev/api/room-participants/volume)

Use the
[`room.participant.voice_activity_changed`](/api/rooms#roomparticipantvoice_activity_changed)
webhook to receive voice-activity transitions. These events are emitted only
when the Room was created with `voice_activity_events: true`.

## Choose the initial mute state

If a participant must join muted, send `"muted": true`. If you omit `muted` or set it
to `false`, the participant joins unmuted.

## Resource representation

### The RoomParticipant resource

```json
{
  "muted": true,
  "uuid": "string"
}
```

## Properties

### Schema (`RoomParticipant`)

```yaml
components:
  schemas:
    RoomParticipant:
      type: object
      properties:
        muted:
          type: boolean
          description: Whether the participant is currently muted in the room.
        uuid:
          type: string
          description: Session UUID of the participant.
      required:
        - muted
        - uuid
      title: RoomParticipant
```