Start & Join Meeting / Webinar


Meetings and Webinars are created in the Web SDK using the ZoomMtg.init() method.


Once created, use the ZoomMtg.join() method to join the Meeting or Webinar. The join method receives an encrypted signature, your API Key, a Meeting number, and any user settings.

Prepare Required Files

Before launching and joining a meeting, use ZoomMtg.preLoadWasm() to load WebAssembly files and ZoomMtg.prepareJssdk() to load JavaScript requirements onto the page.

The Web SDK uses an API Key & Secret for authentication. Login to the Zoom Marketplace and Create a JWT App to get API Keys & Secrets.

Generate a Signature

Joining a meeting requires an encrypted signature to be generated on a backend service. When joining a meeting, request the signature from your backend and pass to the ZoomMtg.init() method on your client. Follow our Generate Signature guide for more information.

The example below walks through a getSignature() function which then creates and joins a meeting.

Pass a client-side meetConfig object to a getSignature function. The meetConfig data is sent to the backend generateSignature function in the body of the request.

On successful response, call the ZoomMtg.init() method. Establish any meeting settings here (ex: leaveUrl, isSupportAV).

Call the ZoomMtg.join() method as a successful response of ZoomMtg.init(). Pass in this text string response to the signature field

Example meetConfig object:
const meetConfig = {
	apiKey: '3239845720934223459'
	meetingNumber: '123456789',
	leaveUrl: '',
	userName: 'Firstname Lastname',
	userEmail: '', // required for webinar
	passWord: 'password', // if required
	role: 0 // 1 for host; 0 for attendee or webinar
import { ZoomMtg } from '@zoomus/websdk'


getSignature(meetConfig) {
			method: 'POST',
			body: JSON.stringify({ meetingData: meetConfig })
		.then(result => result.text())
		.then(response => {
				leaveUrl: meetConfig.leaveUrl,
				isSupportAV: true,
				success: function() {
						signature: response,
						apiKey: meetConfig.apiKey,
						meetingNumber: meetConfig.meetingNumber,
						userName: meetConfig.userName,
						// Email required for Webinars
						userEmail: meetConfig.userEmail, 
						// password optional; set by Host
						passWord: meetConfig.passWord 
						error(res) { 

Joining meetings with reCAPTCHA feature


To make sure reCAPCHA is working for your application, ensure that your application is running on port 80 or 443.

As of version 1.7.9, attendees will have to successfully use the reCAPTCHA feature to join meetings.

  1. After attendees successfully enters in the meeting ID and password a new recaptcha pop up modal will display.
  1. Click Continue.
  2. reCAPTCHA will most likely display either a textbox for users to enter in text or a block of images for a user to click.
  1. After successfully using reCaptcha, the attendee will be able to join the meeting.

Need help?

The first place to look is on our Developer Forum. If you can't find the answer or your request includes sensitive information, contact Developer Support.