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 is a shortcut that resolves the active session for you.

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 for only those connected, or getParticipant / GetParticipant for one.

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

Quality-of-service stats for a session or a single participant.

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

Objects

A session has id, roomId, customRoomId, start, end, status, region, and (where embedded) participants. A participant has participantId, name, and timelog (join/leave intervals).

Got a Question? Ask us on discord