Returns an object detailing the current meeting participants:
The object keys are
local for the local participant and the participant's
session_id for remote participants.
While there are some participant object properties specific to either the Daily Prebuilt or call object mode (more on that below), no matter how you're building with Daily, all participant objects include:
session_id- a unique ID generated each time a participant joins a meeting
user_id- the user's ID if set by a meeting token, otherwise the
user_name- the user's name if set by a meeting token, iframe properties, or via
truefor the local user
trueif set by a meeting token or the user is logged into a Daily account and is a member of the room's team
joined_at- js Date object, the time that the user joined the room
video_height- the current width and height of the live video stream.
video_heightcan change as network conditions change. If there is no current camera stream, this will be an empty object.
record- indicates whether a participant is recording a meeting using
output-byte-streamrecording. This property will stay
falsefor everyone when using
cloudrecording types. If you're building a custom UI, you probably want to monitor recording events instead of this property. (Note: Server-based recording (
cloud) is a pay-as-you-go feature.)
tracks- an object whose keys are participant track types -
screenVideo- and whose values are objects with detailed information about each track.
permissions- an object that describes what the participant is permitted to do during this call. There are currently two keys on the object, each representing a permission:
|Whether you (the local participant) are subscribed to a track|
|The values represent the complete set of mutually exclusive states a track can be in, from the user's point of view.|
|If the track is off, why it's off (this field only acquires a value if the track is off).||An optional object with the properties |
|If the track is blocked, why it's blocked (this field only acquires a value if the track is blocked).||An optional object with the properties |
|*Only available when using the Daily call object.||A MediaStreamTrack that is ready to be played.|
|*Only available when using the Daily call object.||A MediaStreamTrack that exists and may or may not be ready to be played. For now, we recommend |
tracks in action
|Whether the participant appears as "present" in the call, i.e. whether they appear in |
|Which types of media a participant should be permitted to send.|
permissions in action
- Use the
- Set the
permissionsproperty in domain, room, and meeting token configurations
userData- custom data associated with the participant, settable via iframe properties or
A note about the
These three properties' boolean values indicate whether the corresponding audio, video, or screen track is available locally and ready to be sent.
However, when a track isn't yet available ("loading"), the value will briefly be
We highly recommend skipping these properties and using the
tracks property's key for each kind of track instead for more accurate, detailed tracks state.
A note about the
screenVideoTrack properties in call object mode
These properties include the direct MediaStreamTrack that a participant is sending, if available.
We recommend skipping these properties and using the
tracks property's key for each kind of track instead.