Suggest Edits

Introduction

 

The Zoom API provides the ability for developers to add Video and Voice easily, and Screen Sharing to your application. Our API is a server-side implementation designed around REST; it does not support cross-origin resource sharing or access via a client-side web application.

The Zoom API helps manage the pre-meeting experience such as creating, editing and deleting resources like users, meetings, and webinars. It also provides access to post-meeting information for tasks such as reporting and analytics. It does not provide access to the in-meeting experience such as current attendee list, who is the current speaker or ability to mute participants; if you seek these features, please have a look at our SDKs.

If you are looking to test our v2 APIs using POSTMAN, please check out using Postman.

 
https://api.zoom.us/v2/

The Zoom API endpoint is pretty straight forward. We require that you send all requests via https, requests sent to HTTP will receive a 302 HTTP response code. The base URL is api.zoom.us followed by the version number of the API, currently at version 2.

API version 1

V1 of our API is sunset. We will continue to support it till Dec 2018, but the support will be discontinued from January 2019. We strongly recommend that you plan for migration to v2 in the coming months if you are still on our version 1 of our APIs.

 

Webhooks can be used as notifications to keep your systems in sync with actions inside Zoom. Find more information about webhooks on the Developer Portal

Suggest Edits

Authentication

 

Zoom API version 2 implements either OAuth or JSON Web Tokens (JWT) for authentication. It is recommended that you use OAuth, but if you are already using our APIs with JWT, we suggest that you use one of the existing JWT libraries to generate the token.

You can pass the token to the API either in the HTTP Authorization Header using ‘Bearer’ or via Query Parameter in your API call as ‘access_token.’

Suggest Edits

Generating Token using JWT

 

You can find more details and specifics about JWT at jwt.io, below is and example of the minimum properties needed for the Zoom API.

Header

alg refers to the algorithm being used; Zoom API uses HMAC SHA256 (HS256 for short)
typ refers to the type of token, always JWT

{
    "alg": "HS256",
    "typ": "JWT"
}  

Payload

iss is the issuer of the token; this is your Zoom API Key
exp is the expiration timestamp of the token. It is recommended to use one of the JWT libraries to generate your tokens and to set this timestamp for a short period (like seconds), that way if someone intercepts your token it won’t be valid for very long.

Signature

To the right you’ll find an example algorithm for generating a signature, again highly recommend using a library to do this for you

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    api_secret)
 

The below examples are written in NodeJS and PHP and utilizes the Firebase JWT Library installed via Composer. However the concept and idea can be ported to any language and workflow, and you can find libraries for your specific language on jwt.io

The key thing to understand is that the JWT token isn’t static and that it is generated each time you make a request. This makes it unique and more secure; if somehow your token is intercepted it won’t be good for long (as in this example 60 seconds)

const jwt = require('jsonwebtoken');
const config = require('./config');
const rp = require('request-promise');

const payload = {
    iss: config.APIKey,
    exp: ((new Date()).getTime() + 5000)
};

//Automatically creates header, and returns JWT
const token = jwt.sign(payload, config.APISecret);


var options = {
    uri: 'https://api.zoom.us/v2/users',
    qs: {
        status: 'active' // -> uri + '?status=active'
    },
    auth: {
    		'bearer': token
  	},
    headers: {
        'User-Agent': 'Zoom-Jwt-Request',
        'content-type': 'application/json'
    },
    json: true // Automatically parses the JSON string in the response
};

rp(options)
    .then(function (response) {
        console.log('User has', response);
    })
    .catch(function (err) {
        // API call failed...
        console.log('API call failed, reason ', err);
    });
<?php

//using composer
require __DIR__ . '/vendor/autoload.php';

// JWT PHP Library https://github.com/firebase/php-jwt
use \Firebase\JWT\JWT;

//function to generate JWT
function generateJWT () {
  
	//Zoom API credentials from https://developer.zoom.us/me/
	$key = '<zoom_api_key>';
	$secret = '<zoom_api_secret>';
  
	$token = array(
		"iss" => $key,
        // The benefit of JWT is expiry tokens, we'll set this one to expire in 1 minute
    
		"exp" => time() + 60
	);
	return JWT::encode($token, $secret);
}

function getUsers () {
    //list users endpoint GET https://api.zoom.us/v2/users
  
	$ch = curl_init('https://api.zoom.us/v2/users');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  
    // add token to the authorization header
	curl_setopt($ch, CURLOPT_HTTPHEADER, array(
		'Authorization: Bearer ' . generateJWT()
	));
  
	$response = curl_exec($ch);
	$response = json_decode($response);
	return $response;
}

var_dump(getUsers());

The Zoom API uses HTTP Status codes to reflect a successful or error requests. 2XX status codes represent a successful request, 4XX/5XX status codes represent an error took place. If you receive an error HTTP status code, check the body for an error code and message.

Status Code
Description
Most Likely Cause

2XX

Successful Request

400

Bad Request

Invalid/missing data

401

Unauthorized

Invalid/missing credentials

404

Not Found

The resource dosen’t exists, ex. invalid/non-existent user id

409

Conflict

Trying to overwrite a resource, ex. when creating a user with an email that already exists

429

Too Many Requests

Hit an API rate limit

Error response example

{
"code" : 300,
"message" : "Request Body should be a valid JSON object."
}

Error response when sending invalid fields

{
"code": 300,
"message": "Validation Failed.",
"errors": [
{
"field": "user_info.email",
"message": "Invalid field."
},
{
"field": "user_info.type",
"message": "Invalid field."
}
]
}

Suggest Edits

Rate Limits

 

To preserve the integrity and reliability of the platform, our APIs have the following rate limits. You can run a max of ten requests per second (10 requests/second) across all endpoints unless otherwise noted below.

You can run a max of one request per second (1 request/second) on the following:

/v2/*/billing/*
/v2/*/plans/*
/v2/*/metrics/* (excluding /meetings and /webinars)
/v2/report/* (2000 max requests per day)

You can run a max of one request per minute (1 request/minute) on the following:

/v2/metrics/meetings (2000 max requests per day)
/v2/metrics/webinars (2000 max requests per day)
Suggest Edits

How to use the playground

 

Required vs Optional

Swagger (the API definition paradigm we use) assumes everything is optional unless otherwise specified. Unless there is a "required" tag on a parameter assume it is optional.

How to authenticate to the playground

Zoom API Version 2 utilizes JSON Web Tokens (JWT) for authentication. To use the playground, we need to provide a JWT. The easiest way to do this is to head on over to jwt.io and create one (you will first need to go to your developer account page and get your API key/secret to generate the token). Build your JWT by populating the "Decoded" section with the following, replacing <API_KEY> and <API_SECRET> with your information, and setting exp in the payload to sometime in the future. The exp is a Unix timestamp. If you need help creating the timestamp you can use a Unix timestamp converter.

Here is an example of what your form and JWT should look like:

Once you have the JWT you can click on the auth button next to any "try it" button, paste your key, and enjoy the magic!

 
Suggest Edits

List accounts

List all the sub accounts under the master account

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/accounts
curl --request GET \
  --url https://api.zoom.us/v2/accounts
var request = require("request");

var options = { method: 'GET', url: 'https://api.zoom.us/v2/accounts' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/accounts");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

page_size
int32

The number of records returned within a single API call
default: 30
maximum: 300

page_number
int32

Current page number of returned records
default: 1

Response

Account list returned

page_countinteger

The number of items returned on this page

page_numberinteger

The page number of current results

page_sizeinteger

The number of records returned within a single API call
default: 30
maximum: 300

total_recordsinteger

The number of all records available across pages

accountsarray

List of Account objects

Suggest Edits

Create account

Create a sub account under the master account.<aside>Your account must be a master account and have this privilege to create sub account. Zoom only assigns this privilege to trusted partners. The created user will not receive a confirmation email.</aside>

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/accounts
curl --request POST \
  --url https://api.zoom.us/v2/accounts
var request = require("request");

var options = { method: 'POST', url: 'https://api.zoom.us/v2/accounts' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/accounts");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

first_name
string
required

User's first name

last_name
string
required

User's last name

email
string
required

User's email address

password
string
required

User's password

options
object
 
options.share_rc
boolean

Enable Share Virtual Room Connector

options.room_connectors
string

Virtual Room Connector, multiple value separated by comma

options.share_mc
boolean

Enable Share Meeting Connector

options.meeting_connectors
string

Meeting Connector, multiple values separated by comma

options.pay_mode
string

Response

Account Created

idstring

Account ID

owner_idstring

Account Owner ID

owner_emailstring

Account owner email

created_atstring

Account created date time

Account with that email already exists

Suggest Edits

Get single account

Retrieve a sub account under the master account. <aside>Your account must be a master account and have this privilege to read sub accounts. Zoom only assigns this privilege to trusted partners</aside>.

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/accounts/accountId
curl --request GET \
  --url https://api.zoom.us/v2/accounts/accountId
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/accounts/accountId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/accounts/accountId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Response

Account object returned

idstring

Account ID

owner_idstring

Account Owner ID

owner_emailstring

Account Owner email

created_atstring

Account creation date/time

optionsobject
options.share_rcboolean

Enable Share Virtual Room Connector

options.room_connectorsstring

Virtual Room Connector, multiple value separated by comma

options.share_mcboolean

Enable Share Meeting Connector

options.meeting_connectorsstring

Meeting Connector, multiple values separated by comma

options.pay_modestring

User not found

Suggest Edits

Delete account

Disassociate a sub account from the master account. This will leave the account intact but the sub account will not longer be associated with the master account.

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/accounts/accountId
curl --request DELETE \
  --url https://api.zoom.us/v2/accounts/accountId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/accounts/accountId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/accounts/accountId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Response

Account deleted

Account not found

Suggest Edits

Update account options

Update a sub account's options under the master account

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/accounts/accountId/options
curl --request PATCH \
  --url https://api.zoom.us/v2/accounts/accountId/options
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/accounts/accountId/options' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/options")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/accounts/accountId/options");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/options"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

share_rc
boolean

Enable Share Virtual Room Connector

room_connectors
string

Virtual Room Connector, multiple value separated by comma

share_mc
boolean

Enable Share Meeting Connector

meeting_connectors
string

Meeting Connector, multiple values separated by comma

pay_mode
string

Response

Account options updated

Account not found

Suggest Edits

Get account settings

Retrieve a sub account's settings under the master account

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/accounts/accountId/settings
curl --request GET \
  --url https://api.zoom.us/v2/accounts/accountId/settings
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/accounts/accountId/settings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/settings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/accounts/accountId/settings");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/settings"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Response

Account settings returned

schedule_metingobject
schedule_meting.host_videoboolean

Start meetings with host video on

schedule_meting.participant_videoboolean

Start meetings with participant video on. Participants can change this during the meeting
both Telephony and VoIP
telephony Audio PSTN telephony only
voip VoIP only
thirdParty 3rd party audio conference.

schedule_meting.audio_typestring
schedule_meting.join_before_hostboolean

Allow participants to join the meeting before the host arrives

schedule_meting.enforce_loginboolean

Only signed-in (Zoom users) users can join meetings

schedule_meting.enforce_login_with_domainsboolean

Only signed-in users with a specific domain can join meetings

schedule_meting.enforce_login_domainsstring

Only signed-in users with a specified domains

schedule_meting.not_store_meeting_topicboolean

Always display "Zoom Meeting" as the meeting topic

schedule_meting.force_pmi_jbh_passwordboolean

Require a password for Personal Meetings if attendees can join before host

in_meetingobject
in_meeting.e2e_encryptionboolean

Require that all meetings are encrypted using AES

in_meeting.chatboolean

Allow meeting participants to send a message visible to all participants

in_meeting.private_chatboolean

Allow meeting participants to send a private 1:1 message to another participants

in_meeting.auto_saving_chatboolean

Automatically save all in-meeting chats so that hosts do not need to manually save the text of the chat after the meeting starts

in_meeting.file_transferboolean

Hosts and participants can send files through the in-meeting chat

in_meeting.feedbackboolean

Add a Feedback tab to the Windows Settings or Mac Preferences dialog, and also enable users to provide feedback to Zoom at the end of the meeting

in_meeting.post_meeting_feedbackboolean

Display a thumbs up/down survey at the end of each meeting

in_meeting.co_hostboolean

Allow the host to add co-hosts

in_meeting.pollingboolean

Add 'Polls' to the meeting controls.

in_meeting.attendee_on_holdboolean

Allow hosts to temporarily remove an attendee from the meeting

in_meeting.show_meeting_control_toolbarboolean

Always show meeting control toolbar

in_meeting.allow_show_zoom_windowsboolean

Show Zoom Desktop application when sharing screen

in_meeting.annotationboolean

Allow participants to use annotation tools to add information to shared screens

in_meeting.whiteboardboolean

Allow participants to share a whiteboard that includes annotation tools

in_meeting.webinar_question_answerboolean

Q&A in webinar

in_meeting.anonymous_question_answerboolean

Allow Anonymous Q&A in Webinar

in_meeting.breakout_roomboolean

Allow host to split meeting participants into separate, smaller rooms

in_meeting.closed_captionboolean

Allow host to type closed captions or assign a participant/third party device to add closed captions

in_meeting.far_end_camera_controlboolean

Allow another user to take control of your camera during a meeting

in_meeting.group_hdboolean

Activate higher quality video for host and participants. (This will use more bandwidth.)

in_meeting.virtual_backgroundboolean

Allow users to replace their background with any selected image. Choose or upload an image in the Zoom Desktop application settings.

in_meeting.watermarkboolean

Add watermark when viewing shared screen

in_meeting.alert_guest_joinboolean

Identify guest participants in the meeting/webinar

in_meeting.auto_answerboolean

Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.

in_meeting.p2p_connetionboolean

Peer to Peer connection while only 2 people are in a meeting

in_meeting.p2p_portsboolean

P2P listening ports range

in_meeting.ports_rangestring

Listening ports range, separated by comma (ex 55,56). The ports range must be between 1 to 65535.

in_meeting.sending_default_email_invitesboolean

Only show default email when sending email invites

in_meeting.use_html_format_emailboolean

Use HTML format email for Outlook plugin

in_meeting.dscp_markingboolean

DSCP marking

in_meeting.dscp_audiointeger

DSCP Audio
minimum: 1
maximum: 63

in_meeting.dscp_videointeger

DSCP Video
minimum: 1
maximum: 63

in_meeting.stereo_audioboolean

Allow users to select stereo audio in their client settings

in_meeting.original_audioboolean

Allow users to select original sound in their client settings

in_meeting.screen_sharingboolean

Allow screen sharing

in_meeting.remote_controlboolean

Allow users to request remote control

in_meeting.attention_trackingboolean

Lets the host see an indicator in the participant panel if a meeting/webinar attendee does not have Zoom in focus during screen sharing

email_notificationobject
email_notification.cloud_recording_avaliable_reminderboolean

Notify host when cloud recording is available

email_notification.jbh_reminderboolean

Notify host when participants join the meeting before them

email_notification.cancel_meeting_reminderboolean

Notify host and participants when the meeting is cancelled

email_notification.low_host_count_reminderboolean

Notify when host licenses are running low

email_notification.alternative_host_reminderboolean

Notify when an alternative host is set or removed from a meeting

zoom_roomsobject
zoom_rooms.upcoming_meeting_alertboolean

Upcoming meeting alert

zoom_rooms.start_airplay_manuallyboolean

Start AirPlay service manually

zoom_rooms.weekly_system_restartboolean

Weekly system restart

zoom_rooms.list_meetings_with_calendarboolean

Display meeting list with calendar integration

zoom_rooms.zr_post_meeting_feedbackboolean

Zoom Room post meeting feedback

zoom_rooms.ultrasonicboolean

Automatic direct sharing using ultrasonic proximity signal

zoom_rooms.force_private_meetingboolean

Transform all meetings to private

zoom_rooms.hide_host_informationboolean

Hide host and meeting ID from private meetings

zoom_rooms.cmr_for_instant_meetingboolean

Cloud recording for instant meetings

zoom_rooms.auto_start_stop_scheduled_meetingsboolean

Automatic start/stop for scheduled meetings

securityobject
security.admin_change_name_picboolean

Only account administrators can change user's username and picture

security.import_photos_from_devicesboolean

Allow importing of photos from photo library on the user's device

security.hide_billing_infoboolean

Hide billing information

recordingobject
recording.local_recordingboolean

Allow hosts and participants to record the meeting to a local file

recording.cloud_recordingboolean

Allow hosts to record and save the meeting in the cloud

recording.record_speaker_viewboolean

Record active speaker with shared screen

recording.record_gallery_viewboolean

Record gallery view with shared screen

recording.record_audio_fileboolean

Record an audio only file

recording.save_chat_textboolean

Save chat text from the meeting

recording.show_timestampboolean

Add a timestamp to the recording

recording.recording_audio_transcriptboolean

Automatically transcribe the audio of the meeting or webinar to the cloud

recording.auto_recordingstring
recording.cloud_recording_downloadboolean

Cloud Recording Downloads

recording.cloud_recording_download_hostboolean

Only the host can download cloud recordings

recording.account_user_access_recordingboolean

Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.

recording.auto_delete_cmrboolean

Allow Zoom to automatically delete recordings permanently after a specified number of days

recording.auto_delete_cmr_daysinteger

When auto_delete_cmr is 'true' this value will set the number of days before auto deletion of cloud recordings

telephonyobject
telephony.third_party_audioboolean

Users can join the meeting using the existing 3rd party audio configuration

telephony.audio_conference_infostring

3rd party audio conference info

integrationobject
integration.google_calendarboolean

Enables meetings to be scheduled using Google Calendars

integration.google_driveboolean

Enables users who join a meeting from their mobile device to share content from their Google Drive

integration.dropboxboolean

Enables users who join a meeting from their mobile device to share content from their Dropbox account

integration.boxboolean

Enables users who join a meeting from their mobile device to share content from their Box account

integration.microsoft_one_driveboolean

Enables users who join a meeting from their mobile device to share content from their Microsoft OneDrive account

integration.kubiboolean

Enables users to control a connected Kubi device from within a Zoom meeting

featureobject
feature.meeting_capacityinteger

Set the maximum number of participants this user can have in a single meeting

Account not found

Suggest Edits

Update account settings

Update a sub account's settings under the master account

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/accounts/accountId/settings
curl --request PATCH \
  --url https://api.zoom.us/v2/accounts/accountId/settings
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/accounts/accountId/settings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/settings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/accounts/accountId/settings");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/settings"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

schedule_meting
object
 
schedule_meting.host_video
boolean

Start meetings with host video on

schedule_meting.participant_video
boolean

Start meetings with participant video on. Participants can change this during the meeting
both Telephony and VoIP
telephony Audio PSTN telephony only
voip VoIP only
thirdParty 3rd party audio conference.

schedule_meting.audio_type
string
schedule_meting.join_before_host
boolean

Allow participants to join the meeting before the host arrives

schedule_meting.enforce_login
boolean

Only signed-in (Zoom users) users can join meetings

schedule_meting.enforce_login_with_domains
boolean

Only signed-in users with a specific domain can join meetings

schedule_meting.enforce_login_domains
string

Only signed-in users with a specified domains

schedule_meting.not_store_meeting_topic
boolean

Always display "Zoom Meeting" as the meeting topic

schedule_meting.force_pmi_jbh_password
boolean

Require a password for Personal Meetings if attendees can join before host

in_meeting
object
 
in_meeting.e2e_encryption
boolean

Require that all meetings are encrypted using AES

in_meeting.chat
boolean

Allow meeting participants to send a message visible to all participants

in_meeting.private_chat
boolean

Allow meeting participants to send a private 1:1 message to another participants

in_meeting.auto_saving_chat
boolean

Automatically save all in-meeting chats so that hosts do not need to manually save the text of the chat after the meeting starts

in_meeting.file_transfer
boolean

Hosts and participants can send files through the in-meeting chat

in_meeting.feedback
boolean

Add a Feedback tab to the Windows Settings or Mac Preferences dialog, and also enable users to provide feedback to Zoom at the end of the meeting

in_meeting.post_meeting_feedback
boolean

Display a thumbs up/down survey at the end of each meeting

in_meeting.co_host
boolean

Allow the host to add co-hosts

in_meeting.polling
boolean

Add 'Polls' to the meeting controls.

in_meeting.attendee_on_hold
boolean

Allow hosts to temporarily remove an attendee from the meeting

in_meeting.show_meeting_control_toolbar
boolean

Always show meeting control toolbar

in_meeting.allow_show_zoom_windows
boolean

Show Zoom Desktop application when sharing screen

in_meeting.annotation
boolean

Allow participants to use annotation tools to add information to shared screens

in_meeting.whiteboard
boolean

Allow participants to share a whiteboard that includes annotation tools

in_meeting.webinar_question_answer
boolean

Q&A in webinar

in_meeting.anonymous_question_answer
boolean

Allow Anonymous Q&A in Webinar

in_meeting.breakout_room
boolean

Allow host to split meeting participants into separate, smaller rooms

in_meeting.closed_caption
boolean

Allow host to type closed captions or assign a participant/third party device to add closed captions

in_meeting.far_end_camera_control
boolean

Allow another user to take control of your camera during a meeting

in_meeting.group_hd
boolean

Activate higher quality video for host and participants. (This will use more bandwidth.)

in_meeting.virtual_background
boolean

Allow users to replace their background with any selected image. Choose or upload an image in the Zoom Desktop application settings.

in_meeting.watermark
boolean

Add watermark when viewing shared screen

in_meeting.alert_guest_join
boolean

Identify guest participants in the meeting/webinar

in_meeting.auto_answer
boolean

Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.

in_meeting.p2p_connetion
boolean

Peer to Peer connection while only 2 people are in a meeting

in_meeting.p2p_ports
boolean

P2P listening ports range

in_meeting.ports_range
string

Listening ports range, separated by comma (ex 55,56). The ports range must be between 1 to 65535.

in_meeting.sending_default_email_invites
boolean

Only show default email when sending email invites

in_meeting.use_html_format_email
boolean

Use HTML format email for Outlook plugin

in_meeting.dscp_marking
boolean

DSCP marking

in_meeting.dscp_audio
int32

DSCP Audio
minimum: 1
maximum: 63

in_meeting.dscp_video
int32

DSCP Video
minimum: 1
maximum: 63

in_meeting.stereo_audio
boolean

Allow users to select stereo audio in their client settings

in_meeting.original_audio
boolean

Allow users to select original sound in their client settings

in_meeting.screen_sharing
boolean

Allow screen sharing

in_meeting.remote_control
boolean

Allow users to request remote control

in_meeting.attention_tracking
boolean

Lets the host see an indicator in the participant panel if a meeting/webinar attendee does not have Zoom in focus during screen sharing

email_notification
object
 
email_notification.cloud_recording_avaliable_reminder
boolean

Notify host when cloud recording is available

email_notification.jbh_reminder
boolean

Notify host when participants join the meeting before them

email_notification.cancel_meeting_reminder
boolean

Notify host and participants when the meeting is cancelled

email_notification.low_host_count_reminder
boolean

Notify when host licenses are running low

email_notification.alternative_host_reminder
boolean

Notify when an alternative host is set or removed from a meeting

zoom_rooms
object
 
zoom_rooms.upcoming_meeting_alert
boolean

Upcoming meeting alert

zoom_rooms.start_airplay_manually
boolean

Start AirPlay service manually

zoom_rooms.weekly_system_restart
boolean

Weekly system restart

zoom_rooms.list_meetings_with_calendar
boolean

Display meeting list with calendar integration

zoom_rooms.zr_post_meeting_feedback
boolean

Zoom Room post meeting feedback

zoom_rooms.ultrasonic
boolean

Automatic direct sharing using ultrasonic proximity signal

zoom_rooms.force_private_meeting
boolean

Transform all meetings to private

zoom_rooms.hide_host_information
boolean

Hide host and meeting ID from private meetings

zoom_rooms.cmr_for_instant_meeting
boolean

Cloud recording for instant meetings

zoom_rooms.auto_start_stop_scheduled_meetings
boolean

Automatic start/stop for scheduled meetings

security
object
 
security.admin_change_name_pic
boolean

Only account administrators can change user's username and picture

security.import_photos_from_devices
boolean

Allow importing of photos from photo library on the user's device

security.hide_billing_info
boolean

Hide billing information

recording
object
 
recording.local_recording
boolean

Allow hosts and participants to record the meeting to a local file

recording.cloud_recording
boolean

Allow hosts to record and save the meeting in the cloud

recording.record_speaker_view
boolean

Record active speaker with shared screen

recording.record_gallery_view
boolean

Record gallery view with shared screen

recording.record_audio_file
boolean

Record an audio only file

recording.save_chat_text
boolean

Save chat text from the meeting

recording.show_timestamp
boolean

Add a timestamp to the recording

recording.recording_audio_transcript
boolean

Automatically transcribe the audio of the meeting or webinar to the cloud

recording.auto_recording
string
recording.cloud_recording_download
boolean

Cloud Recording Downloads

recording.cloud_recording_download_host
boolean

Only the host can download cloud recordings

recording.account_user_access_recording
boolean

Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.

recording.auto_delete_cmr
boolean

Allow Zoom to automatically delete recordings permanently after a specified number of days

recording.auto_delete_cmr_days
int32

When auto_delete_cmr is 'true' this value will set the number of days before auto deletion of cloud recordings

telephony
object
 
telephony.third_party_audio
boolean

Users can join the meeting using the existing 3rd party audio configuration

telephony.audio_conference_info
string

3rd party audio conference info

integration
object
 
integration.google_calendar
boolean

Enables meetings to be scheduled using Google Calendars

integration.google_drive
boolean

Enables users who join a meeting from their mobile device to share content from their Google Drive

integration.dropbox
boolean

Enables users who join a meeting from their mobile device to share content from their Dropbox account

integration.box
boolean

Enables users who join a meeting from their mobile device to share content from their Box account

integration.microsoft_one_drive
boolean

Enables users who join a meeting from their mobile device to share content from their Microsoft OneDrive account

integration.kubi
boolean

Enables users to control a connected Kubi device from within a Zoom meeting

feature
object
 
feature.meeting_capacity
int32

Set the maximum number of participants this user can have in a single meeting

Response

Account settings updated

Account not found

Suggest Edits

Get account managed domains

Retrieve a sub account's managed domains under the master account

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/accounts/accountId/managed_domains
curl --request GET \
  --url https://api.zoom.us/v2/accounts/accountId/managed_domains
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/accounts/accountId/managed_domains' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/managed_domains")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/accounts/accountId/managed_domains");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/managed_domains"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Response

Account managed domains returned

total_recordsinteger

Total records

domainsarray

List of Domains objects

Account not found

 
Suggest Edits

Get billing information

Retrieve billing information for a sub account under the master account

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/accounts/accountId/billing
curl --request GET \
  --url https://api.zoom.us/v2/accounts/accountId/billing
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/accounts/accountId/billing' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/billing")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/accounts/accountId/billing");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/billing"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Response

Account billing

first_namestring

Billing Contact's first name

last_namestring

Billing Contact's last name

emailstring

Billing Contact's email address

phone_numberstring

Billing Contact's phone number

addressstring

Billing Contact's address

citystring

Billing Contact's city

statestring

Billing Contact's state

zipstring

Billing Contact's zip/postal code

countrystring

Billing Contact's country

aptstring

Billing Contact's apartment/suite

Account not found

Suggest Edits

Update billing information

Update billing information for a sub account under the master account <aside>Only for the sub account which is a paid account and paid by master account</aside>

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/accounts/accountId/billing
curl --request PATCH \
  --url https://api.zoom.us/v2/accounts/accountId/billing
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/accounts/accountId/billing' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/billing")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/accounts/accountId/billing");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/billing"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

first_name
string

Billing Contact's first name

last_name
string

Billing Contact's last name

email
string

Billing Contact's email address

phone_number
string

Billing Contact's phone number

address
string

Billing Contact's address

apt
string

Billing Contact's apartment/suite

city
string

Billing Contact's city

state
string

Billing Contact's state

zip
string

Billing Contact's zip/postal code

country
string

Billing Contact's country

Response

Account billing contact information updated

Account not found

Suggest Edits

Get account plans

Retrieve plan information for a sub account under the master account <aside>Only for the sub account which is paid by master account</aside>

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/accounts/accountId/plans
curl --request GET \
  --url https://api.zoom.us/v2/accounts/accountId/plans
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/accounts/accountId/plans' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/plans")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/accounts/accountId/plans");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/plans"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Response

Account plans returned

plan_baseobject
plan_base.typestring

Account base plan type

plan_base.hostsinteger

Account base plan number of hosts. For a Pro Plan, please select a value between 1 and 9. For a Business Plan, please select a value between 10 and 49. For a Education Plan, please select a value between 20 and 149. For a Free Trial Plan, please select a value between 1 and 9999.

plan_zoom_roomsobject
plan_zoom_rooms.typestring

Account plan type

plan_zoom_rooms.hostsinteger

Account plan number of hosts

plan_room_connectorobject
plan_room_connector.typestring

Account plan type

plan_room_connector.hostsinteger

Account plan number of hosts

plan_large_meetingarray

Additional Large Meeting Plans

plan_webinararray

Additional Webinar Plans

plan_recordingstring

Additional Cloud Recording Plan

plan_audioobject
plan_audio.typestring

Additional Audio Conferencing plan type

plan_audio.tollfree_countriesstring

Toll-free countries, multiple value separated by comma

plan_audio.premium_countriesstring

Premium countries, multiple value separated by comma

plan_audio.callout_countriesstring

Call-out countries, multiple value separated by comma

plan_audio.ddi_numbersinteger

Dedicated Dial-In Numbers

Account not fond

Suggest Edits

Add a plan(s)

Subscribe plans for a sub account of the master account <aside>Can only subscribe plans for the sub account which is a free account and paid by master account</aside>

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/accounts/accountId/plans
curl --request POST \
  --url https://api.zoom.us/v2/accounts/accountId/plans
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/accounts/accountId/plans' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/plans")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/accounts/accountId/plans");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/plans"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

contact
object

Account billing contact information returned

 
contact.first_name
string
required

Billing Contact's first name

contact.last_name
string
required

Billing Contact's last name

contact.email
string
required

Billing Contact's email address

contact.phone_number
string
required

Billing Contact's phone number

contact.address
string
required

Billing Contact's address

contact.city
string
required

Billing Contact's city

contact.state
string
required

Billing Contact's state

contact.zip
string
required

Billing Contact's zip/postal code

contact.country
string
required

Billing Contact's country

contact.apt
string

Billing Contact's apartment/suite

plan_base
object
 
plan_base.type
string
required

Account base plan type

plan_base.hosts
int32
required

Account base plan number of hosts. For a Pro Plan, please select a value between 1 and 9. For a Business Plan, please select a value between 10 and 49. For a Education Plan, please select a value between 20 and 149. For a Free Trial Plan, please select a value between 1 and 9999.

plan_zoom_rooms
object
 
plan_zoom_rooms.type
string

Account plan type

plan_zoom_rooms.hosts
int32

Account plan number of hosts

plan_room_connector
object
 
plan_room_connector.type
string

Account plan type

plan_room_connector.hosts
int32

Account plan number of hosts

plan_large_meeting
array of objects

Additional Large Meeting Plans

type
hosts
plan_webinar
array of objects

Additional Webinar Plans

type
hosts
plan_recording
string

Additional Cloud Recording Plan

plan_audio
object
 
plan_audio.type
string

Additional Audio Conferencing plan type

plan_audio.tollfree_countries
string

Toll-free countries, multiple value separated by comma

plan_audio.premium_countries
string

Premium countries, multiple value separated by comma

plan_audio.callout_countries
string

Call-out countries, multiple value separated by comma

plan_audio.ddi_numbers
int32

Dedicated Dial-In Numbers

Response

Account plans updated

plan_baseobject
plan_base.typestring

Account base plan type

plan_base.hostsinteger

Account base plan number of hosts. For a Pro Plan, please select a value between 1 and 9. For a Business Plan, please select a value between 10 and 49. For a Education Plan, please select a value between 20 and 149. For a Free Trial Plan, please select a value between 1 and 9999.

plan_zoom_roomsobject
plan_zoom_rooms.typestring

Account plan type

plan_zoom_rooms.hostsinteger

Account plan number of hosts

plan_room_connectorobject
plan_room_connector.typestring

Account plan type

plan_room_connector.hostsinteger

Account plan number of hosts

plan_large_meetingarray

Additional Large Meeting Plans

plan_webinararray

Additional Webinar Plans

plan_recordingstring

Additional Cloud Recording Plan

plan_audioobject
plan_audio.typestring

Additional Audio Conferencing plan type

plan_audio.tollfree_countriesstring

Toll-free countries, multiple value separated by comma

plan_audio.premium_countriesstring

Premium countries, multiple value separated by comma

plan_audio.callout_countriesstring

Call-out countries, multiple value separated by comma

plan_audio.ddi_numbersinteger

Dedicated Dial-In Numbers

Suggest Edits

Update plan base

Update a base plan for a sub account <aside>Can only update a base plan for the sub account which is a paid account and paid by master account</aside>

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/accounts/accountId/plans/base
curl --request PUT \
  --url https://api.zoom.us/v2/accounts/accountId/plans/base
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/accounts/accountId/plans/base' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/plans/base")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/accounts/accountId/plans/base");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/plans/base"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

type
string
required

Account base plan type

hosts
int32
required

Account base plan number of hosts. For a Pro Plan, please select a value between 1 and 9. For a Business Plan, please select a value between 10 and 49. For a Education Plan, please select a value between 20 and 149. For a Free Trial Plan, please select a value between 1 and 9999.

Response

Account plans updated

Suggest Edits

Update addons

Update an additional plan for sub account<aside>Can only update an Additional plan for the sub account which is a paid account and paid by master account</aside>

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/accounts/accountId/plans/addons
curl --request PUT \
  --url https://api.zoom.us/v2/accounts/accountId/plans/addons
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/accounts/accountId/plans/addons' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/plans/addons")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/accounts/accountId/plans/addons");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/plans/addons"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

type
string
required

Account plan type

hosts
int32
required

Account plan number of hosts

Response

Account plans updated

Suggest Edits

Add addition addons

Add an additional plan for sub account <aside>Can only add an Additional plan for the sub account which is a paid account and paid by master account</aside>

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/accounts/accountId/plans/addons
curl --request POST \
  --url https://api.zoom.us/v2/accounts/accountId/plans/addons
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/accounts/accountId/plans/addons' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/accounts/accountId/plans/addons")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/accounts/accountId/plans/addons");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/accounts/accountId/plans/addons"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

accountId
string
required

The account ID

Body Params

type
string
required

Account plan type

hosts
int32
required

Account plan number of hosts

Response

Account plans updated

Suggest Edits

Get users

List users on your account

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users
curl --request GET \
  --url https://api.zoom.us/v2/users
var request = require("request");

var options = { method: 'GET', url: 'https://api.zoom.us/v2/users' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

status
string

User status
default: Active
active users with active status
inactive users with inactive status
pending users with pending status

page_size
int32

The number of records returned within a single API call
default: 30
maximum: 300

page_number
int32

Current page number of returned records
default: 1

Response

User list returned

page_countinteger

The number of items returned on this page

page_numberinteger

The page number of current results

page_sizeinteger

The number of records returned within a single API call
default: 30
maximum: 300

total_recordsinteger

The number of all records available across pages

usersarray

List of User objects

Suggest Edits

Create user

Create a user on your account

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/users
curl --request POST \
  --url https://api.zoom.us/v2/users
var request = require("request");

var options = { method: 'POST', url: 'https://api.zoom.us/v2/users' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/users");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

action
string
required
user_info
object
 
user_info.email
string
required

User's email address
max length: 128

user_info.type
int32
required
user_info.first_name
string

User's first name. Cannot contain more than 5 Chinese words.
max length: 64

user_info.last_name
string

User's last name. Cannot contain more than 5 Chinese words.
max length: 64

user_info.password
string

User’s password. Only for "autoCreate" action.

Response

User Created

idstring

User ID

first_namestring

User's first name
max length: 64

last_namestring

User's last name
max length: 64

emailstring

User's email address

typeinteger

User with that email already exists

Suggest Edits

Get single user

Retrieve a user on your account

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId
curl --request GET \
  --url https://api.zoom.us/v2/users/userId
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Query Params

login_type
string

0 Facebook
1 Google
99 API
100 Zoom
101 SSO

Response

User object returned

emailstring

User's email address

typeinteger
idstring

User ID

first_namestring

User's first name
max length: 64

last_namestring

User's last name
max length: 64

pmistring

Personal Meeting ID

use_pmiboolean

Use Personal Meeting ID for instant meetings

timezonestring

Time Zone

deptstring

Department

created_atstring

User create time

last_login_timestring

User last login time

last_client_versionstring

User last login client version

vanity_urlstring
personal_meeting_urlstring
verifiedinteger
pic_urlstring
cms_user_idstring
account_idstring
host_keystring
group_idsarray
im_group_idsarray

User not found

Suggest Edits

Delete user

Delete a user on your account

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/users/userId
curl --request DELETE \
  --url https://api.zoom.us/v2/users/userId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/users/userId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Query Params

action
string

Delete action type
default: disassociate
disassociate Disassociate a user
delete Permanently delete a user

transfer_email
string

Transfer email

transfer_meeting
boolean

Transfer meeting

transfer_webinar
boolean

Transfer webinar

transfer_recording
boolean

Transfer recording

Response

User deleted

User not found

Suggest Edits

Update user

Update a user on your account

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/users/userId
curl --request PATCH \
  --url https://api.zoom.us/v2/users/userId
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/users/userId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

first_name
string

User's first name. Cannot contain more than 5 Chinese words.
max length: 64

last_name
string

User's last name. Cannot contain more than 5 Chinese words.
max length: 64

type
int32
pmi
string

Personal Meeting ID,length must be 10
min length: 10
max length: 10

use_pmi
boolean

Use Personal Meeting ID for instant meetings.

timezone
date-time

The time zone id for user profile. For this parameter value please refer to the id value in timezone list.

dept
string

Department for user profile, use for report

vanity_name
string

Personal meeting room name

host_key
string

Host Key, should be 6-digit number

cms_user_id
string

Kaltura User Id

Response

User updated

User not found

Suggest Edits

Get assistants

List a user's assistants

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/assistants
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/assistants
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/assistants' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/assistants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/assistants");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/assistants"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Response

Success

assistantsarray

List of User's assistants

User not found

Suggest Edits

Add assistants

Add assistants to a user

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/users/userId/assistants
curl --request POST \
  --url https://api.zoom.us/v2/users/userId/assistants
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/users/userId/assistants' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/assistants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/users/userId/assistants");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/assistants"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

assistants
array of objects

List of User's assistants

id
email

Response

Assitant Added

idsstring

User ID

add_atstring

User not found

Suggest Edits

Delete all assistants

Delete all of a user'sassitants

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/users/userId/assistants
curl --request DELETE \
  --url https://api.zoom.us/v2/users/userId/assistants
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/users/userId/assistants' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/assistants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/users/userId/assistants");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/assistants"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Response

Assitants deleted

User not found

Suggest Edits

Delete single assistant

Delete one of a user's assistants

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/users/userId/assistants/assistantId
curl --request DELETE \
  --url https://api.zoom.us/v2/users/userId/assistants/assistantId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/users/userId/assistants/assistantId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/assistants/assistantId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/users/userId/assistants/assistantId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/assistants/assistantId"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

assistantId
string
required

Assistant's ID

Response

Assitant deleted

User or Assistant not found

Suggest Edits

Get schedulers

List a user's schedulers

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/schedulers
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/schedulers
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/schedulers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/schedulers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/schedulers");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/schedulers"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Response

Success

assistantsarray

List of User's schedulers.

User not found

Suggest Edits

Delete all schedulers

Delete all of a user'schedulers

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/users/userId/schedulers
curl --request DELETE \
  --url https://api.zoom.us/v2/users/userId/schedulers
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/users/userId/schedulers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/schedulers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/users/userId/schedulers");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/schedulers"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Response

Schedulers deleted.

User not found

Suggest Edits

Delete single scheduler

Delete one of a user's schedulers

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/users/userId/schedulers/schedulerId
curl --request DELETE \
  --url https://api.zoom.us/v2/users/userId/schedulers/schedulerId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/users/userId/schedulers/schedulerId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/schedulers/schedulerId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/users/userId/schedulers/schedulerId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/schedulers/schedulerId"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

schedulerId
string
required

Scheduler's ID

Response

Scheduler deleted.

User or Scheduler not found

Suggest Edits

Upload user picture

Upload a user's profile picture

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/users/userId/picture
curl --request POST \
  --url https://api.zoom.us/v2/users/userId/picture
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/users/userId/picture' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/picture")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/users/userId/picture");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/picture"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Form Data

pic_file
file
required

User picture file, must be a jpg/jpeg file

Response

Picture Uploaded

User not found

Suggest Edits

Get user settings

Retrieve a user's settings

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/settings
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/settings
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/settings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/settings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/settings");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/settings"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Query Params

login_type
string

0 Facebook
1 Google
99 API
100 Zoom
101 SSO

Response

User settings returned

scheduled_meetingobject
scheduled_meeting.host_videoboolean

Host video

scheduled_meeting.participants_videoboolean

Participants video

scheduled_meeting.audio_typestring
scheduled_meeting.join_before_hostboolean

Join before host

scheduled_meeting.force_pmi_jbh_passwordboolean

Require a password for Personal Meetings if attendees can join before host

scheduled_meeting.pstn_password_protectedboolean

Generate and require password for participants joining by phone

in_meetingobject
in_meeting.e2e_encryptionboolean

End-to-end encryption

in_meeting.chatboolean

Chat

in_meeting.private_chatboolean

Private chat

in_meeting.auto_saving_chatboolean

Auto saving chats

in_meeting.entry_exit_chimestring
in_meeting.record_play_voiceboolean

Record and play their own voice

in_meeting.file_transferboolean

File transfer

in_meeting.feedbackboolean

Feedback to Zoom

in_meeting.co_hostboolean

Co-host

in_meeting.pollingboolean

Polling

in_meeting.attendee_on_holdboolean

Allow host to put attendee on hold

in_meeting.annotationboolean

Annotation

in_meeting.remote_controlboolean

Remote control

in_meeting.non_verbal_feedbackboolean

Non-verbal feedback

in_meeting.breakout_roomboolean

Breakout room

in_meeting.remote_supportboolean

Remote support

in_meeting.closed_captionboolean

Closed caption

in_meeting.group_hdboolean

Group HD video

in_meeting.virtual_backgroundboolean

Virtual background

in_meeting.far_end_camera_controlboolean

Far end camera control

in_meeting.share_dual_cameraboolean

Share dual camera (Deprecated)

in_meeting.attention_trackingboolean

Attention tracking

in_meeting.waiting_roomboolean

Waiting room

email_notificationobject
email_notification.jbh_reminderboolean

When attendees join meeting before host

email_notification.cancel_meeting_reminderboolean

When a meeting is cancelled

email_notification.alternative_host_reminderboolean

When an alternative host is set or removed from a meeting

recordingobject
recording.local_recordingboolean

Local recording

recording.cloud_recordingboolean

Cloud recording

recording.record_speaker_viewboolean

Record the active speaker view

recording.record_gallery_viewboolean

Record the gallery view

recording.record_audio_fileboolean

Record an audio only file

recording.save_chat_textboolean

Save chat text from the meeting

recording.show_timestampboolean

Show timestamp on video

recording.recording_audio_transcriptboolean

Audio transcript

recording.auto_recordingstring
recording.auto_delete_cmrboolean

Auto delete cloud recordings

recording.auto_delete_cmr_daysinteger

A specified number of days of auto delete cloud recordings
minimum: 1
maximum: 10

telephonyobject
telephony.third_party_audioboolean

3rd party audio conference

telephony.audio_conference_infostring

3rd party audio conference info
max length: 2048

telephony.show_international_numbers_linkboolean

Show international numbers link on the invitation email

featureobject
feature.meeting_capacityinteger

User’s meeting capacity

feature.large_meetingboolean

Large meting feature

feature.large_meeting_capacityinteger

Large meeting capacity, can be 100, 200, 300 or 500, depends on if having related large meeting capacity plan subscription or not

feature.webinarboolean

Webinar feature

feature.webinar_capacityinteger

Webinar capacity, can be 100, 500, 1000, 3000, 5000 or 10000, depends on if having related webinar capacity plan subscription or not

feature.cn_meetingboolean

CN meeting feature

feature.in_meetingboolean

IN meeting feature

User not found

Suggest Edits

Update user settings

Update a user's settings

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/users/userId/settings
curl --request PATCH \
  --url https://api.zoom.us/v2/users/userId/settings
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/users/userId/settings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/settings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/users/userId/settings");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/settings"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

scheduled_meeting
object
 
scheduled_meeting.host_video
boolean

Host video

scheduled_meeting.participants_video
boolean

Participants video

scheduled_meeting.audio_type
string
scheduled_meeting.join_before_host
boolean

Join before host

scheduled_meeting.force_pmi_jbh_password
boolean

Require a password for Personal Meetings if attendees can join before host

scheduled_meeting.pstn_password_protected
boolean

Generate and require password for participants joining by phone

in_meeting
object
 
in_meeting.e2e_encryption
boolean

End-to-end encryption

in_meeting.chat
boolean

Chat

in_meeting.private_chat
boolean

Private chat

in_meeting.auto_saving_chat
boolean

Auto saving chats

in_meeting.entry_exit_chime
string
in_meeting.record_play_voice
boolean

Record and play their own voice

in_meeting.file_transfer
boolean

File transfer

in_meeting.feedback
boolean

Feedback to Zoom

in_meeting.co_host
boolean

Co-host

in_meeting.polling
boolean

Polling

in_meeting.attendee_on_hold
boolean

Allow host to put attendee on hold

in_meeting.annotation
boolean

Annotation

in_meeting.remote_control
boolean

Remote control

in_meeting.non_verbal_feedback
boolean

Non-verbal feedback

in_meeting.breakout_room
boolean

Breakout room

in_meeting.remote_support
boolean

Remote support

in_meeting.closed_caption
boolean

Closed caption

in_meeting.group_hd
boolean

Group HD video

in_meeting.virtual_background
boolean

Virtual background

in_meeting.far_end_camera_control
boolean

Far end camera control

in_meeting.share_dual_camera
boolean

Share dual camera (Deprecated)

in_meeting.attention_tracking
boolean

Attention tracking

in_meeting.waiting_room
boolean

Waiting room

email_notification
object
 
email_notification.jbh_reminder
boolean

When attendees join meeting before host

email_notification.cancel_meeting_reminder
boolean

When a meeting is cancelled

email_notification.alternative_host_reminder
boolean

When an alternative host is set or removed from a meeting

recording
object
 
recording.local_recording
boolean

Local recording

recording.cloud_recording
boolean

Cloud recording

recording.record_speaker_view
boolean

Record the active speaker view

recording.record_gallery_view
boolean

Record the gallery view

recording.record_audio_file
boolean

Record an audio only file

recording.save_chat_text
boolean

Save chat text from the meeting

recording.show_timestamp
boolean

Show timestamp on video

recording.recording_audio_transcript
boolean

Audio transcript

recording.auto_recording
string
recording.auto_delete_cmr
boolean

Auto delete cloud recordings

recording.auto_delete_cmr_days
int32

A specified number of days of auto delete cloud recordings
minimum: 1
maximum: 10

telephony
object
 
telephony.third_party_audio
boolean

3rd party audio conference

telephony.audio_conference_info
string

3rd party audio conference info
max length: 2048

telephony.show_international_numbers_link
boolean

Show international numbers link on the invitation email

feature
object
 
feature.meeting_capacity
int32

User’s meeting capacity

feature.large_meeting
boolean

Large meting feature

feature.large_meeting_capacity
int32

Large meeting capacity, can be 100, 200, 300 or 500, depends on if having related large meeting capacity plan subscription or not

feature.webinar
boolean

Webinar feature

feature.webinar_capacity
int32

Webinar capacity, can be 100, 500, 1000, 3000, 5000 or 10000, depends on if having related webinar capacity plan subscription or not

Response

User setting's updated

User not found

Suggest Edits

Update user status

Update a user's status

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/users/userId/status
curl --request PUT \
  --url https://api.zoom.us/v2/users/userId/status
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/users/userId/status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/users/userId/status");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/status"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

action
string
required

Response

Status updated

User not found

Suggest Edits

Update user password

Update a user's password

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/users/userId/password
curl --request PUT \
  --url https://api.zoom.us/v2/users/userId/password
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/users/userId/password' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/password")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/users/userId/password");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/password"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

password
string
required

User’s password. Character length is less than 32,

Response

Password updated

User not found

Suggest Edits

Get user permissions

Retrieve a user's permissions

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/permissions
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/permissions
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/permissions' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/permissions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/permissions");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/permissions"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Response

User permissions returned

permissionsarray

List of user permissions

User not found

Suggest Edits

Get user token

Retrieve a user's token

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/token
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/token
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/token' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/token")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/token");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/token"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Query Params

type
string

User token type
token Used for starting meeting with client SDK.
zpk Used for generating the start meeting url. (Deprecated)
zak Used for generating the start meeting url. The expiration time is two hours. For API users, the expiration time is 90 days.

Response

Token returned

tokenstring

User ID

User not found

Suggest Edits

Delete SSO Token

Revoke a user's SSO token

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/users/userId/token
curl --request DELETE \
  --url https://api.zoom.us/v2/users/userId/token
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/users/userId/token' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/token")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/users/userId/token");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/token"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Response

Token deleted

User not found

Suggest Edits

Get ZPK

Check if the zpk is expired. The zpk is used to authenticate a user.

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/zpk
curl --request GET \
  --url 'https://api.zoom.us/v2/users/zpk?zpk=zpk'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/zpk',
  qs: { zpk: 'zpk' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/zpk?zpk=zpk")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/zpk?zpk=zpk");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/zpk"

querystring = {"zpk":"zpk"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

zpk
string
required

User zpk

Response

Success

expire_ininteger
Suggest Edits

Check user email

Check if the user email exists

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/email
curl --request GET \
  --url 'https://api.zoom.us/v2/users/email?email=email'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/email',
  qs: { email: 'email' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/email?email=email")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/email?email=email");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/email"

querystring = {"email":"email"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

email
string
required

Zoom work email

Response

Success

existed_emailboolean
Suggest Edits

Check vainity name

Check if the user's personal meeting room name exists

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/vanity_name
curl --request GET \
  --url 'https://api.zoom.us/v2/users/vanity_name?vanity_name=vanity_name'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/vanity_name',
  qs: { vanity_name: 'vanity_name' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/vanity_name?vanity_name=vanity_name")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/vanity_name?vanity_name=vanity_name");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/vanity_name"

querystring = {"vanity_name":"vanity_name"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

vanity_name
string
required

Personal meeting room name

Response

Success

existedboolean
 
Suggest Edits

List meetings

List meetings for a user

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/meetings
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/meetings
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/meetings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/meetings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/meetings");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/meetings"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Query Params

type
string

The meeting type
default: live
scheduled all the scheduled meetings
live all the live meetings
upcoming all the upcoming meetings

page_size
int32

The number of records returned within a single API call
default: 30
maximum: 300

page_number
int32

Current page number of returned records
default: 1

Response

List of Meeting objects returned

page_countinteger

The number of items returned on this page

page_numberinteger

The page number of current results

page_sizeinteger

The number of records returned within a single API call
default: 30
maximum: 300

total_recordsinteger

The number of all records available across pages

meetingsarray

List of Meeting objects

User not found

Suggest Edits

Create meeting

Create a meeting for a user <aside>The expiration time of start_url is two hours. But for API users, the expiration time is 90 days.</aside>

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/users/userId/meetings
curl --request POST \
  --url https://api.zoom.us/v2/users/userId/meetings
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/users/userId/meetings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/meetings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/users/userId/meetings");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/meetings"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

topic
string

Meeting topic

type
int32
start_time
date-time

Meeting start time. When using a format like "yyyy-MM-dd'T'HH:mm:ss'Z'", always use GMT time. When using a format like "yyyy-MM-dd'T'HH:mm:ss", you should use local time and you will need to specify the time zone. Only used for scheduled meetings and recurring meetings with fixed time.

duration
int32

Meeting duration (minutes). Used for scheduled meetings only

timezone
string

Timezone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our timezone list for supported timezones and their formats.

password
string

Password to join the meeting. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.

agenda
string

Meeting description

recurrence
object
 
recurrence.type
int32
recurrence.repeat_interval
int32

At which interval should the meeting repeat? For a daily meeting, max of 90 days. For a weekly meeting, max of 12 weeks. For a monthly meeting, max of 3 months.

recurrence.weekly_days
int32
recurrence.monthly_day
int32

Day of the month for the meeting to be scheduled. The value range is from 1 to 31.

recurrence.monthly_week
int32
recurrence.monthly_week_day
int32
recurrence.end_times
int32

Select how many times the meeting will occur before it is canceled. (Cannot be used with "end_date_time".)
maximum: 50

recurrence.end_date_time
date-time

Select a date the meeting will occur before it is canceled.. Should be UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)

settings
object
 
settings.host_video
boolean

Start video when host joins meeting

settings.participant_video
boolean

Start video when participants join meeting

settings.cn_meeting
boolean

Host meeting in China

settings.in_meeting
boolean

Host meeting in India

settings.join_before_host
boolean

Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.

settings.mute_upon_entry
boolean

Mute participants upon entry

settings.watermark
boolean

Add watermark when viewing shared screen

settings.use_pmi
boolean

Use Personal Meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.

settings.approval_type
int32
settings.registration_type
int32
settings.audio
string
settings.auto_recording
string
settings.enforce_login
boolean

Only signed-in users can join this meeting

settings.enforce_login_domains
string

Only signed-in users with specified domains can join meetings

settings.alternative_hosts
string

Alternative hosts emails or IDs. Multiple value separated by comma.

Response

Meeting Created

uuidstring

Meeting unique ID

idstring

Meeting ID, also known as meeting number

host_idstring

ID of the user set as host of meeting

topicstring

Meeting topic

typeinteger
start_timestring

Meeting start time

durationinteger

Meeting duration

timezonestring

Timezone to format start_time

created_atstring

Create time

agendastring

Agenda

start_urlstring

Start url

join_urlstring

Join url

passwordstring

Meeting password

h323_passwordstring

H.323/SIP room system password

occurrencesarray

Array of occurrence objects

settingsobject
settings.host_videoboolean

Start video when host joins meeting

settings.participant_videoboolean

Start video when participants join meeting

settings.cn_meetingboolean

Host meeting in China

settings.in_meetingboolean

Host meeting in India

settings.join_before_hostboolean

Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.

settings.mute_upon_entryboolean

Mute participants upon entry

settings.watermarkboolean

Add watermark when viewing shared screen

settings.use_pmiboolean

Use Personal Meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.

settings.approval_typeinteger
settings.registration_typeinteger
settings.audiostring
settings.auto_recordingstring
settings.enforce_loginboolean

Only signed-in users can join this meeting

settings.enforce_login_domainsstring

Only signed-in users with specified domains can join meetings

settings.alternative_hostsstring

Alternative hosts emails or IDs. Multiple value separated by comma.

User not found

Suggest Edits

Get meeting details

Retrieve a meeting's details

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/meetings/meetingId
curl --request GET \
  --url https://api.zoom.us/v2/meetings/meetingId
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/meetings/meetingId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/meetings/meetingId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Response

Meeting object returned

uuidstring

Meeting unique ID

idstring

Meeting ID, also know as meeting number

host_idstring

ID of the user set as host of meeting

topicstring

Meeting topic

typeinteger
start_timestring

Meeting start time

durationinteger

Meeting duration

timezonestring

Timezone to format start_time

created_atstring

Create time

agendastring

Agenda

start_urlstring

Start url

join_urlstring

Join url

passwordstring

Meeting password

h323_passwordstring

H.323/SIP room system password

occurrencesarray

Array of occurrence objects

settingsobject
settings.host_videoboolean

Start video when host joins meeting

settings.participant_videoboolean

Start video when participants join meeting

settings.cn_meetingboolean

Host meeting in China

settings.in_meetingboolean

Host meeting in India

settings.join_before_hostboolean

Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.

settings.mute_upon_entryboolean

Mute participants upon entry

settings.watermarkboolean

Add watermark when viewing shared screen

settings.use_pmiboolean

Use Personal Meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.

settings.approval_typeinteger
settings.registration_typeinteger
settings.audiostring
settings.auto_recordingstring
settings.enforce_loginboolean

Only signed-in users can join this meeting

settings.enforce_login_domainsstring

Only signed-in users with specified domains can join meetings

settings.alternative_hostsstring

Alternative hosts emails or IDs. Multiple value separated by comma.

Meeting not found

Suggest Edits

Delete meeting

Delete a meeting

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/meetings/meetingId
curl --request DELETE \
  --url https://api.zoom.us/v2/meetings/meetingId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/meetings/meetingId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/meetings/meetingId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Query Params

occurrence_id
string

The meeting occurrence ID

Response

Meeting deleted

Meeting not found

Suggest Edits

Update meeting

Update a meeting's details

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/meetings/meetingId
curl --request PATCH \
  --url https://api.zoom.us/v2/meetings/meetingId
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/meetings/meetingId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/meetings/meetingId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Body Params

topic
string

Meeting topic

type
int32
start_time
date-time

Meeting start time. When using a format like "yyyy-MM-dd'T'HH:mm:ss'Z'", always use GMT time. When using a format like "yyyy-MM-dd'T'HH:mm:ss", you should use local time and you will need to specify the time zone. Only used for scheduled meetings and recurring meetings with fixed time.

duration
int32

Meeting duration (minutes). Used for scheduled meetings only

timezone
string

Timezone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our timezone list for supported timezones and their formats.

password
string

Password to join the meeting. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.

agenda
string

Meeting description

recurrence
object
 
recurrence.type
int32
recurrence.repeat_interval
int32

At which interval should the meeting repeat? For a daily meeting, max of 90 days. For a weekly meeting, max of 12 weeks. For a monthly meeting, max of 3 months.

recurrence.weekly_days
int32
recurrence.monthly_day
int32

Day of the month for the meeting to be scheduled. The value range is from 1 to 31.

recurrence.monthly_week
int32
recurrence.monthly_week_day
int32
recurrence.end_times
int32

Select how many times the meeting will occur before it is canceled. (Cannot be used with "end_date_time".)
maximum: 50

recurrence.end_date_time
date-time

Select a date the meeting will occur before it is canceled.. Should be UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)

settings
object
 
settings.host_video
boolean

Start video when host joins meeting

settings.participant_video
boolean

Start video when participants join meeting

settings.cn_meeting
boolean

Host meeting in China

settings.in_meeting
boolean

Host meeting in India

settings.join_before_host
boolean

Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.

settings.mute_upon_entry
boolean

Mute participants upon entry

settings.watermark
boolean

Add watermark when viewing shared screen

settings.use_pmi
boolean

Use Personal Meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.

settings.approval_type
int32
settings.registration_type
int32
settings.audio
string
settings.auto_recording
string
settings.enforce_login
boolean

Only signed-in users can join this meeting

settings.enforce_login_domains
string

Only signed-in users with specified domains can join meetings

settings.alternative_hosts
string

Alternative hosts emails or IDs. Multiple value separated by comma.

settings.registrants_confirmation_email
boolean

Send confirmation Email to Registrants

Response

Meeting Updated

Meeting not found

Suggest Edits

Update meeting status

Update a meeting's status

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/meetings/meetingId/status
curl --request PUT \
  --url https://api.zoom.us/v2/meetings/meetingId/status
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/meetings/meetingId/status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/meetings/meetingId/status");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId/status"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Body Params

action
string

Response

Meeting updated

Meeting not found

Suggest Edits

Get meeting invitation details

Retrieve a meeting's invitation details

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/meetings/meetingId/invitation
curl --request GET \
  --url https://api.zoom.us/v2/meetings/meetingId/invitation
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/meetings/meetingId/invitation' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId/invitation")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/meetings/meetingId/invitation");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId/invitation"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Response

Meeting invitation object returned

invitationstring

Meeting invitation detail.

Meeting invitation not found

Suggest Edits

Get meeting registrants

List registrants of a meeting

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/meetings/meetingId/registrants
curl --request GET \
  --url https://api.zoom.us/v2/meetings/meetingId/registrants
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/meetings/meetingId/registrants' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId/registrants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/meetings/meetingId/registrants");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId/registrants"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Query Params

occurrence_id
string

The meeting occurrence ID

status
string

The registrant status
default: approved
pending registrants status is pending
approved registrants status is approved
denied registrants status is denied

page_size
int32

The number of records returned within a single API call
default: 30
maximum: 300

page_number
int32

Current page number of returned records
default: 1

Response

Success

page_countinteger

The number of items returned on this page

page_sizeinteger

The number of records returned within a single API call
default: 30
maximum: 300

total_recordsinteger

The number of all records available across pages

next_page_tokenstring

Next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.

registrantsarray

List of Registrant objects

Meeting not found

Suggest Edits

Register meeting participant

Register a participant for a meeting

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/meetings/meetingId/registrants
curl --request POST \
  --url https://api.zoom.us/v2/meetings/meetingId/registrants
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/meetings/meetingId/registrants' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId/registrants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/meetings/meetingId/registrants");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId/registrants"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Query Params

occurrence_ids
string

Occurrence IDs. You can find these with the meeting get API. Multiple values separated by comma.

Body Params

email
string
required

A valid email address

first_name
string
required

User’s first name

last_name
string
required

User’s last name

address
string

Address

city
string

City

country
string

Country

zip
string

Zip/Postal Code

state
string

State/Province

phone
string

Phone

industry
string

Industry

org
string

Organization

job_title
string

Job Title

purchasing_time_frame
string
role_in_purchase_process
string
no_of_employees
string
comments
string

Questions & Comments

custom_questions
array of objects

Custom Questions

title
value

Response

Registration created

registrant_idstring

Registrant ID

idstring

Registrant ID

topicstring

Topic

start_timestring

Start time

join_urlstring

Join URL for this registrant

Meeting not found

Suggest Edits

Update meeting registrant status

Update a meeting registrant's status

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/meetings/meetingId/registrants/status
curl --request PUT \
  --url https://api.zoom.us/v2/meetings/meetingId/registrants/status
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/meetings/meetingId/registrants/status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/meetings/meetingId/registrants/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/meetings/meetingId/registrants/status");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/meetings/meetingId/registrants/status"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingId
int32
required

The meeting ID

Query Params

occurrence_id
string

The meeting occurrence ID

Body Params

action
string
required
registrants
array of objects

List of registrants

id
email

Response

Registrant status updated

Meeting or Registrant not found

Suggest Edits

Get meeting details

Retrieve ended meeting details

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/past_meetings/meetingUUID
curl --request GET \
  --url https://api.zoom.us/v2/past_meetings/meetingUUID
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/past_meetings/meetingUUID' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/past_meetings/meetingUUID")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/past_meetings/meetingUUID");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/past_meetings/meetingUUID"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingUUID
string
required

The meeting UUID.

Response

Meeting detail Returned

uuidstring

Meeting UUID

idinteger

Meeting ID

host_idinteger

Host ID

typeinteger

Meeting Type
1 Instant Meeting
2 Scheduled Meeting
3 Recurring Meeting with no fixed time
8 Recurring Meeting with fixed time

topicstring

Meeting topic

user_namestring

User display name

user_emailstring

User email

start_timestring

Meeting start time

end_timestring

Meeting end time

durationinteger

Meeting duration

total_minutesinteger

Number of meeting minutes

participants_countinteger

Number of meeting participants

Meeting not found

Suggest Edits

Get past meeting participants

Retrieve ended meeting participants

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/past_meetings/meetingUUID/participants
curl --request GET \
  --url https://api.zoom.us/v2/past_meetings/meetingUUID/participants
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/past_meetings/meetingUUID/participants' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/past_meetings/meetingUUID/participants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/past_meetings/meetingUUID/participants");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/past_meetings/meetingUUID/participants"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

meetingUUID
string
required

The meeting UUID.

Query Params

page_size
int32

The number of records returned within a single API call
default: 30
maximum: 300

next_page_token
string

Next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.

Response

Meeting Participants Report Returned

page_countinteger

The number of items returned on this page

page_sizeinteger

The number of records returned within a single API call
default: 30
maximum: 300

total_recordsinteger

The number of all records available across pages

next_page_tokenstring

Next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.

participantsarray

Array of meeting participant objects

Meeting not found

 
Suggest Edits

Get webinars

List webinars for a user

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/users/userId/webinars
curl --request GET \
  --url https://api.zoom.us/v2/users/userId/webinars
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/users/userId/webinars' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/webinars")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/users/userId/webinars");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/webinars"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Query Params

page_size
int32

The number of records returned within a single API call
default: 30
maximum: 300

page_number
int32

Current page number of returned records
default: 1

Response

List of Webinar objects returned

page_countinteger

The number of items returned on this page

page_numberinteger

The page number of current results

page_sizeinteger

The number of records returned within a single API call
default: 30
maximum: 300

total_recordsinteger

The number of all records available across pages

webinarsarray

List of Webinar objects

User not found

Suggest Edits

Create webinar

Create a webinar for a user <aside>The expiration time of start_url is two hours. But for API users, the expiration time is 90 days.</aside>

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/users/userId/webinars
curl --request POST \
  --url https://api.zoom.us/v2/users/userId/webinars
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/users/userId/webinars' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/users/userId/webinars")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/users/userId/webinars");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/users/userId/webinars"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
string
required

The user ID or email address

Body Params

topic
string

Webinar topic

type
int32
start_time
date-time

Webinar start time, in the format "yyyy-MM-dd'T'HH:mm:ss'Z'", should be GMT time. In the format "yyyy-MM-dd'T'HH:mm:ss", should be local time, need to specify the time zone. Only used for scheduled webinar and recurring webinar with fixed time.

duration
int32

Webinar duration (minutes). Used for scheduled webinar only

timezone
string

Timezone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our timezone list for supported timezones and their formats.

password
string

Webinar password. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.

agenda
string

Webinar description

recurrence
object
 
recurrence.type
int32
recurrence.repeat_interval
int32

At which interval should the meeting repeat? For a daily meeting, max of 90 days. For a weekly meeting, max of 12 weeks. For a monthly meeting, max of 3 months.

recurrence.weekly_days
int32
recurrence.monthly_day
int32

Day of the month for the meeting to be scheduled. The value range is from 1 to 31.

recurrence.monthly_week
int32
recurrence.monthly_week_day
int32
recurrence.end_times
int32

Select how many times the meeting will occur before it is canceled. (Cannot be used with "end_date_time".)
maximum: 50

recurrence.end_date_time
date-time

Select a date the meeting will occur before it is canceled.. Should be UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)

settings
object
 
settings.host_video
boolean

Start video when host joins webinar

settings.panelists_video
boolean

Start video when panelists join webinar

settings.practice_session
boolean

Enable Practice Session

settings.hd_video
boolean

Default to HD Video

settings.approval_type
int32
settings.registration_type
int32
settings.audio
string
settings.auto_recording
string
settings.enforce_login
boolean

Only signed-in users can join this meeting

settings.enforce_login_domains
string

Only signed-in users with specified domains can join meetings

settings.alternative_hosts
string

Alternative hosts emails or IDs. Multiple values separated by comma.

settings.close_registration
boolean

Close registration after event date

settings.show_share_button
boolean

Show social share buttons on registration page

settings.allow_multiple_devices
boolean

Allow attendees to join from multiple devices

Response

Webinar Created

uuidstring

Webinar unique ID

idstring

Webinar ID, also known as Webinar number

host_idstring

ID of the user set as host of Webinar

topicstring

Webinar topic

typeinteger
start_timestring

Webinar start time

durationinteger

Webinar duration

timezonestring

Timezone to format start_time

agendastring

Webinar agenda

created_atstring

Create time

start_urlstring

Start url

join_urlstring

Join url

occurrencesarray

Array of occurrence objects

settingsobject
settings.host_videoboolean

Start video when host joins webinar

settings.panelists_videoboolean

Start video when panelists join webinar

settings.practice_sessionboolean

Enable Practice Session

settings.hd_videoboolean

Default to HD Video

settings.approval_typeinteger
settings.registration_typeinteger
settings.audiostring
settings.auto_recordingstring
settings.enforce_loginboolean

Only signed-in users can join this meeting

settings.enforce_login_domainsstring

Only signed-in users with specified domains can join meetings

settings.alternative_hostsstring

Alternative hosts emails or IDs. Multiple values separated by comma.

settings.close_registrationboolean

Close registration after event date

settings.show_share_buttonboolean

Show social share buttons on registration page

settings.allow_multiple_devicesboolean

Allow attendees to join from multiple devices

User not found

Suggest Edits

Get single webinar

Retrieve a webinar

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/webinars/webinarId
curl --request GET \
  --url https://api.zoom.us/v2/webinars/webinarId
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/webinars/webinarId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/webinars/webinarId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/webinars/webinarId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/webinars/webinarId"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

webinarId
int32
required

The webinar ID

Response

Webinar object returned

uuidstring

Webinar unique ID

idstring

Webinar ID, also know as webinar number

host_idstring

ID of the user set as host of webinar

topicstring

Webinar topic

typeinteger
start_timestring

Webinar start time

durationinteger

Webinar duration

timezonestring

Timezone to format start_time

agendastring

Webinar agenda

created_atstring

Create time

start_urlstring

Start url

join_urlstring

Join url

occurrencesarray

Array of occurrence objects

settingsobject
settings.host_videoboolean

Start video when host joins webinar

settings.panelists_videoboolean

Start video when panelists join webinar

settings.practice_sessionboolean

Enable Practice Session

settings.hd_videoboolean

Default to HD Video

settings.approval_typeinteger
settings.registration_typeinteger
settings.audiostring
settings.auto_recordingstring
settings.enforce_loginboolean

Only signed-in users can join this meeting

settings.enforce_login_domainsstring

Only signed-in users with specified domains can join meetings

settings.alternative_hostsstring

Alternative hosts emails or IDs. Multiple values separated by comma.

settings.close_registrationboolean

Close registration after event date

settings.show_share_buttonboolean

Show social share buttons on registration page

settings.allow_multiple_devicesboolean

Allow attendees to join from multiple devices

Webinar not found

Suggest Edits

Delete webinar

Delete a webinar

 

Query Auth

 Authentication is required for this endpoint.
deletehttps://api.zoom.us/v2/webinars/webinarId
curl --request DELETE \
  --url https://api.zoom.us/v2/webinars/webinarId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.zoom.us/v2/webinars/webinarId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/webinars/webinarId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.zoom.us/v2/webinars/webinarId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/webinars/webinarId"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

webinarId
int32
required

The webinar ID

Query Params

occurrence_id
string

The meeting occurrence ID

Response

Webinar deleted

Webinar not found

Suggest Edits

Update webinar

Update a webinar

 

Query Auth

 Authentication is required for this endpoint.
patchhttps://api.zoom.us/v2/webinars/webinarId
curl --request PATCH \
  --url https://api.zoom.us/v2/webinars/webinarId
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.zoom.us/v2/webinars/webinarId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/webinars/webinarId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.zoom.us/v2/webinars/webinarId");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/webinars/webinarId"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

webinarId
int32
required

The webinar ID

Body Params

topic
string

Webinar topic

type
int32
start_time
date-time

Webinar start time, in the format "yyyy-MM-dd'T'HH:mm:ss'Z'", should be GMT time. In the format "yyyy-MM-dd'T'HH:mm:ss", should be local time, need to specify the time zone. Only used for scheduled webinar and recurring webinar with fixed time.

duration
int32

Webinar duration (minutes). Used for scheduled webinar only

timezone
string

Timezone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our timezone list for supported timezones and their formats.

password
string

Webinar password. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.

agenda
string

Webinar description

recurrence
object
 
recurrence.type
int32
recurrence.repeat_interval
int32

At which interval should the meeting repeat? For a daily meeting, max of 90 days. For a weekly meeting, max of 12 weeks. For a monthly meeting, max of 3 months.

recurrence.weekly_days
int32
recurrence.monthly_day
int32

Day of the month for the meeting to be scheduled. The value range is from 1 to 31.

recurrence.monthly_week
int32
recurrence.monthly_week_day
int32
recurrence.end_times
int32

Select how many times the meeting will occur before it is canceled. (Cannot be used with "end_date_time".)
maximum: 50

recurrence.end_date_time
date-time

Select a date the meeting will occur before it is canceled.. Should be UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)

settings
object
 
settings.host_video
boolean

Start video when host joins webinar

settings.panelists_video
boolean

Start video when panelists join webinar

settings.practice_session
boolean

Enable Practice Session

settings.hd_video
boolean

Default to HD Video

settings.approval_type
int32
settings.registration_type
int32
settings.audio
string
settings.auto_recording
string
settings.enforce_login
boolean

Only signed-in users can join this meeting

settings.enforce_login_domains
string

Only signed-in users with specified domains can join meetings

settings.alternative_hosts
string

Alternative hosts emails or IDs. Multiple values separated by comma.

settings.close_registration
boolean

Close registration after event date

settings.show_share_button
boolean

Show social share buttons on registration page

settings.allow_multiple_devices
boolean

Allow attendees to join from multiple devices

settings.registrants_confirmation_email
boolean

Send confirmation Email to Registrants

Response

Webinar Updated

Webinar not found

Suggest Edits

Webinar status

Update a webinar's status

 

Query Auth

 Authentication is required for this endpoint.
puthttps://api.zoom.us/v2/webinars/webinarId/status
curl --request PUT \
  --url https://api.zoom.us/v2/webinars/webinarId/status
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.zoom.us/v2/webinars/webinarId/status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/webinars/webinarId/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.zoom.us/v2/webinars/webinarId/status");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/webinars/webinarId/status"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

webinarId
int32
required

The webinar ID

Body Params

status
string

Response

Webinar updated

Webinar not found

Suggest Edits

Get panelists

List panelists for a webinar

 

Query Auth

 Authentication is required for this endpoint.
gethttps://api.zoom.us/v2/webinars/webinarId/panelists
curl --request GET \
  --url https://api.zoom.us/v2/webinars/webinarId/panelists
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.zoom.us/v2/webinars/webinarId/panelists' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/webinars/webinarId/panelists")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.zoom.us/v2/webinars/webinarId/panelists");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/webinars/webinarId/panelists"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

webinarId
int32
required

The webinar ID

Response

Success

total_recordsinteger

Total records

panelistsarray

List of Panelist objects

Webinar not found

Suggest Edits

Add panelist

Add panelist to webinar

 

Query Auth

 Authentication is required for this endpoint.
posthttps://api.zoom.us/v2/webinars/webinarId/panelists
curl --request POST \
  --url https://api.zoom.us/v2/webinars/webinarId/panelists
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.zoom.us/v2/webinars/webinarId/panelists' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.zoom.us/v2/webinars/webinarId/panelists")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.zoom.us/v2/webinars/webinarId/panelists");

xhr.send(data);
import requests

url = "https://api.zoom.us/v2/webinars/webinarId/panelists"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

webinarId
int32
required

The webinar ID

Body Params

panelists
array of objects

List of Panelist objects

name
email

Response

Panelist created

idstring

Panelist ID

join_urlstring

Join URL for this panelist

Webinar not found

Suggest Edits

Remove panelists

Remove all panelists from a webinar