Zoom Apps SDK

The Zoom Apps SDK is a JavaScript library that facilitates communication between your Zoom App and the Zoom client. The SDK allows you to take advantage of the many APIs and events Zoom exposes in its embedded browser.

Installation

There are two ways to install the Zoom Apps SDK into your frontend project

NPM

You can install it from NPM, if you are using a module bundler such as Webpack:

$ npm install @zoom/appssdk

CDN

Alternatively, you can load the SDK from a CDN, using a script tag in your HTML document:

<script src="https://appssdk.zoom.us/sdk.js"></script>

You can also load a minified SDK, using a script tag in your HTML document:

<script src="https://appssdk.zoom.us/sdk.min.js"></script>

Usage

If you installed Zoom Apps SDK from NPM, import zoomSdk into the component where you wanted to use the SDK and call config as your first call to verify your application with Zoom.

import zoomSdk from "@zoom/appssdk"

async function configureApp() {
const configResponse = await zoomSdk.config({
popoutSize: {width: 480, height: 360},
capabilities: ["shareApp"]
})
}

When you load the SDK using a script tag, zoomSDK is served as a global object and can be called across components. Even in this case zoomSdk.config should be the first call.

<script src="https://appssdk.zoom.us/sdk.js"></script>

async function configureApp() {
const configResponse = await zoomSdk.config({
version: "0.16",
popoutSize: {width: 480, height: 360},
capabilities: ["shareApp"]
})
}

The cloud SDK is designed to provide on-demand patch updates, and it does not support exact versions. You will always get the latest patch version within the major version specified in the version parameter of zoomSdk.config. In other words, if you supplied an exact version like 0.16.1, you will get the latest patch within the 0.16 major version.

zoomSdk.config response object. Read more about zoomSdk.config

{
"clientVersion": "5.11.1.8356",
"browserVersion": "applewebkit/17613.2.7.1.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)",
"auth": {
"status": "authorized",
"upgradable": true
},
"unsupportedApis": [],
"runningContext": "inMainClient"
}

Role and running context change

Listen to zoomSdk.onMyUserContextChange and zoomSdk.onRunningContextChange events for role and running context changes respectively. zoomSdk.config needs to be called again to update API permissions.

Note

  • Zoom Desktop Client is a native application. Depending on the Zoom Desktop Client version a user has installed, they might have access to different Zoom Apps APIs and events. With the cloud version of the SDK, you automatically get the latest patches as we release new client versions, and your apps avoid potential breaks due to missing patches.

  • When using SDK via npm, check for updates in our monthly release of Zoom Desktop Client. You must manually update your app when needed to the latest SDK to maintain compatibility with newer client versions.

  • The SDK module installed via npm includes the sdk.d.ts file which provides type definitions for sdk.es.js and sdk.module.js. The cloud-based SDK does not provide this file.

How do compatibility patches work?

This is an example of how compatibility patches delivered via cloud-based SDK help your app run on the latest client versions.

Note: This example is only for illustrating the concept, and does not imply Zoom is planning to change the sendAppInvitation API schema.

Example: Your app is developed against the 3.4.0 client version and uses the sendAppInvitation API.

Client version 3.4.0. The sendAppInvitation API schema is

sendAppInvitation ({ participantUUIDs: [participantUUID1, participantUUID2, ...], })

Client version 4.0.0 introduces a breaking change to the sendAppInvitation API that requires one additional parameter message to customize your invitation. The new API schema is

sendAppInvitation ({ participantUUIDs: [participantUUID1, participantUUID2, ...],  message: "This app is awesome, try it!"})

Apps based on the client version 3.4.0 will break when used on the 4.0.0 client because the client is expecting the message parameter as part of the API call. Whereas, when you use the cloud-based SDK, the compatibility patch can accept your API request and transform it internally to use a default value for the message parameter.

Original call from app to SDK

sendAppInvitation ({ participantUUIDs: [participantUUID1, participantUUID2, ...], })

SDK transforms the call internally to

sendAppInvitation ({ participantUUIDs: [participantUUID1, participantUUID2, ...], message: ""})

Release notes

Refer to release notes to discover changes made in the Apps SDK.

Resources to create a Zoom App

Need help?

Hierarchy

  • ZoomSdk

Methods - Core

Methods - App Instances Communication

Methods - Meeting Actions

Methods - Meeting Views

Methods - Sharing

Methods - Reactions

Methods - App Window

Methods - Layers

Methods - Recording

Methods - Client Settings

Methods - Invitations & Notifications

Methods - Auth

Methods - Collaborate

Methods - Breakout Rooms

Methods - Waiting Room

Methods - Webinar-only Actions

Methods - Zoom Rooms

Methods - Chat

Methods - Zoom Phone

Methods - Zoom Contact Center

Methods - Zoom Mail

Methods - Utility

Core Methods

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • To initialize and start using the SDK, you must first call zoomSdk.config to verify your application with Zoom. Without completing this step, your application won’t be able to use any of the APIs or event listeners provided by the SDK. In the request body of this API call, specify the list of APIs and event listeners that you plan to use in your app as shown below. Ensure that the list of capabilities provided in this request corresponds to the list of APIs and events that you have added in your app build flow on Marketplace (Zoom App > Feature > Zoom App SDK).

    The Zoom Apps SDK relies on a token that is generated and used internally by the Zoom client to authorize API calls on behalf of the app. This token is bound to the openURL that you provide when you call zoomSdk.config. If your URL changes, your configuration will be invalidated, and you will need to call zoomSdk.config with the new URL again.

    If your Zoom App is a single page app, we suggest modifying your navigation methods to automate this.

    const configResponse = await zoomSdk.config({
    version: '0.16',
    // The `version` param is only required if using the Cloud SDK (not NPM SDK).
    // See README for more details.
    popoutSize: { width: 480, height: 360 },
    capabilities: [
    //APIs
    "shareApp",
    "listCameras",
    "setCamera",
    "setVideoMirrorEffect",
    "getMeetingParticipants",
    "cloudRecording",
    "allowParticipantToRecord",
    "getRunningContext",
    "getMeetingContext",
    "getSupportedJsApis",
    "showNotification",
    "openUrl",
    "setVirtualBackground",
    "listCameras",
    "setCamera",
    "sendAppInvitation",
    "sendAppInvitationToAllParticipants",
    "getUserContext",
    "getRecordingContext",
    "getMeetingContext",
    "getMeetingJoinUrl",
    "getMeetingUUID",
    "expandApp",
    "connect",
    "postMessage",
    //Events
    "onShareApp",
    "onSendAppInvitation",
    "onCloudRecording",
    "onActiveSpeakerChange",
    "onAppPopout",
    "onCohostChange",
    "onParticipantChange",
    "onReaction",
    "onConnect",
    "onExpandApp",
    "onMessage",
    "onMeeting",
    ],
    });

    Parameters

    Returns Promise<ConfigResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • Returns an array of APIs and events supported by the current running context.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    await zoomSdk.getSupportedJsApis();
    

    Error codes ZoomApiError

    Status Code Status Message
    10013 Request to get supported APIs list failed.[Error from web: xxxx]

    Returns Promise<GetSupportedJsApisResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • Opens a URL in the system browser of a user's device.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    await zoomSdk.openUrl({ url: "https://awesome-zoom-app.com/login" });
    

    You must whitelist the URL domain in your Marketplace app configuration, otherwise the browser will show a warning "Accessing Untrusted Website". And the user has to manually click the link to trigger marketplace to redirect them to the specified url. Error codes ZoomApiError

    Status Code Status Message
    10015 Request to open URL failed, please make sure the domain has been whitelisted by the Zoom App.[Error from web: xxxx]

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • Returns the context in which the Zoom App is launched. This is useful for controlling your app's behavior based on the presence of a single user or multiple collaborative users.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    await zoomSdk.getRunningContext();
    

    Returns Promise<RunningContextResponse>

Desktop Client Version: 5.8.3

iOS Client Version: 5.10.6

  • Starts a new meeting or joins an existing meeting and launches the app in the meeting.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    await zoomSdk.launchAppInMeeting({ joinURL: 'xxx' })
    
    with joinURL without joinURL
    inMainClient Joins meeting associated with the joinURL and launches app in it Starts a new meeting and launches app in it

    Error codes ZoomApiError

    Status Code Status Message
    10054 This API can only be used in the main client.
    10058 Launch app in meeting failed.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.11.3

iOS Client Version: 5.11.3

Zoom Room Controller Version: 5.14.0

  • Beta API may undergo some changes

    This API returns app context token that contains signed app context data for secure backend validation. See https://developers.zoom.us/docs/zoom-apps/zoom-app-context/ for more details.

    Running context: all

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.getAppContext()
    .then((appContext) => console.log(appContext))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10118 Failed to get app context

    Returns Promise<GetAppContextResponse>

App Instances Communication Methods

Desktop Client Version: 5.6.7

  • The API can only be called in meeting. Allows the App to communicate with the instance of the app running on the main client.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    await zoomSdk.connect()
    

    Error codes ZoomApiError

    Status Code Status Message
    10039 Failed to connect with the app in main client.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

  • Send a message with the current state of the mirrored app. The structure of the payload depends on the needs of the app.

    Payload limit is <512KB

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    await zoomSdk.postMessage({ JSON })
    

    Error codes ZoomApiError

    Status Code Status Message
    10041 Failed to do this action because app instances aren’t connected.
    10038 Failed to post message to connect app.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.7.3

  • Tells the client to end the data communication between connected apps. Note that the client will close the connection between the apps when endSyncData is called or 10 seconds after the onMeeting event with event.action == 'ended' is received, whichever comes first.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    await zoomSdk.endSyncData()
    

    Error codes ZoomApiError

    Status Code Status Message
    10041 Failed to do this action because app instances aren’t connected.
    10053 This API can only be used after meeting ends.

    Returns Promise<void>

Desktop Client Version: 5.6.7

  • In order to maintain state after a meeting, the instance of the app that is running in the meeting must communicate with the instance of the app running in the main client. The following events facilitate that process.

    Notify the event listener when the API call connect has finished attempting to connect to the app instance running in the main client. This event can only be received in meeting.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    Parameters

    Returns void

Desktop Client Version: 5.6.7

  • In order to maintain state after a meeting, the instance of the app that is running in the meeting must communicate with the instance of the app running in the main client. The following events facilitate that process.

    Receive a sent message from the mirrored app. The structure of the payload depends on the needs of the app.

    Updated in Desktop Client Version 5.15.5: This event triggers when sendMessage is invoked on another participant's app instance, and receives the JSON data message payload sent. See sendMessage documentation for more information regrading message delivery guarantees.

    Running context: inMeeting, inWebinar, inMainClient, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Parameters

    Returns void

Desktop Client Version: 5.6.7

  • In order to maintain state after a meeting, the instance of the app that is running in the meeting must communicate with the instance of the app running in the main client. The following events facilitate that process.

    Meeting is closed, then notify the mirrored app and update state one more time.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    Parameters

    Returns void

Desktop Client Version: 5.15.5

  • Triggers a broadcast of JSON message data to instances of the same app for all participants in a meeting. Participants with their apps open will receive an onMessage event containing a JSON payload.

    Message delivery is guranteed to current meeting participants; participants who leave the meeting before message send or who join after the message send will not see the message. Order delivery is not guranteed. A successful reponse upon invocation indicates the message was sent, but does not indicate delivery status or whether it was received by any participants.

    Apps that first call the connect API will be able to broadcast messages to instances of the same app in the main client.

    Running context: inMeeting, inWebinar, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: yes

    product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10229 Message payload too large - exceeds 1Kb

    Parameters

    Returns Promise<GeneralMessageResponse>

Meeting Actions Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • This API is only available in meetings. It returns an object containing basic information about the meeting.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    await zoomSdk.getMeetingContext();
    

    Returns Promise<GetMeetingContextResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • Get information of the participants in the current meeting. Note that for breakout rooms, the participants in the current room will be returned, not those of the parent meeting.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    await zoomSdk.getMeetingParticipants();
    

    Returns Promise<GetMeetingParticipantsResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • It returns basic information about the meeting participant while in a meeting.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.getUserContext().then((result) => {
    // e.g. { screenName: 'Happy Zoomineer', role: 'host', participantUUID: "xxxx", status: "authorized"}
    })
    .catch(function(error){
    // there was an error
    })

    Returns Promise<GetUserContextResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • This API endpoint is only available in meetings. It allows the app to access the JoinUrl while in a meeting.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    zoomSdk.getMeetingJoinUrl()
    .then((result) => {
    // e.g. { joinUrl: "xxxxxx"}
    })
    .catch(function(error){
    // there was an error
    })

    Returns Promise<GetMeetingJoinUrlResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • This API endpoint is only available in meetings. It allows the app to access the meetingUUID while in a meeting.

    In breakout rooms,meetingUUID identifies the specific breakout room, and parentUUID helps connect individual rooms to the main meeting. Note that the value of parentUUID must be used for REST API calls inside of breakout rooms, while meetingUUID is otherwise used.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.getMeetingUUID()
    .then(function(result){
    // e.g. { meetingUUID: 'abcdefghijklmnopqrstuvwx'}
    })
    .catch(function(error){
    // there was an error
    })

    Returns Promise<GetMeetingUUIDResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • This event is triggered when a user joins or leaves a meeting or when a participant's role changes for that meeting.

    Note The event triggers twice in some situations, such as when a participant leaves a meeting with one role and rejoins the meeting with a new role. The participantUUID of the user might change when the role changes.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Returns void

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Desktop Client Version: 5.7.3

iOS Client Version: 5.10.6

Desktop Client Version: 5.7.3

iOS Client Version: 5.10.6

  • This event is triggered when the current user’s role changes.

    onMyUserContextChange will be available to apps regardless of whether the app user is an owner, host or attendee in a meeting, but would only provide data for the user that’s running the app (and not the other participants in the meeting).

    IMPORTANT: Some changes to user context (for example, change to status following onMyUserContextChange), will require the application to configure again, by invoking config once more.

    Supported roles: Host, Co-Host

    Supports Guest Mode: Yes

    Returns void

Desktop Client Version: 5.9.0

Zoom Room Controller Version: 5.14.0

  • Notifies the app when the current user's video settings change, when it’s toggled on or off, and when the audio is muted or unmuted.

    For example, when the user chooses a different camera, mutes or unmutes their primary audio, or toggles: "Original ratio", "HD" in video settings, or primary camera on or off.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Returns void

Desktop Client Version: 5.13.5

iOS Client Version: 5.13.5

Zoom Room Controller Version: 5.14.0

  • This event triggers when a user in the meeting starts or stops sharing their screen.

    Supported roles: Host, Co-Host, Panelist, Participant, and Attendee

    Running context: inMeeting, inWebinar

    Product: desktop, zoomRoomController

    Supports Guest Mode: Yes

    Returns void

Desktop Client Version: 5.13.5

Zoom Room Controller Version: 5.14.0

  • This event triggers when a user in the meeting starts or stops sharing their computer audio or screen with audio.

    Supported roles: Host, Co-Host, Panelist, Participant, and Attendee

    Running context: inMeeting, inWebinar

    Product: desktop, zoomRoomController

    Supports Guest Mode: Yes

    Returns void

Desktop Client Version: 5.9.3

  • The event triggers when the user closes the app for participants. It is only triggered for the user who performed the action. Example: The host uses an app to poll participants. When the host closes the app for participants, the app displays the results.

    Supported roles: Host, Co-Host, Panelist

    Supports Guest Mode: No

    Usage:

    zoomSdk.onCloseAppForParticipants((event) => {
    console.log(event)
    });
    • everyone: App closes for all users, including the current user.
    • attendees: App closes for only attendees.
    • everyoneButMe: App closes for everyone except the current user.

    Parameters

    Returns void

Desktop Client Version: 5.12.6

iOS Client Version: 5.12.6

Desktop Client Version: 5.13.10

  • Fired when a photo is successfully taken. For non-hosts only returns the result of takeMyPhoto.

    Running context: inMeeting, inWebinar, inCamera, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    Product: desktop

    Parameters

    Returns void

Desktop Client Version: 5.11.6

iOS Client Version: 5.11.6

Zoom Room Controller Version: 5.14.0

Desktop Client Version: 5.11.6

iOS Client Version: 5.11.6

Zoom Room Controller Version: 5.14.0

Desktop Client Version: 5.11.6

iOS Client Version: 5.11.6

Zoom Room Controller Version: 5.14.0

  • Gets the on or off status of the primary video.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    Returns Promise<GetVideoStateResponse>

Desktop Client Version: 5.11.6

iOS Client Version: 5.11.6

Zoom Room Controller Version: 5.14.0

  • Gets the mute or unmute status of the primary audio.
    

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    Returns Promise<GetAudioStateResponse>

Desktop Client Version: 5.10.3

iOS Client Version: 5.10.6

  • Allows hosts and co-hosts to mute and unmute all, or specific, meeting participants. The action doesn't affect the person initiating the request.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Confirmation / Consent moments

    • All participants

      "[AppName] wants to unmute all participants" [Don’t Allow] [Allow]

    • Single participant

      "[AppName] wants to unmute this participant: [Screen name]" [Don’t Allow] [Allow]

    • Multiple participants

      "[AppName] wants to unmute these participants: [Screen name 1], [Screen name 2], [Screen name 3],…" [Don’t Allow] [Allow]

    zoomSdk.toggleParticipantMediaAudio({
    "participantUUIDs":['participantUUID1','participantUUID2'....],
    "audio": true | false
    })
    .then((response) => { console.log(response); })
    .catch((e) => { console.log(e); })

    Error codes ZoomApiError

    Status Code Status Message
    10105 Fail to mute or unmute all participants.
    10106 Fail to mute or unmute specific participants.
    10107 A maximum of 10 participants can be muted or unmuted at a time. Consider mute/unmute all instead!
    10108 Self participant is not allowed to include. Consider setAudioState instead!
    10109 This participant didn't join audio.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

  • Add one participant to the current spotlight, without overwriting the current set of participants in the spotlight.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Confirmation / Consent moments: none

    zoomSdk.addParticipantSpotlight({
    participantUUID: participantUUID1
    })
    .then((response) => { console.log(response); })
    .catch((e) => { console.log(e); })

    Error codes ZoomApiError

    Status Code Status Message
    10211 Spotlight feature is not available in this room
    10212 Spotlighted user doesn’t have video
    10230 Too many users spotlighted (maximum: 9)
    10231 Spotlight feature is not available when number of panelists is less than 3
    10232 Webinar attendees cannot be spotlighted

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

  • Removes one or more participants from the current spotlight.

    When there is no array or empty array, it should remove all spotlights.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Confirmation / Consent moments: none

    zoomSdk.removeParticipantSpotlights({
    participantUUIDs: [participantUUID1, participantUUID2, ...]
    })
    .then((response) => { console.log(response); })
    .catch((e) => { console.log(e); })

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

  • Returns an array of participants who are currently in the spotlight.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Confirmation / Consent moments: none

    zoomSdk.getParticipantSpotlights()
    .then((response) => { console.log(response); })
    .catch((e) => { console.log(e); })

    Returns Promise<GetParticipantSpotlightsResponse>

Desktop Client Version: 5.12.6

  • The functionality of this API is to help add participants on a Zoom Meeting to pins.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.addParticipantPins( {participantUUIDs: [ participantUUID1, ... ], secondaryDisplay: true|false })
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10123 User not permitted to pin multiple participants
    10124 Multi-pinning is not allowed on second screen

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

  • The functionality of this API is to help remove participants on a Zoom Meeting from pins.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.removeParticipantPins( {participantUUIDs: [ participantUUID1, ... ], secondaryDisplay: true|false })
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

Desktop Client Version: 5.12.6

  • The functionality of this API is to toggle on/off incoming speaker audio for all or selected participants.

    Running context: inMeeting

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: Yes

    zoomSdk.setIncomingParticipantAudioState({participantUUIDs: [ participantUUID1, ... ], audio: true|false})
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10119 A maximum of 10 participants' speakers can be locally turned on/off at a time. Consider it for all participants instead!
    10120 Failed to set incoming speaker audio for participants.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.13.0

Zoom Room Controller Version: 5.15.0

  • Change user's video settings

    The API is available in inMainClient running context from client version 5.13.5

    Note: At least one parameter is required. The API only changes the values that are passed in

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Running context: inMainClient, inMeeting, inImmersive, inWebinar, inCollaborate, inCamera

    Supports Guest Mode: Yes

    await zoomSdk.setVideoSettings({hdVideo: true})
    

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.13.0

iOS Client Version: 5.13.0

Zoom Room Controller Version: 5.15.0

  • Retrieves the user’s current video settings . The API retrieves only the video settings that can be changed by setVideoSettings

    The API is available in inMainClient running context from client version 5.13.5

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Running context: inMainClient, inMeeting, inImmersive, inWebinar, inCollaborate, inCamera

    Supports Guest Mode: Yes

     await zoomSdk.getVideoSettings()
    

    Returns Promise<GetVideoSettingsResponse>

Desktop Client Version: 5.13.0

Zoom Room Controller Version: 5.15.0

  • Changing a user’s audio settings

    The API is available in inMainClient running context from client version 5.13.5

    Note: At least one parameter is required. The API only changes the values that are passed in

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Running context: inMainClient, inMeeting, inImmersive, inCollaborate, inCamera, inWebinar

    Supports Guest Mode: Yes

    await zoomSdk.setAudioSettings({originalSound: true})
    

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.13.0

iOS Client Version: 5.13.0

Zoom Room Controller Version: 5.15.0

  • Retrieves the current audio settings of the user. It retrieves only the audio settings that can be changed by setAudioSettings

    The API is available in inMainClient running context from client version 5.13.5

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Running context: inMainClient, inMeeting, inImmersive, inCollaborate, inCamera, inWebinar

    Supports Guest Mode: Yes

    Product: Desktop

    await zoomSdk.getAudioSettings()
    

    Returns Promise<GetAudioSettingsResponse>

Desktop Client Version: 5.14.5

  • Change your screen name in meeting, persists only for that meeeting. Triggers onMyUserContextChange event. getUserContext will return the changed name.

    Running context: inMeeting, inImmersive, inCollaborate, inCamera, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.5

  • Changes participant's screen name in meeting, persists only for that meeting. Triggers onMyUserContextChange event for the targeted participant's app. Also, triggers the onParticipantChange event for the host's app.

    Running context: inMeeting, inImmersive, inCollaborate, inCamera, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Product: desktop

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.10

  • For participants, leave the meeting while it continues for the other participants.

    For hosts only, assign another participant or co-host to be the new host and leave.

    Running context: inMeeting, inImmersive, inWebinar, inCollaborate, inCamera, inMainClient

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes (applicable to participants only)

    Product: Desktop

    Error codes ZoomApiError

    Status Code Status Message
    10207 User leave meeting Failed.
    10209 Specified newHost participantUUID ignored because it is not applicable when the user is not in a meeting or a host.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.10

  • Join specified meeting, or a new meeting when unspecified. The app is open when the meeting starts.

    If a participant is in an ongoing meeting, leave the current meeting, then join specified meeting, or a new meeting when unspecified (logged in participants).

    For hosts in meetings, assign another participant or co-host to be the new host, leave the meeting, then join specified meeting, or a new meeting when unspecified (and user is logged in).

    If a participant joins a webinar where they are an attendee, the app will not open because Zoom Apps are not supported for attendees in webinars.

    Running context: inMeeting, inImmersive, inWebinar, inCollaborate, inCamera, inMainClient

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes (applicable to participants only)

    Product: Desktop

    Error codes ZoomApiError

    Status Code Status Message
    10207 User leave meeting Failed.
    10208 User join meeting Failed.
    10209 Specified newHost participantUUID ignored because it is not applicable when the user is not in a meeting or a host.
    10210 JoinUrl is invalid.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.10

  • Allows hosts and co-hosts to ask specified meeting participants to turn on or off video. When enabling video, method will return success if the request to enable video was sent; participants still can decline the prompt.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: yes

    product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10213 Participants are not allowed to enable video by meeting security settings
    10214 Webinar attendee cannot enable video
    10215 Fail to turn off video for participants
    10216 Fail to turn on video for participants
    10217 A maximum of 10 participants' video can be started or stopped at a time
    10218 Method doesn’t support current user as a parameter
    10219 Cannot detect participant’s camera

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.16.10

Desktop Client Version: 5.16.10

Desktop Client Version: 5.16.10

  • Get emails and participant UUIDs of the participants in the current meeting. Note that for breakout rooms, the participants in the current room will be returned, not those of the parent meeting. Consent is required from the host, co-host or individual participants to get the email, depending on the scenario.

    Running context: inMeeting, inImmersive, inCollaborate, inCamera

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    product: desktop

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.16.10

  • Triggered when a meeting participant responds to the consent asking for their email initiated using zoomSdk.getMeetingParticipantsEmail(). This is returned one object at a time, as and when consents are given by participants

    Running context: inMeeting, inImmersive, inCollaborate, inCamera

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    product: desktop

    Returns void

Desktop Client Version: 5.17.5

  • Method returns UUID of continous meeting chat channel for the current meeting. Id can be used by REST API method to send messages to the meeting chat during and after the meeting.

    Running context: inMeeting, inImmersive, inCollaborate, inCamera, inWebinar

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: Yes

    product: desktop

    Returns Promise<GetMeetingChatContextResponse>

Desktop Client Version: 5.13.10

Desktop Client Version: 5.13.10

  • Allows a participant to take a high quality photo of themselves.

    Running context: inMeeting, inWebinar, inCamera, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    Returns Promise<GeneralMessageResponse>

Meeting Views Methods

Desktop Client Version: 5.13.10

  • Triggers when the user changes their gallery view page or setGalleryPage method is fired.

    Running context: inMeeting, inWebinar, inImmersive, inCamera, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Returns void

Desktop Client Version: 5.14.5

  • Event triggers when participants order in the gallery is changed (could be triggered by new people joining the meeting, reactions, spotlighting, host changing order and pushing it to others)

    Running context: inMeeting, inImmersive, inWebinar, inCollaborate, inCamera

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Returns void

Desktop Client Version: 5.13.10

  • Changes the local meeting screen to a page number in the gallery view.

    Running context: inMeeting, inWebinar, inImmersive, inCamera, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Error codes ZoomApiError

    Status Code Status Message
    10139 Invalid meeting page number.
    10141 Meeting View must be in gallery view.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.13.10

  • Returns the current gallery page and the total number of gallery pages for the user.

    Running context: inMeeting, inWebinar, inImmersive, inCamera, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10141 Meeting View must be in gallery view.

    Returns Promise<GetGalleryPageResponse>

Desktop Client Version: 5.14.5

  • Method returns participant uuids sorted by their order (linearized top left to bottom right) in gallery view.

    Running context: inMeeting, inImmersive, inWebinar, inCollaborate, inCamera

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Returns Promise<GetGalleryOrderListResponse>

Desktop Client Version: 5.14.5

Zoom Room Controller Version: 5.15.0

  • Called by any participant to get information on their meeting view.

    Running context: inMeeting, inWebinar, inImmersive, inCamera

    Supported roles: Host, Co-host, Panelist, Participant, Attendee

    Supports Guest Mode: Yes

    Product: Desktop

     await zoomSdk.getMeetingView()

    Returns Promise<GetMeetingViewResponse>

Desktop Client Version: 5.14.5

Zoom Room Controller Version: 5.15.0

  • Called by any participant to set information on their meeting view.

    Running context: inMeeting, inWebinar, inImmersive, inCamera, inCollaborate

    Supported roles: Host, Co-host, Panelist, Participant, Attendee

    Supports Guest Mode: Yes

    Product: Desktop

     await zoomSdk.setMeetingView({view: 'speaker'})

    Error codes ZoomApiError

    Status Code Status Message
    10110 Speaker view is not available during screen sharing. Use standardView, sidebysideSpeakerView, or sidebysideGalleryView instead.
    10111 Gallery view is not available during screen sharing. Use standardView, sidebysideSpeakerView, or sidebysideGalleryView instead.
    10112 Standard view is only available during screen sharing.
    10113 Gallery view is not available during screen sharing. Use speakerView or galleryView instead when not screen sharing.
    10114 Gallery view is not available during screen sharing. Use speakerView or galleryView instead when not screen sharing
    10115 This view is currently unsupported.
    10116 This running context is currently unsupported.
    10117 Already in this view
    10202 Only host can enable followHostsVideoOrder

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.5

Zoom Room Controller Version: 5.15.0

  • Event fired for when the user’s meeting view is changed.

    Running context: inMeeting, inWebinar, inImmersive, inCamera

    Supported roles: Host, Co-host, Panelist, Participant, Attendee

    Supports Guest Mode: Yes

    Product: Desktop

     await zoomSdk.onMeetingViewChange((event) => console.log(event))
    

    Returns void

Sharing Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • Screenshare current app. Optionally share sound as well.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: Yes

    await zoomSdk.shareApp({ action: "start", withSound: true });
    

    Error codes ZoomApiError

    Status Code Status Message
    10018 Failed to share the app.
    10023 Screen share is disabled in this meeting.
    10024 Screen share has started in this meeting.
    10025 Screen share did not start in this meeting.
    10059 The client is sharing screen or other apps.
    10137 API call succeeded, the user must choose to stop ongoing share to begin share.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • This event occurs when the user clicks the share icon from the Zoom App sidebar during a meeting, and when the user stops the share.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Parameters

    Returns void

Desktop Client Version: 5.12.6

  • Shares audio from my computer. Pass in an action to start or stop the share. Does not share the screen or app. stereo is default mode option, optionally pass parameter to change to mono

    Supported roles: Host, Co-Host, Participant, Panelist

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.shareComputerAudio({ action: start })
    .then((response) => console.log(response)) // { message: success }
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10129 Computer audio share is disabled in this meeting.
    10130 Computer audio share did not start in this meeting.
    10131 Failed to share computer audio.
    10132 Computer audio share is already started.
    10137 API call succeeded, the user must choose to stop ongoing share to begin share.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.13.5

iOS Client Version: 5.14.0

  • Called by any participant to open the share screen modal.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, and Panelist

    Supports Guest Mode: Yes

    Product: Desktop

    await zoomSdk.promptShareScreen()
    

    Error codes ZoomApiError

    Status Code Status Message
    10143 Failed to prompt share screen.
    10186 Only host and co-host can share screen to breakout rooms
    10187 Breakout rooms are not open

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.0

  • Stops an ongoing share screen.

    Running context: inMeeting, inWebinar, inCamera

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10189 There is no ongoing screen share by this user.
    10190 Collaboration in progress.

    Returns Promise<GeneralMessageResponse>

Reactions Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Desktop Client Version: 5.7.3

iOS Client Version: 5.10.6

Desktop Client Version: 5.13.5

iOS Client Version: 5.13.5

Desktop Client Version: 5.13.5

iOS Client Version: 5.13.5

Desktop Client Version: 5.12.6

iOS Client Version: 5.12.6

  • Enable participant to set their feedback reactions.

    Running context: inMeeting, inWebinar, inImmersive, inCamera

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.setFeedbackReaction( { feedback: 'yes' } )
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10127 Can not process the request. The feedback feature is disabled.
    10128 Can not process the request. The feedback is not supported in a webinar.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

iOS Client Version: 5.12.6

  • Removes own feedback that is currently set.

    Running context: inMeeting, inWebinar, inImmersive, inCamera

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.removeFeedbackReaction()
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

iOS Client Version: 5.12.6

  • Removes feedback of all participants in the meeting.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    zoomSdk.removeAllFeedbackReaction()
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.5

  • Allows a user to react with an emoji.

    Running context: inMeeting, inWebinar, inCamera

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: Desktop

    Error codes ZoomApiError

    Status Code Status Message
    10153 Cannot process the request. The meeting reactions feature is disabled.
    10154 Cannot process the request. The webinar reactions feature is disabled.
    10155 Cannot process the request - invalid reaction.
    10156 Emoji, unicode, or name fields are not matching. Please use only one of these fields or make sure they are matched.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.5

  • Returns a list of emojis available for developer to call setEmojiReaction with.

    Running context: inMeeting, inWebinar, inCamera, Presentation Mode (Rectangle, standard)

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: Desktop Error codes ZoomApiError

    Status Code Status Message
    10153 Cannot process the request. The meeting reactions feature is disabled.
    10154 Cannot process the request. The webinar reactions feature is disabled.

    Returns Promise<GetEmojiConfigurationResponse>

Desktop Client Version: 5.14.5

App Window Methods

Desktop Client Version: 5.6.7

  • Tells the client to expand to the larger size or collapse it back to the default app UI size.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    await zoomSdk.expandApp({
    action: 'expand' | 'collapse',
    })

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

  • Added support for inContactCenter in zoomDesktopClientVersion 6.2.5 This event occurs when the popout/pop-in button is clicked on the app window.

    Running context: inMeeting, inCollaborate, inCamera, inWebinar, inMainClient, inContactCenter

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Returns void

Desktop Client Version: 5.6.7

Desktop Client Version: 5.16.5

  • Added support for inContactCenter in zoomDesktopClientVersion 6.2.5

    This will popout the app. This is the equivalent of the UI action of “Popout” and “Merge Back to Main Window” which are located under the ellipsis menu (...) when an app is open. This is also related to the existing onAppPopout event. The position of the dock is always in the middle of the screen. The “undock” input parameter pops out the app, and the “dock” input parameter merges the app back to the main window.

    Running context: inMeeting, inCollaborate, inCamera, inWebinar, inMainClient, inContactCenter

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10247 App is within a context where appPopout() cannot be executed.

    Parameters

    Returns Promise<AppPopoutResponse>

Desktop Client Version: 5.16.5

  • This will bring the app to the front of the stack when multiple apps are opened or when there are other windows such as Chat or Participants in front of the Apps window. If the app is not in view (for example, behind Chat or if the app is not in view but webview is running), then this API will make the app visible to the user.

    Running context: inMeeting, inCollaborate, inCamera, inWebinar, inMainClient

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10247 App is within a context where bringAppToFront() cannot be executed.

    Returns Promise<BringAppToFrontResponse>

Desktop Client Version: 5.16.5

  • This will send the app to the background and not keep it in the view for the user. The app will continue to run and Zoom Apps JS APIs and REST APIs can be called and executed. This is applicable even when one app is opened. When only one app is opened in meeting contexts, the Apps panel will also be hidden from view for the user. When executed inMainClient context, the user will remain on the My Apps list under the Apps tab.

    Running context: inMeeting, inCollaborate, inCamera, inWebinar, inMainClient

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10247 App is within a context where sendAppToBackground() cannot be executed.

    Returns Promise<SendAppToBackgroundResponse>

Desktop Client Version: 5.16.5

  • This will close the app for the user and the webview will be killed.

    Running context: inMeeting, inCollaborate, inCamera, inWebinar, inMainClient

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10247 App is within a context where closeApp() cannot be executed.

    Returns Promise<GeneralMessageResponse>

Layers Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6/5.14.0(mainClient)

  • This sets a virtual background or blur the user's native background.

    When setVirtualBackground is invoked in a context where the smart virtual background package is not yet installed, a dialog prompts the user to download the package. When the user clicks "Install" in the dialog box, the package is downloaded. The client will subsequently show the consent dialog for setting the background.

    The API is available in inMainClient running context from client version 5.13.5

    Running context: inMeeting, inWebinar, inImmersive, inCamera, inMainClient, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    var myOptions = {
    fileUrl: "https://unsplash.com/photos/itTHOJ5aUk4"
    };

    await zoomSdk.setVirtualBackground(myOptions);

    Error codes ZoomApiError

    Status Code Status Message
    10030 Your device does not support setting virtual backgrounds.
    10031 Virtual backgrounds setting is not enabled in your web settings.
    10032 Can't set virtual background in current immersive scene.
    10044 Failed to decode the virtual image data.
    10045 No smart virtual backgrounds package, you need to download it.
    10056 Can't set virtual background because the video is merged by the share resource.
    10057 Can't remove virtual background because your admin requires users to always use virtual background.
    10064 This action has been flushed by the subsequent action when downloading smart virtual background package.
    10150 Meeting not ready, can’t call this api.
    10151 Zoom App is disabled in Meeting.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6/5.14.0(mainClient)

  • Removes current virtual background and resets to use the camera.

    Note that when calling removeVirtualBackground, the client will pop up a confirmation dialog to let the user allow or disallow. If the user does not allow the action, the client will return an error code of 10017 to the app.

    The API is available in inMainClient running context from client version 5.13.5

    Running context: inMeeting, inWebinar, inImmersive, inCamera, inMainClient, inCollaborate

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.removeVirtualBackground().then(function() => {
    // background was successfully removed
    })
    .catch(function(error) => {
    // there was an error removing the virtual background
    })

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.0

iOS Client Version: 5.14.10

  • Draws an image in the foreground of the user’s video.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.setVirtualForeground({
    imageData: <ImageData>
    })
    .then((ctx) => {
    console.log("setVirtualForeground returned", ctx);
    })
    .catch((e) => {
    console.log(e);
    });

    Returns

    On success, this returns an object with an imageId field (string/UUID) that uniquely identifies the image.

    Error codes ZoomApiError

    Status Code Status Message
    10044 Failed to decode the virtual image data.
    10068 Failed to set or remove the image.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.0

iOS Client Version: 5.14.10

  • Removes the image which was set using setVirtualForeground from the foreground of the user’s video.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.removeVirtualForeground()
    .catch((e) => {
    console.log(e);
    });

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.0

  • Changes the app's rendering context from the meeting sidebar to the main meeting window, with behavior defined by the specified view option. Only a meeting host may invoke an immersive runRenderingContext. To transition other meeting participants to an immersive view, the meeting host’s app must use the sendAppInvitationToAllParticipants API.

    Warning: Only one app instance can create an immersive rendering context at a time. If another attempts to, it will fail with an error.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.runRenderingContext({
    view: 'immersive'
    })

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.0

  • Returns the rendering context of the app to the sidebar.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.closeRenderingContext()
    .then(() => {
    console.log("closeRenderingContext returned");
    })
    .catch((e) => {
    console.log(e);
    });

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.0

  • The drawParticipant method can be used to specify the position and size of a partipant on the screen when in camera or immersive rendering context. The participantUUID option can be filled with the value from getMeetingParticipants or getUserContext.

    When cameraModeMirroring option is set to true, the participant will be streamed as mirrored in both the local client and to other participants. This option is only available in camer mode. Furthermore, none of the layers except of the participant layer can be mirrored in camera mode.

    added in desktop client version 5.13.5 cameraModeMirroring defaults to false.

    Supported roles: Host, Co-Host

    Supports Guest Mode: Yes

    zoomSdk.drawParticipant({
    participantUUID: 'xxx',
    x: 0, y: 0, width: 1280, height: 720, zIndex: 1,
    cameraModeMirroring: true;
    })
    .then((ctx) => {
    console.log("drawParticipant returned", ctx);
    })
    .catch((e) => {
    console.log(e);
    });

    Notes

    • The getMeetingParticipants() API is only available to the meeting host. When multiple participants are each using the same Layers app for a meeting, app-specific messaging may be used to communicate the participants list to other meeting attendees.
    • Drawing a participant’s video that is already being drawn moves it to the new location.
    • If the participant isn’t sending video, a fallback will be used. Fallbacks are tried in the following order: user avatar, telephone icon (if applicable), CRC icon (if applicable), user name.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.0

Desktop Client Version: 5.9.0

  • Draws an image in the rendering context's canvas.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.drawImage({
    imageData: <ImageData (includes width/height properties)>,
    x: 0, y: 0, zIndex: 3
    })
    .then((ctx) => {
    console.log("drawImage returned", ctx);
    })
    .catch((e) => {
    console.log(e);
    });

    Notes

    Drawing an image with the same x / y / zIndex / width / height as an existing image replaces the previous image and may return the same imageId.

    In order to move an image, use clearImage first, and then redraw the image in the intended position.

    Parameters

    Returns Promise<DrawImageResponse>

Desktop Client Version: 5.9.0

Desktop Client Version: 5.10.6

  • Draws the OSR webview with the specified size, location and zIndex [Layers Camera Mode].

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.drawWebView({
    x: 0,
    y: 0,
    width: 1280,
    height: 720,
    zIndex: 2
    })
    .catch((e) => {
    console.log(e);
    });

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.10.6

  • Clears the content set by drawWebView. [Layers Camera Mode].

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.clearWebView()
    .catch((e) => {
    console.log(e);
    });

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.5

  • Sets an image as the static foreground image of the user’s video. Supports image transparency. Any video filter set via this method will rewrite previous filters set using this method.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10196 Failed to set or remove video filter.
    10197 No video filter package, you need to download it.
    10198 Video filter feature is disabled.
    10199 Video filter saved to Settings, but could not be applied.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.5

  • Deletes the video filter that was set using the setVideoFilter method, including video filters set by other apps. This method removes the video filter from the user’s Video Filters list in Settings. If the video filter is currently applied, it sets the Video Filters Setting to “None”.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10195 No video filter exists.
    10196 Failed to set or remove video filter.
    10198 Video filter feature is disabled.

    Returns Promise<GeneralMessageResponse>

Recording Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • The cloud recording API allows you to control cloud recording actions during a meeting.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    await zoomSdk.cloudRecording({ action: "start" });
    

    Error codes ZoomApiError

    Status Code Status Message
    10021 You do not have privilege to start cloud recording.
    10022 Invalid cloud recording action.
    10040 Local recording is in progress

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • This API endpoint is only available in meetings. It returns basic information about the meeting recording while in a meeting.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    zoomSdk.getRecordingContext().then((result) => {
    // e.g. { cloudRecordingStatus: 'stopped'|'started'|'paused'|'connecting'}
    })
    .catch(function(error){
    // there was an error
    })

    Returns Promise<GetRecordingContextResponse>

Desktop Client Version: 5.8.3

iOS Client Version: 5.10.6

  • Allow a specific participant to start a local recording. This API will trigger a pop-up consent dialog in the client to let the host allow or not allow.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    This API is not available in webinars.

    This API requires participantUUID

    await zoomSdk.allowParticipantToRecord({
    participantUUID: 'xxxx',
    action: "grant"
    })

    Error codes ZoomApiError

    Status Code Status Message
    10048 Failed to allow participant to record
    10050 The participant already has permission to do local recording.
    10051 Invalid user or can’t perform action on this user.
    10052 The participant doesn’t have the permission to do local recording. There’s no need to revoke.
    10055 Local record feature is disabled, please check your web settings.
    10061 Only the host can perform this action.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • The cloud recording events occur when a user starts, pauses, stops or resumes recording a Zoom meeting (where your app is being run) to the cloud using the Zoom UI or programmatically using the JS APIs. Additionally, the "connecting" event action will be trigered prior to the start of a cloud recording.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Returns void

Client Settings Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

  • Get all available cameras.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    await zoomSdk.listCameras();
    

    Returns

    {
    "cameras": [
    { "id": "0x14424000046d085b", "name": "Logitech Webcam C925e #2" },
    { "id": "0x8020000005ac8514", "name": "FaceTime HD Camera (Built-in)" }
    ]
    }

    Returns Promise<ListCamerasResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Zoom Room Controller Version: 5.14.0

Invitations & Notifications Methods

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • Triggers a push notification. The embedded browser does not support the Web Notification API, so we have provided a similar API via the JS SDK.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    await zoomSdk.showNotification({
    type: "info",
    title: "Hello",
    message: "This is an info notification"
    });

    Error codes ZoomApiError

    Status Code Status Message
    10042 Not allowed to show notification for do-not-disturb-mode.

    Parameters

    • options: NotificationOptions

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

  • Send app to list of participants in the meeting.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    await zoomSdk.sendAppInvitation({
    participantUUIDs: [participantUUID1, participantUUID2, ...],
    });

    Returns

    { "invitationUUID": "AnQlE6dxT9yx+jxeI8ZXuQ==" }
    

    Error codes ZoomApiError

    Status Code Status Message
    10026 Failed to send the app invitation.
    10027 You do not have privilege to send app invitation!
    10028 A maximum of 10 individual invites can be sent at a time. Consider sending to everyone instead!
    10049 You haven't access the participant information.

    Parameters

    Returns Promise<AppInvitationResponse>

Desktop Client Version: 5.7.3

iOS Client Version: 5.10.6

  • Shows client participant selection dialog window for sending an app invitation.

    Triggers client built in participant selection UI, so that apps running in non-owner context that do not have screen names can invite specific users.

    From Desktop client version 5.16.10 showAppInvitationDialog accepts optional parameters to customize invitation.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    await zoomSdk.showAppInvitationDialog();
    

    Error codes ZoomApiError

    Status Code Status Message
    10257 DialogHeading is more than 40 characters.
    10258 MessageText is more than 90 characters.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.7.3

iOS Client Version: 5.10.6

  • Sends invitation of current app to the meeting owner (person who scheduled the meeting).

    Sends app invitations specifically to the meeting owner. Sent to both meeting & persistent chat when the meeting owner is in the meeting. Sent to persistent chat when the meeting owner is not in the meeting that might be ongoing.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    await zoomSdk.sendAppInvitationToMeetingOwner();
    

    Returns Promise<AppInvitationResponse>

Desktop Client Version: 5.7.6

iOS Client Version: 5.10.6

  • Sends invitation for the current app to all participants currently in the meeting.

    In breakout rooms, this will only send invitations to participants within the current room.

    This API may behave differently depending on the in-meeting chat setting enabled by the host for the meeting participants. The meeting host can determine whether meeting participants can chat with: No one, Hosts and Co-Hosts, Everyone, Everyone and Anyone directly.

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    await zoomSdk.sendAppInvitationToAllParticipants()
    .then(function(){
    // success
    })
    .catch(function(error){
    // there was an error
    })

    Returns Promise<AppInvitationResponse>

Desktop Client Version: 5.6.7

iOS Client Version: 5.10.6

Desktop Client Version: 5.13.10

  • Called by any participant to open the invite-people modal.

    Running context: inMeeting, inWebinar, inImmersive, inCamera

    Supported roles: Host, Co-host, Panelist, Participant

    Supports Guest Mode: Yes

    Product: Desktop, Mobile

    await zoomSdk.showMeetingInvitationDialog()
    

    Error codes ZoomApiError

    Status Code Status Message
    10163 Can’t invite participants

    Returns Promise<GeneralMessageResponse>

Auth Methods

Desktop Client Version: 5.9.0

iOS Client Version: 5.10.6

Desktop Client Version: 5.10.0

iOS Client Version: 5.10.6

  • This method is part of in-client OAuth feature. It initiates on OAuth authorization request from the Zoom Client - Zoom Apps tab - to the Zoom marketplace.

    Invoke the authorize method with PKCE codeChallenge and optional state:

    • If the app's scopes are authorized by the user, it starts a non-interactive OAuth flow, completely invisible to the user.
    • If the app's scopes have changed or added, it goes to the in-client consent screen, and the user is prompted to reauthorize the app's scope.

    Notes The application must create a cryptographically secure string for OAuth2.0 code verifier, which is used to generate the challenge.

    Upon user authorization, an onAuthorized event is triggered with an authorization code. You have to add an event listener for this event to get authorization code.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    zoomSdk.authorize({
    state: 'TIA5UgoM38',
    codeChallenge: 'o0qAEF...'
    }).then((ret) => {
    console.log(ret);
    }).catch((e) => {
    console.log(e);
    })

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.10.6

iOS Client Version: 5.14.0

  • Triggers a contextual prompt for the user to sign in with Zoom (if the user context status is not "authenticated"), or add the app (if the user context status is "authenticated"). The prompt is asynchronous and non-blocking, users can continue using the app while it is visible, or close the prompt.

    If user context is "unauthenticated", Zoom does not know the user, and only some Zoom APIs are allowed. Invoking promptAuthorize will ask the user to log in to Zoom, upon which user context status will update to "authenticated".

    If user is authenticated, but they have not yet added the app and/or consented to app scopes, invoke promptAuthorize once more to ask the authenticated user to consent and add the app. This will invoke the in-client OAuth flow and update user context status to "authorized".

    IMPORTANT: Calling promptAuthorize will update user context status, per the states noted above. You MUST reconfigure the application upon user context status change, by re-calling the config method. The recommended approach is to listen for the onMyUserContextChange event and invoke config once more if the user context status has changed.

    Supported roles: Host, Co-Host, Participant, Panelist, Attendee

    Supports Guest Mode: Yes

    zoomSdk.promptAuthorize()
    .then((res) => console.log(res))
    .catch((err) => console.log(err))

    Returns Promise<GeneralMessageResponse>

Collaborate Methods

Desktop Client Version: 5.10.0

  • The event is triggered when changes such as start, end, leave, join happen in Collaborate mode or end sidecar collaboration. This method informs the app when the host or co-hosts start or end a collaboration, and when meeting participants leave or join a collaboration.

    The event is applicable to users based on their role in the meeting. For participants, the join and leave actions will apply. For hosts and co hosts, the start and end actions will apply. The event does not provide detailed information about the specific change, so the app needs to make an additional API request to retrieve the updated data.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    Returns void

Desktop Client Version: 6.1.5

  • Runs a side-car webview instance of the app, with home URL of the app loaded by default.

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    Product: desktop

    Running context: inCollaborate

    Error codes ZoomApiError

    Status Code Status Message
    10283 API is not supported in collaborateSidecar.
    10284 API is not support in guest mode.
    10285 JsCall already in pending.
    10287 API is not supported in system browser collaboration.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 6.1.5

  • Ends the side-car webview instance of the app.

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    Product: desktop

    Running context: inCollaborate, inCollaborateSidecar

    Error codes ZoomApiError

    Status Code Status Message
    10282 App is not in the inCollaborate or inCollaborateSidecar running contexts.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.10.0

Desktop Client Version: 5.10.0

  • Starts Collaborate mode in a meeting. Can be initiated by host, co-host, participant. Use the optional shareScreen parameter to opt out of sharing the Host’s app screen with participants as a preview or when participants ignore the Collaborate invite.

    update: API is extended to Participant from desktop client version 5.12.6

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    zoomSdk.startCollaborate(
    { "shareScreen": true || false } // default true}(Host / Co-Host)
    ).then(function(response) {})
    .catch(function(error) {
    // handle error
    })

    Error codes ZoomApiError

    Status Code Status Message
    10084 The app is in collaborate mode.
    10090 Collaboration isn't supported in webinar and breakout meeting.
    10089 This app cannot support collaborate mode.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.10.0

  • Ends Collaborate mode in a meeting. Can be initiated by hosts or co-hosts.

    update: API is extended to Participant from desktop client version 5.12.6

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: No

    zoomSdk.endCollaborate()
    .then(function(response) {}) // (Host / Co-Host)
    .catch(function(error) {
    // handle error
    })

    Error codes ZoomApiError

    Status Code Status Message
    10087 you aren‘t in collaborate mode.
    10088 You can only end collaboration.
    10085 The app isn't in collaborate mode.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.10.0

  • Leave Collaborate mode. Can be initiated by participants in a meeting who are currently in Collaborate mode.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    zoomSdk.leaveCollaborate()
    .then(function(response) {}) // (other participant)
    .catch(function(error) {
    // handle error
    })

    Error codes ZoomApiError

    Status Code Status Message
    10087 you aren‘t in collaborate mode.
    10085 The app isn't in collaborate mode.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.10.0

  • Join Collaborate mode. Can be initiated by participants in a meeting when they are invited to collaborate.

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    zoomSdk.joinCollaborate()
    .then(function(response) {}) // (other participant)
    .catch(function(error) {
    // handle error
    })

    Error codes ZoomApiError

    Status Code Status Message
    10086 you are already in collaborate mode.
    10085 The app isn't in collaborate mode.

    Returns Promise<GeneralMessageResponse>

Breakout Rooms Methods

Desktop Client Version: 5.8.6

iOS Client Version: 5.10.6

  • The event is triggered when any change happens to breakout rooms configuration. This method informs the app when the host changes the configuration manually, or when another app changes the configuration.

    The event does not provide detailed information about the specific change, so the app needs to make an additional API request to retrieve the updated data.

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: Yes

    Returns void

Desktop Client Version: 5.8.3

iOS Client Version: 5.10.6

Desktop Client Version: 5.8.6

  • Deletes all existing breakout rooms and creates new ones. Response is same as getBreakoutRoomList.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Error codes ZoomApiError

    Status Code Status Message
    10122 Bo count and the name size do not match.
    10095 The count is over the max count.
    10096 The assignment type is incorrect.
    10097 Create Breakout Room failed.

    Parameters

    Returns Promise<BreakoutRoomsResponse>

Desktop Client Version: 5.8.6

  • Change breakout room settings.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Note: Each parameter is optional. If the parameter is missing, the related setting is not changed.

    Response is a JSON object with information about the current configuration.

    Example

    {
    "allowParticipantsChooseRoom": true,
    "allowParticipantsReturnToMainSession": true,
    "automaticallyMoveParticipantsIntoRooms": true,
    "closeAfter": 1,
    "countDown": 60
    "automaticallyMoveParticipantsIntoMainRoom": false
    }

    Error codes ZoomApiError

    Status Code Status Message
    10099 Config Breakout Room failed.

    Parameters

    Returns Promise<ConfigureBreakoutRoomsResponse>

Desktop Client Version: 5.8.6

  • Open breakout rooms.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Error codes ZoomApiError

    Status Code Status Message
    10121 Breakout Rooms are already open.
    10100 Start Breakout Rooms failed.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.8.6

iOS Client Version: 5.10.6

  • Close breakout rooms.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Error codes ZoomApiError

    Status Code Status Message
    10092 Breakout Rooms are not open.
    10101 End Breakout Rooms failed.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.9.3

iOS Client Version: 5.10.6

  • List all breakout rooms. Host and Co-Host get list of rooms and participants for each breakout room. Participants get only list of rooms. The method works for participants only when breakout rooms are open.

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: Yes

    Example payload

    {
    rooms: [{
    breakoutRoomId: "room uuid",
    name: "room name",
    participants: [{
    participantUUID,
    displayName,
    participantStatus = ["assigned"|"joined"]
    }, …],
    state = [“open”|”closed”],
    unassigned: [{
    participantUUID,
    displayName
    }, …]
    }]
    }

    Returns an array of breakout rooms with their names, UUID, and an array of participant id's.

    Error codes ZoomApiError

    Status Code Status Message
    10092 Breakout Rooms are not open.

    Returns Promise<BreakoutRoomsResponse>

Desktop Client Version: 5.8.6

  • Add one more breakout room. This method is allowed only when breakout rooms are closed. Returns UUID of newly created breakout room.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Error codes ZoomApiError

    Status Code Status Message
    10095 The count is over the max count.
    10098 Update Breakout Room failed.

    Parameters

    Returns Promise<Uuid>

Desktop Client Version: 5.8.6

  • Delete one breakout room. This method is allowed only when breakout rooms are closed.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Error codes ZoomApiError

    Status Code Status Message
    10102 Delete Breakout Room failed.
    10093 The id of the Breakout room is incorrect.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.8.6

Desktop Client Version: 5.9.0

  • Assigns a participant to a breakout room (other than the host / co-host). Only one user assigned per call. For open breakout rooms, the method triggers a user flow to join the room.

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    Note:

    • assignParticipantToBreakoutRoom cannot be executed while the current user is changing rooms.
    • To assign yourself (as host / co-host) to a breakout room, use method changeBreakoutRoom.

    Error codes ZoomApiError

    Status Code Status Message
    10075 The participant ID is error, please get the newest participant ID.
    10078 Participant is not in Breakout Room.
    10103 Assign user to Breakout Room failed.
    10094 The id of the user is incorrect.
    10093 The id of the Breakout room is incorrect.

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.8.6

  • Called by a host / co-host / participant. Allows single participant user to join or leave a breakout room.

    Supported roles: Host, Co-Host, Participant

    Supports Guest Mode: Yes

    Note:

    1. Rooms need to be open
    2. To use this method, rooms must be configured to allow participant to choose rooms (allowParticipantsToChooseRoom=true when using configureBreakoutRooms)
    3. This method returns success when changing breakout rooms is initiated, but the transition for the user might not be completed in some scenarios. Use onBreakoutRoomChange to confirm successful transition. If the event doesn’t fire, repeat changeBreakoutRoom call

    Error codes ZoomApiError

    Status Code Status Message
    10092 Breakout Rooms are not open.
    10093 The id of the Breakout room is incorrect.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.14.0

  • Starts or stops broadcasting voice to breakout rooms. Voice will be broadcasted to all rooms until it is stopped.

    Running context: inMeeting, inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: Yes

    Product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10191 Broadcast voice to breakout rooms failed
    10192 Stop broadcast voice to breakout rooms failed
    10193 muted, can’t broadcast voice to breakout rooms
    10194 broadcasting voice stopped
    10200 Can’t operate in Breakout Rooms.
    10201 Broadcast disabled by settting.

    Returns Promise<GeneralMessageResponse>

Waiting Room Methods

Desktop Client Version: 5.15.10

  • Returns the status of the waiting room (whether it is enabled or disabled)

    Running context: inMeeting, inImmersive, inCollaborate, inCamera

    Supported roles: Host, Co-Host

    Supports Guest Mode: yes

    product: desktop

    Returns Promise<GetWaitingRoomStateResponse>

Desktop Client Version: 5.15.10

  • Sets the status of the waiting room (whether it is enabled or disabled)

    Running context: inMeeting, inImmersive, inCollaborate, inCamera

    Supported roles: Host, Co-Host

    Supports Guest Mode: yes

    product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10233 Waiting room is locked
    10234 Waiting room is enabled/disabled already
    10235 Method is not supported in this meeting
    10236 Method is not supported inside breakout room

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

  • List participants in the waiting room

    Running context: inMeeting, inImmersive, inCollaborate, inCamera

    Supported roles: Host, Co-Host

    Supports Guest Mode: yes

    product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10240 Waiting room is not supported for this meeting

    Returns Promise<GetWaitingRoomParticipantsResponse>

Desktop Client Version: 5.16.0

Desktop Client Version: 5.16.0

Desktop Client Version: 5.16.0

  • Fires when the waiting room has either been enabled or disabled through UI or API. Event doesn’t fire if API call doesn’t lead to a value change.

    Running context: inMeeting, inImmersive, inCollaborate, inCamera

    Supported roles:Host, Co-Host

    Supports Guest Mode: yes (co-host could be a guest)

    product: desktop

    Returns void

Webinar-only Actions Methods

Desktop Client Version: 5.12.6

  • This API permits Hosts and Co-Hosts to allow Webinar Attendees to speak.

    Running context: inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    zoomSdk.allowAttendeesToSpeak( {participantUUIDs: [ participantUUID1, ... ]})
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10134 Unable to allow attendee(s) to speak.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

  • This API permits Hosts and Co-Hosts to disallow Webinar Attendees to speak.

    Running context: inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    zoomSdk.disallowAttendeesToSpeak( {participantUUIDs: [ participantUUID1, ... ]})
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10135 Unable to disallow attendee(s) to speak.

    Parameters

    Returns Promise<GeneralMessageResponse>

Desktop Client Version: 5.12.6

  • This API permits Hosts and Co-Hosts to eject Attendees from a Webinar.

    Running context: inWebinar

    Supported roles: Host, Co-Host

    Supports Guest Mode: No

    zoomSdk.removeWebinarAttendees( {participantUUIDs: [ participantUUID1, ... ]})
    .then((response) => console.log(response))
    .catch((err) => console.log(err))

    Error codes ZoomApiError

    Status Code Status Message
    10133 Unable to remove webinar attendees.

    Parameters

    Returns Promise<GeneralMessageResponse>

Zoom Rooms Methods

Zoom Room Controller Version: 5.14.0

Zoom Rooms Client Version: 5.14.5

  • The API is available to apps running in Zoom Rooms. Returns information about the current room and device in which the app is running.

    Running context: inDigitalSignage, inMeeting, inMainClient, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    product: digitalSignage, zoomRoomController

    await zoomSdk.getZoomRoomContext()
    

    Returns Promise<GetZoomRoomContextResponse>

Zoom Room Controller Version: 5.14.0

  • This API allows apps running on Zoom Room Controllers to request configuration credentials for in-room control processors.

    Running context: inMeeting, inMainClient, inWebinar

    Supported roles: Host, Co-Host, Participant, Panelist

    Supports Guest Mode: No

    product: zoomRoomController

    Returns Promise<GetZoomRoomControllerCredentialsResponse>

Chat Methods

Desktop Client Version: 5.13.0

  • Get Contextual Chat Context. If App is launched from Message ellipsis, method should return the message from where it is launched.

    Supported roles: N/A

    Running context: inChat

    Supports Guest Mode: No

    await zoomSdk.getChatContext()
    

    Returns Promise<GetChatContextResponse>

Desktop Client Version: 5.13.0

  • Sends Interactive message and its preview to user’s compose box in chat context. When user posts the card, actual content of the message will be rendered as interactive message

    Supported roles: N/A

    Running context: inChat

    Supports Guest Mode: No

    await zoomSdk.composeCard({
    "type": "interactiveCard",
    "message": "some message",
    "signature": "some signature",
    "timestamp": "some timestamp",
    "previewCard": "stringified object" // { "title": "some title", "description":"some description" }
    })

    Parameters

    Returns Promise<GeneralMessageResponse>

Zoom Phone Methods

Desktop Client Version: 5.15.10

  • Allows to get information on tabs accessed, current call status and an indentifier for the current call.

    Running context: inPhone

    product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10001 The Zoom client encountered an error while processing the request

    Returns Promise<GetPhoneContextResponse>

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.15.10

Desktop Client Version: 5.16.10

Zoom Contact Center Methods

Desktop Client Version: 6.2.5

Desktop Client Version: 6.0.0

  • API to get details of the current ZCC engagement (for e.g. engagementId, start time, engagement channel, queue name etc.) when a user accesses the app.

    Note: Get details of the current ZCC engagement. When processing the response, check the ‘engagementId’ field as it is possible that the agent user has switched between engagements during the time of this API request. Your app should be “engagement-aware” meaning that it is capable of storing data about multiple engagements independently and maintaining proper engagement state to support agents switching between multiple engagements. Running context: inContactCenter

    Supported roles: Agent, Supervisor

    product: desktop

    Parameters

    Returns Promise<EngagementContext>

Desktop Client Version: 6.0.0

Desktop Client Version: 6.0.0

  • Get details of the current ZCC engagement.

    Note: Get details of the current ZCC engagement. When processing the response, check the ‘engagementId’ field as it is possible that the agent user has switched between engagements during the time of this API request. Your app should be “engagement-aware” meaning that it is capable of storing data about multiple engagements independently and maintaining proper engagement state to support agents switching between multiple engagements.

    Running context: inContactCenter

    Supported roles: Agent, Supervisor

    product: desktop

    Parameters

    Returns Promise<EngagementStatus>

Desktop Client Version: 6.0.0

  • The event triggers and is sent to the 3rd party app when any of the fields in the EngagementStatus object changes.

    The event returns only the difference between the previous status and new status.

    Running context: inContactCenter

    Supported roles: Agent, Supervisor

    product: desktop

    Returns void

Desktop Client Version: 6.0.0

Desktop Client Version: 6.0.0

  • This API will enable an agent to start media redirection with the PCI vendor. When the customer calls ZCC, the phone call will be on Zoom carrier trunks. Upon initiating media redirection the telecom carrier will 'redirect' the SIP call to the app. The app will then bridge the call with Zoom over a different SIP trunk where the agent will be able to talk to the customer but unable to hear credit card number and additional details.

    Note: This API will work only for PCI vendors registered with Zoom.

    Running context: inContactCenter

    Supported roles: Agent, Supervisor

    Supports Guest Mode: No

    product: desktop

    Error codes ZoomApiError

    Status Code Status Message
    10242 Method not available outside Zoom Contact Center
    10243 Method not available outside Engagement context
    10244 Request to start media redirection failed

    Parameters

    Returns Promise<StartMediaRedirectionResponse>

Desktop Client Version: 6.0.0

Desktop Client Version: 6.2.5

Desktop Client Version: 6.2.5

  • The app calls the Zoom Apps SDK to get the list of variables which are configured by ZCC admin to expose to the app. This is to be called when an agent launches an app for the 1st time after completely closing the app.

    Running context: inContactCenter

    Supported roles: Agent, Supervisor

    product: desktop, pwa

    Returns Promise<GetAppVariableListResponse>

Zoom Mail Methods

Desktop Client Version: 6.1.0

  • Returns an object containing mail context when the app is opened, including the email provider, user's email address, and optional thread id and message id.

    Running context: inMail

    Supported roles: N/A

    Supports Guest Mode: No

    product: desktop

    Returns Promise<GetMailContextResponse>

Desktop Client Version: 6.1.0

Desktop Client Version: 6.1.0

Utility Methods

  • Low-level method used to register event handlers in the SDK. This is useful because it allows you to use new events in the client without needing to update the JS SDK. You can register multiple listeners per event.

    Parameters

    • event: "onActiveSpeakerChange" | "onAppPopout" | "onCloudRecording" | "onConnect" | "onExpandApp" | "onMeeting" | "onMessage" | "onMyActiveSpeakerChange" | "onMyMediaChange" | "onMyReaction" | "onMyUserContextChange" | "onParticipantChange" | "onReaction" | "sendAppInvitation" | "onSendAppInvitation" | "shareApp" | "onShareApp" | "onMeetingConfigChanged" | "onBreakoutRoomChange" | "onInviteCollaboration" | "onCollaborateChange" | "onGalleryPageChange" | "onRunningContextChange" | "onAuthorized" | "onCloseAppForParticipants" | "onRenderedAppOpened" | "onFeedbackReaction" | "onRemoveFeedbackReaction" | "onIncomingParticipantAudioChange" | "onShareScreen" | "onShareComputerAudio" | "onGalleryOrder" | "onEmojiReaction" | "onMeetingViewChange" | "onPhoneCalleeAnswered" | "onPhoneCallerEnded" | "onPhoneCalleeEnded" | "onPhoneCalleeRejected" | "onPhoneCallerMeetingInviting" | "onPhoneCalleeMeetingInvite" | "onPhoneContext" | "onEngagementContextChange" | "onEngagementStatusChange" | "onEngagementMediaRedirect" | "onMeetingLanguagesChange" | "onWaitingRoomStateChange" | "onWaitingRoomParticipantLeave" | "onWaitingRoomParticipantJoin" | "onParticipantEmail" | "onPhoto" | "onEngagementVariableValueChange"
    • handler: ((data: any) => any)
        • (data: any): any
        • Parameters

          • data: any

          Returns any

    Returns void

  • Use this method to remove a previously registered listener.

    Note that the removeEventListener method requires that you registered a named listener function. If you use an anonymous function, you will not be able to remove it using this method.

    Parameters

    • event: "onActiveSpeakerChange" | "onAppPopout" | "onCloudRecording" | "onConnect" | "onExpandApp" | "onMeeting" | "onMessage" | "onMyActiveSpeakerChange" | "onMyMediaChange" | "onMyReaction" | "onMyUserContextChange" | "onParticipantChange" | "onReaction" | "sendAppInvitation" | "onSendAppInvitation" | "shareApp" | "onShareApp" | "onMeetingConfigChanged" | "onBreakoutRoomChange" | "onInviteCollaboration" | "onCollaborateChange" | "onGalleryPageChange" | "onRunningContextChange" | "onAuthorized" | "onCloseAppForParticipants" | "onRenderedAppOpened" | "onFeedbackReaction" | "onRemoveFeedbackReaction" | "onIncomingParticipantAudioChange" | "onShareScreen" | "onShareComputerAudio" | "onGalleryOrder" | "onEmojiReaction" | "onMeetingViewChange" | "onPhoneCalleeAnswered" | "onPhoneCallerEnded" | "onPhoneCalleeEnded" | "onPhoneCalleeRejected" | "onPhoneCallerMeetingInviting" | "onPhoneCalleeMeetingInvite" | "onPhoneContext" | "onEngagementContextChange" | "onEngagementStatusChange" | "onEngagementMediaRedirect" | "onMeetingLanguagesChange" | "onWaitingRoomStateChange" | "onWaitingRoomParticipantLeave" | "onWaitingRoomParticipantJoin" | "onParticipantEmail" | "onPhoto" | "onEngagementVariableValueChange"
    • handler: ((data: any) => any)
        • (data: any): any
        • Parameters

          • data: any

          Returns any

    Returns void

  • Alias for addEventListener

    Parameters

    • event: "onActiveSpeakerChange" | "onAppPopout" | "onCloudRecording" | "onConnect" | "onExpandApp" | "onMeeting" | "onMessage" | "onMyActiveSpeakerChange" | "onMyMediaChange" | "onMyReaction" | "onMyUserContextChange" | "onParticipantChange" | "onReaction" | "sendAppInvitation" | "onSendAppInvitation" | "shareApp" | "onShareApp" | "onMeetingConfigChanged" | "onBreakoutRoomChange" | "onInviteCollaboration" | "onCollaborateChange" | "onGalleryPageChange" | "onRunningContextChange" | "onAuthorized" | "onCloseAppForParticipants" | "onRenderedAppOpened" | "onFeedbackReaction" | "onRemoveFeedbackReaction" | "onIncomingParticipantAudioChange" | "onShareScreen" | "onShareComputerAudio" | "onGalleryOrder" | "onEmojiReaction" | "onMeetingViewChange" | "onPhoneCalleeAnswered" | "onPhoneCallerEnded" | "onPhoneCalleeEnded" | "onPhoneCalleeRejected" | "onPhoneCallerMeetingInviting" | "onPhoneCalleeMeetingInvite" | "onPhoneContext" | "onEngagementContextChange" | "onEngagementStatusChange" | "onEngagementMediaRedirect" | "onMeetingLanguagesChange" | "onWaitingRoomStateChange" | "onWaitingRoomParticipantLeave" | "onWaitingRoomParticipantJoin" | "onParticipantEmail" | "onPhoto" | "onEngagementVariableValueChange"
    • handler: ((data: any) => any)
        • (data: any): any
        • Parameters

          • data: any

          Returns any

    Returns void

  • Parameters

    • event: "onActiveSpeakerChange" | "onAppPopout" | "onCloudRecording" | "onConnect" | "onExpandApp" | "onMeeting" | "onMessage" | "onMyActiveSpeakerChange" | "onMyMediaChange" | "onMyReaction" | "onMyUserContextChange" | "onParticipantChange" | "onReaction" | "sendAppInvitation" | "onSendAppInvitation" | "shareApp" | "onShareApp" | "onMeetingConfigChanged" | "onBreakoutRoomChange" | "onInviteCollaboration" | "onCollaborateChange" | "onGalleryPageChange" | "onRunningContextChange" | "onAuthorized" | "onCloseAppForParticipants" | "onRenderedAppOpened" | "onFeedbackReaction" | "onRemoveFeedbackReaction" | "onIncomingParticipantAudioChange" | "onShareScreen" | "onShareComputerAudio" | "onGalleryOrder" | "onEmojiReaction" | "onMeetingViewChange" | "onPhoneCalleeAnswered" | "onPhoneCallerEnded" | "onPhoneCalleeEnded" | "onPhoneCalleeRejected" | "onPhoneCallerMeetingInviting" | "onPhoneCalleeMeetingInvite" | "onPhoneContext" | "onEngagementContextChange" | "onEngagementStatusChange" | "onEngagementMediaRedirect" | "onMeetingLanguagesChange" | "onWaitingRoomStateChange" | "onWaitingRoomParticipantLeave" | "onWaitingRoomParticipantJoin" | "onParticipantEmail" | "onPhoto" | "onEngagementVariableValueChange"
    • handler: ((data: any) => any)
        • (data: any): any
        • Parameters

          • data: any

          Returns any

    Returns void

Generated using TypeDoc