Skip to main content

Sessions

A session is one live occupancy of a room, from the first join to the end. A room has many sessions over time. Use the sessions resource for both live and past sessions.

For a room's current participants, participants resolves the active session automatically.

List sessions

const sessions = await client.sessions.list({ roomId, status: "ended" });

for await (const session of sessions) {
console.log(session.id, session.start, session.end);
}

Filters: query, roomId, customRoomId, userId, startDate / endDate (epoch ms), status (ongoing or ended), plus pagination.

Get a session

const session = await client.sessions.get("session_abc123");

List participants

Includes participants who have already left. Use listActiveParticipants / ListActiveParticipants to return only those currently connected, or getParticipant / GetParticipant to fetch a single participant.

const participants = await client.sessions.listParticipants("session_abc123");

End a session

Requires roomId or meetingId.

await client.sessions.end({ roomId, force: true });

Options: roomId / meetingId (one required), sessionId, force, ignoreClosed.

Remove a participant

Requires roomId or sessionId.

await client.sessions.removeParticipant({ participantId: "participant-alice", roomId });

Statistics

Returns quality-of-service statistics for a session or a single participant.

await client.sessions.getStats("session_abc123");
await client.sessions.getParticipantStats("session_abc123", "participant-alice");

The Session object

Returned by sessions.get and sessions.end, and as the items of a sessions.list page.

FieldTypeDescription
idstringUnique session id.
roomIdstringRoom this session belongs to.
customRoomIdstringYour room id, if set.
startstringISO-8601 start time.
endstringISO-8601 end time, null while ongoing.
statusstringongoing or ended.
regionstringRegion the session ran in.
participantsobject[]Where embedded, each is a Participant.

Got a Question? Ask us on discord