Use this file to discover all available pages before exploring further.
The Jitsi IFrame API emits events when meeting state changes — participants joining or leaving, mute toggling, recording starting, errors occurring, and more. Subscribe with addEventListener or register multiple listeners at once with addEventListeners. All event handlers receive a single data object whose shape is specific to each event.
// Subscribe to a single eventapi.addEventListener('videoConferenceJoined', (event) => { console.log('Joined!', event.roomName);});// Subscribe to multiple events at onceapi.addEventListeners({ videoConferenceJoined: handleJoined, videoConferenceLeft: handleLeft, participantJoined: handleParticipant});// Remove a specific listenerapi.removeEventListener('videoConferenceJoined', handleJoined);// Remove all listeners for an eventapi.removeEventListeners(['videoConferenceJoined', 'participantJoined']);
addEventListener and addEventListeners are backwards-compatible wrappers around Node.js EventEmitter. You can also use api.on(event, handler) and api.off(event, handler) directly. Call api.getSupportedEvents() to retrieve the full list of supported event names at runtime.
readyToClose — Fired after all hangup operations complete and the iframe is safe to remove from the DOM. Listen for this event before calling api.dispose().
ready — Fired when the Jitsi Meet iframe has fully initialised and the internal transport is active. This is also used to trigger the onload callback provided in the constructor options.subjectChange — Fired when the meeting subject (title) changes.
conferenceCreatedTimestamp — Fired with the timestamp of when the conference was created.prejoinScreenLoaded — Fired when the pre-join screen is displayed to the user, before they enter the conference.suspendDetected — Fired when a computer suspend/sleep event is detected by the browser.
Participants
participantJoined — Fired when a remote participant joins the conference.
Field
Type
Description
id
string
The participant’s JID
displayName
string
The participant’s display name
formattedDisplayName
string
Display name with role suffix if applicable
api.addEventListener('participantJoined', ({ id, displayName }) => { console.log(`${displayName} joined (${id})`);});
participantLeft — Fired when a remote participant leaves the conference.
Field
Type
Description
id
string
The JID of the participant who left
dominantSpeakerChanged — Fired when the active (loudest) speaker changes.
Field
Type
Description
id
string
The JID of the new dominant speaker
api.addEventListener('dominantSpeakerChanged', ({ id }) => { console.log('Now speaking:', id);});
raiseHandUpdated — Fired when a participant raises or lowers their hand.
Field
Type
Description
id
string
The participant’s JID
handRaised
number
Timestamp when the hand was raised, or 0 if lowered
participantRoleChanged — Fired when a participant’s role changes (e.g. granted moderator).
Field
Type
Description
id
string
The participant’s JID
role
string
New role: 'moderator' or 'none'
displayNameChange — Fired when a participant changes their display name.
Field
Type
Description
id
string
The participant’s JID
displayname
string
The new display name
formattedDisplayName
string
The new formatted display name
emailChange — Fired when a participant updates their email address.avatarChanged — Fired when a participant changes their avatar.participantKickedOut — Fired when a participant is removed from the conference by a moderator.participantMuted — Fired when a participant’s mute state is changed by a moderator.participantMenuButtonClick — Fired when a button in the participant context menu is clicked.
Audio and Video
audioMuteStatusChanged — Fired when the local participant’s microphone mute state changes.
videoAvailabilityChanged — Fired when video input availability changes.
Field
Type
Description
available
boolean
true if a camera is available
videoQualityChanged — Fired when the active video quality (resolution) changes.
Field
Type
Description
videoQuality
number
The new video height constraint in pixels
audioOnlyChanged — Fired when the meeting switches into or out of audio-only mode.audioOrVideoSharingToggled — Fired when audio or video sharing is toggled by any participant.deviceListChanged — Fired when the list of available media devices changes (e.g. headphones plugged in).cameraError — Fired when a camera-related error occurs (e.g. permission denied).micError — Fired when a microphone-related error occurs.computePressureChanged — Fired when the system compute pressure level changes, which may affect media quality.contentSharingParticipantsChanged — Fired when the list of participants sharing their screen changes.
Recording
recordingStatusChanged — Fired when a server-side recording or live stream starts or stops.
recordingLinkAvailable — Fired when a download link for the recording becomes available.
Field
Type
Description
link
string
The URL to download the recording
ttl
number
Time-to-live for the link in milliseconds
recordingConsentDialogOpen — Fired when the recording consent dialog is displayed to a participant.transcribingStatusChanged — Fired when meeting transcription starts or stops.transcriptionChunkReceived — Fired when a new transcription chunk arrives from the speech-to-text service.fileUploaded — Fired when a file is uploaded in the meeting.fileDeleted — Fired when a file is deleted in the meeting.
Lobby
knockingParticipant — Fired when a participant is waiting in the lobby and requests to join. Use this to build a custom admit/deny UI.
peerConnectionFailure — Fired when the WebRTC peer connection encounters a failure.browserSupport — Fired with information about browser WebRTC support capabilities.
Chat and Messaging
incomingMessage — Fired when a chat message is received.
outgoingMessage — Fired when the local participant sends a chat message.
Field
Type
Description
message
string
The message text
chatUpdated — Fired when the chat panel opens, closes, or the unread message count changes.
Field
Type
Description
isOpen
boolean
Whether the chat panel is visible
unreadCount
number
Number of unread messages
endpointTextMessageReceived — Fired when a data channel message is received from another participant.
Field
Type
Description
senderInfo
object
{ id, displayName } of the sender
eventData
object
The raw message payload
nonParticipantMessageReceived — Fired when a message is received from a non-participant source.
Breakout Rooms
breakoutRoomsUpdated — Fired whenever the breakout room structure changes (rooms created, participants moved, rooms closed).The payload is an object mapping room JIDs to room details, each containing a participants map.
tileViewChanged — Fired when tile (grid) view is toggled.
Field
Type
Description
enabled
boolean
true if tile view is now active
filmstripDisplayChanged — Fired when the filmstrip visibility changes.participantsPaneToggled — Fired when the participants panel opens or closes.toolbarButtonClicked — Fired when a toolbar button is clicked inside the meeting.
Field
Type
Description
key
string
The identifier of the button that was clicked
toolbarVisibilityChanged — Fired when the meeting toolbar shows or hides.whiteboardStatusChanged — Fired when the whiteboard is opened or closed.moderationStatusChanged — Fired when AV moderation is turned on or off.moderationParticipantApproved — Fired when a moderated participant is approved to unmute.moderationParticipantRejected — Fired when a moderated participant’s unmute request is rejected.p2pStatusChanged — Fired when the call switches between P2P and JVB (SFU) modes.feedbackSubmitted — Fired when the post-call feedback form is submitted.feedbackPromptDisplayed — Fired when the post-call feedback prompt is shown to the user.notificationTriggered — Fired when an in-meeting notification is shown.customNotificationActionTriggered — Fired when the user clicks a custom action on a notification.faceLandmarkDetected — Fired when a face landmark is detected by the local video analysis.dataChannelOpened — Fired when the data channel connection to the bridge is opened.dataChannelClosed — Fired when the data channel connection to the bridge is closed.proxyConnectionEvent — Fired when a proxy connection event is received. Used for wireless screensharing integrations.externalShareSignal — Fired when a direct-cast screenshare signalling message (offer, ICE candidate, or stop) is received.pipEntered — Fired when the meeting enters Picture-in-Picture mode.pipLeft — Fired when the meeting exits Picture-in-Picture mode.secondScreenSourceChanged — Fired when the second screen source changes.secondScreenClosed — Fired when the second screen window is closed.secondScreenError — Fired when an error occurs with the second screen feature.log — Fired for each log message at levels configured in config.apiLogLevels.
Field
Type
Description
logLevel
string
The log level (e.g. 'info', 'warn', 'error')
arguments
string[]
The log message parts
mouseEnter — Fired when the mouse pointer enters the conference iframe.mouseLeave — Fired when the mouse pointer leaves the conference iframe.mouseMove — Fired when the mouse pointer moves within the conference iframe.