/report/webinars/{webinarId}/qa
Retrieve a report on questions asked by participants and answered by panelists, co-hosts and hosts from past webinars.
Prerequisites:
Scopes: report:read:admin
Granular Scopes: report:read:webinar_qna:admin
Rate Limit Label: HEAVY
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID).
|
HTTP Status Code: 200 Webinar Q&A report returned. Only available for Paid or ZMP account: {accountId}. A report can’t be generated for this account because this account is not subscribed to a webinar plan.
HTTP Status Code: 400
Bad Request
Error Code: 200
No permission.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: {userId}.
Error Code: 3001
Webinar {webinarId} not found or has expired.
GET /report/webinars/{webinarId}/qa
/report/webinars/{webinarId}/survey
Retrieve a report on past webinar survey.
Prerequisites:
Scopes: report:read:admin
Granular Scopes: report:read:webinar_survey:admin
Rate Limit Label: HEAVY
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID).
|
HTTP Status Code: 200
Webinar survey report returned.
Missing webinar subscription plan.
Only available for Paid or ZMP account: {accountId}.
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account:{accountId}.
Error Code: 12702
Can not access a webinar a year ago.
Error Code: 200
No permission.
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar {webinarId} not found or has expired.
GET /report/webinars/{webinarId}/survey
/sip_phones
Zoom’s Phone System Integration (PSI), also referred as SIP phones, enables an organization to leverage the Zoom client to complete a softphone registration to supported premise based PBX system. End users will have the ability to have softphone functionality within a single client while maintaining a comparable interface to Zoom Phone. Use this API to list SIP phones on an account.
Prerequisites:
Scopes: sip_phone:read:admin
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page_number | query | optional | integer | Deprecated. We will no longer support this field in a future release. Instead, use the |
| search_key | query | optional | string | User name or email address of a user. If this parameter is provided, only the SIP phone system integration enabled for that specific user will be returned. Otherwise, all SIP phones on an account will be returned. |
| page_size | query | optional | integer | The number of records returned within a single API call. |
| next_page_token | query | optional | string | The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. |
HTTP Status Code: 200
SIP Phones listed successfully.
Error Code: 200
Permission missing: Enable SIP Phone Integration by contacting a Zoom Admin first.
HTTP Status Code: 400
Bad Request
GET /sip_phones
/sip_phones
Zoom’s Phone System Integration (PSI), also referred as SIP phones, enables an organization to leverage the Zoom client to complete a softphone registration to supported premise based PBX system. End users will have the ability to have softphone functionality within a single client while maintaining a comparable interface to Zoom Phone. Use this API to enable a user to use SIP phone.
Prerequisites:
Scopes: sip_phone:write:admin
Rate Limit Label: Light
application/json
SipPhoneEnableUserSipPhoneRequest
| Property | Type | Required |
|---|---|---|
| domain | string | required |
| password | string | required |
| user_name | string | required |
| user_email | string | required |
| voice_mail | string | required |
| proxy_server | string | required |
| proxy_server2 | string | optional |
| proxy_server3 | string | optional |
| register_server | string | required |
| register_server2 | string | optional |
| register_server3 | string | optional |
| authorization_name | string | required |
| transport_protocol | string | optional |
| transport_protocol2 | string | optional |
| transport_protocol3 | string | optional |
| registration_expire_time | integer | optional |
HTTP Status Code: 201
SIP Phone Created.
HTTP Status Code: 400
Bad Request
Error Code: 200
Permission missing: Enable SIP Phone Integration by contacting a Zoom Admin first.
Error Code: 300
SIP Phone with the same email already exists.
HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} not exist or not belong to this account.
POST /sip_phones
/sip_phones/{phoneId}
Use this API to delete a Zoom account’s SIP phone.
Prerequisites:
Scopes: sip_phone:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| phoneId | path | required | string | The SIP phone ID. It can be retrieved from the List SIP Phones API. |
Error Code: 200
Permission missing: Enable SIP Phone Integration by contacting a Zoom Admin first.
HTTP Status Code: 204
SIP Phone deleted.
DELETE /sip_phones/{phoneId}
/sip_phones/{phoneId}
Zoom’s Phone System Integration (PSI), also referred as SIP phones, enables an organization to leverage the Zoom client to complete a softphone registration to supported premise based PBX system. End users will have the ability to have softphone functionality within a single client while maintaining a comparable interface to Zoom Phone. Use this API to update information of a specific SIP Phone on a Zoom account.
Prerequisites:
Scopes: sip_phone:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| phoneId | path | required | string | The SIP phone ID. This can be retrieved from the List SIP Phones API. |
application/json
SipPhoneUpdateSpecificPhoneRequest
| Property | Type | Required |
|---|---|---|
| domain | string | required |
| password | string | required |
| user_name | string | required |
| voice_mail | string | required |
| proxy_server | string | required |
| proxy_server2 | string | required |
| proxy_server3 | string | required |
| register_server | string | required |
| register_server2 | string | required |
| register_server3 | string | required |
| authorization_name | string | required |
| transport_protocol | string | optional |
| transport_protocol2 | string | optional |
| transport_protocol3 | string | optional |
| registration_expire_time | integer | optional |
Error Code: 200
Permission missing: Enable SIP Phone Integration by contacting a Zoom Admin first.
HTTP Status Code: 204
SIP Phone information updated successfully.
HTTP Status Code: 400
Bad Request
PATCH /sip_phones/{phoneId}
/tsp
Get information on Telephony Service Provider on an account level.
Prerequisites:
Scopes: tsp:read:admin
Rate Limit Label: Light
HTTP Status Code: 200
TSP account detail returned successfully.
GET /tsp
/tsp
Update information of the Telephony Service Provider set up on an account.
Prerequisites:
TSP account option should be enabled.
Scopes: tsp:write:admin
Rate Limit Label: Light
TSP Account
application/json
TspUpdateAccountTspInformationRequest
| Property | Type | Required |
|---|---|---|
| enable | boolean | optional |
| tsp_bridge | string | optional |
| tsp_enabled | boolean | optional |
| tsp_provider | string | optional |
| dial_in_number_unrestricted | boolean | optional |
| modify_credential_forbidden | boolean | optional |
| master_account_setting_extended | boolean | optional |
HTTP Status Code: 204 No Content
TSP Account updated.
HTTP Status Code: 400
Bad Request
Error Code: 300
Invalid parameter: tsp_bridge.
PATCH /tsp
/users/{userId}/tsp
A user can have a maximum of two TSP accounts. Use this API to list all TSP accounts of a user.
Scopes: tsp:read:admin,tsp:read
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | The user ID or email address of the user. For user-level apps, pass the |
HTTP Status Code: 200 OK
TSP account list returned successfully.
HTTP Status Code: 400
Bad Request
Error Code: 2024
Account has not enabled TSP.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: $userId.
Error Code: 1120
A valid invitation to join the Zoom account was not found for this user.
This error is thrown if you added a user in your account but the user did not accept the invitation on time and the invitation expired - thus making the userId invalid.
GET /users/{userId}/tsp
/users/{userId}/tsp
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | The user ID or email address of the user. For user-level apps, pass the |
TSP account.
application/json
TspAddUserTspAccountRequest
| Property | Type | Required |
|---|---|---|
| leader_pin | string | required |
| tsp_bridge | string | optional |
| conference_code | string | required |
| dial_in_numbers | array | optional |
| └ code | string | optional |
| └ type | string | optional |
| └ number | string | optional |
| └ country_label | string | optional |
HTTP Status Code: 201
TSP account added.
HTTP Status Code: 400
Bad Request
Error Code: 2024
Account has not enabled TSP.
Error Code: 300
Media link is required for AT&T TSP accounts.
Error Code: 300
You can add a max of two tsp configs.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: $userId.
Error Code: 1120
A valid invitation to join the Zoom account was not found for this user.
This error is thrown if you added a user in your account but the user did not accept the invitation on time and the invitation expired - thus making the userId invalid.
POST /users/{userId}/tsp
/users/{userId}/tsp/settings
A global dial-in page can provide a list of global access numbers using which audio conferencing can be conducted. By calling this API, you can set the url for the global dial-in page of a user whose Zoom account has TSP and special TSP with third-party audio conferencing options enabled. <p></p>
Scopes: tsp:write:admin,tsp:write
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | string | The userId or email address of the user. |
Global dial-in URL of the user.
application/json
TspSetGlobalDialInUrlRequest
| Property | Type | Required |
|---|---|---|
| audio_url | string | optional |
Status Code: 204 No Content
URL set successfully.
HTTP Status Code: 400
Bad Request
Error Code: 2000
Not TSP special account.
Ths error means that the account does not have special TSP privilege. Contact Zoom Developer Support for details.
Error Code: 2024
Account not enable TSP
HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} not exist or not belong to this account.
Error Code: 1120
Invite not exist.
This error is thrown if you added a user in your account but the user did not accept the invitation on time and the invitation expired - thus making the userId invalid.
PATCH /users/{userId}/tsp/settings
/users/{userId}/tsp/{tspId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | The user ID or email address of the user. For user-level apps, pass the |
|
| tspId | path | required | string | TSP account ID. |
Status Code: 204 No Content
TSP account deleted.
HTTP Status Code: 400
Bad Request
Error Code: 2024
Account not enable TSP.
Error Code: 300
The TSP id provided does not exist.
Error Code: 300
TSP Config does not exist.
Error Code: 300
At least one tsp config must be available.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: $userId.
Error Code: 1120
A valid invitation to join the Zoom account was not found for this user.
This error is thrown if you added a user in your account but the user did not accept the invitation on time and the invitation expired - thus making the userId invalid.
DELETE /users/{userId}/tsp/{tspId}
/users/{userId}/tsp/{tspId}
Each user can have a maximum of two TSP accounts. Use this API to retrieve details of a specific TSP account enabled for a specific user.
Scopes: tsp:read:admin,tsp:read
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | The user ID or email address of the user. For user-level apps, pass the |
|
| tspId | path | required | string | TSP account ID. |
HTTP Status Code: 200
TSP account retrieved successfully.
HTTP Status Code: 400
Bad Request
Error Code: 300
The TSP id provided does not exist.
Error Code: 300
TSP Config does not exist.
Error Code: 2024
Account has not enabled TSP.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: $userId.
Error Code: 1120
A valid invitation to join the Zoom account was not found for this user.
This error is thrown if you added a user in your account but the user did not accept the invitation on time and the invitation expired - thus making the userId invalid.
GET /users/{userId}/tsp/{tspId}
/users/{userId}/tsp/{tspId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | The user ID or email address of the user. For user-level apps, pass the |
|
| tspId | path | required | string | TSP account ID. |
TSP account.
application/json
TspUpdateUserTspAccountRequest
| Property | Type | Required |
|---|---|---|
| leader_pin | string | required |
| tsp_bridge | string | optional |
| conference_code | string | required |
| dial_in_numbers | array | optional |
| └ code | string | optional |
| └ type | string | optional |
| └ number | string | optional |
| └ country_label | string | optional |
HTTP Status Code:204 No Content
TSP account updated.
HTTP Status Code: 400
Bad Request
Error Code: 2024
Account has not enabled TSP.
Error Code: 300
The TSP id provided does not exist.
Error Code: 300
TSP Config does not exist.
Error Code: 300
At least one tsp config must be available.
Error Code: 300
Media link is required for AT&T TSP accounts.
Error Code: 300
Invalid parameter: tsp_bridge.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: $userId.
Error Code: 1120
A valid invitation to join the Zoom account was not found for this user.
This error is thrown if you added a user in your account but the user did not accept the invitation on time and the invitation expired - thus making the userId invalid.
PATCH /users/{userId}/tsp/{tspId}
/tracking_fields
Use this API to list all the tracking fields on your Zoom account. Tracking fields let you analyze usage by various fields within an organization.
Prerequisites:
Scopes: tracking_fields:read:admin
Rate Limit Label: Medium
HTTP Status Code: 200
List of Tracking Fields returned.
GET /tracking_fields
/tracking_fields
Use this API to create a new tracking field. Tracking fields let you analyze usage by various fields within an organization. When scheduling a meeting, tracking fields will be included in the meeting options.
Prerequisites:
Scopes: tracking_fields:write:admin
Rate Limit Label: Light
Tracking Field
application/json
TrackingFieldCreateFieldRequest
| Property | Type | Required |
|---|---|---|
| field | string | optional |
| visible | boolean | optional |
| required | boolean | optional |
| recommended_values | array | optional |
HTTP Status Code: 201
Tracking Field created
POST /tracking_fields
/tracking_fields/{fieldId}
Use this API to delete a tracking field.
Prerequisites:
Scopes: tracking_fields:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| fieldId | path | required | string | The Tracking Field ID |
HTTP Status Code: 204
Tracking Field deleted
HTTP Status Code: 404
Not Found
DELETE /tracking_fields/{fieldId}
/tracking_fields/{fieldId}
Use this API to return information about a tracking field.
Prerequisites:
Scopes: tracking_fields:read:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| fieldId | path | required | string | The Tracking Field ID |
HTTP Status Code: 200
Tracking Field object returned
HTTP Status Code: 404
Not Found
GET /tracking_fields/{fieldId}
/tracking_fields/{fieldId}
Use this API to update a tracking field.
Prerequisites:
Scopes: tracking_fields:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| fieldId | path | required | string | The Tracking Field ID |
application/json
TrackingFieldUpdateRequest
| Property | Type | Required |
|---|---|---|
| field | string | optional |
| visible | boolean | optional |
| required | boolean | optional |
| recommended_values | array | optional |
HTTP Status Code: 204
Tracking Field updated
HTTP Status Code: 404
Not Found
PATCH /tracking_fields/{fieldId}
/live_webinars/{webinarId}/chat/messages/{messageId}
Deletes a message in a live webinar based on ID.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: MEDIUM
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
| messageId | path | required | string | The live webinar chat message’s unique identifier (UUID), in base64-encoded format. |
| file_ids | query | optional | string | The live webinar chat file’s universally unique identifier (UUID), in base64-encoded format. Separate multiple values with commas. |
HTTP Status Code: 204
Webinar chat message deleted.
HTTP Status Code: 400
Bad Request
Error Code: 200
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar {webinarId} does not exist.
DELETE /live_webinars/{webinarId}/chat/messages/{messageId}
/past_webinars/{webinarId}/absentees
List absentees of a webinar.
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:list_absentees,webinar:read:list_absentees:admin
Rate Limit Label: HEAVY
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID).
|
| occurrence_id | query | optional | string | The meeting or webinar occurrence ID. |
| page_size | query | optional | integer | The number of records returned within a single API call. |
| next_page_token | query | optional | string | Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token’s expiration period is 15 minutes. |
HTTP Status Code: 200
Success.
Error Code: 200
Webinar plan subscription is missing. Enable webinar for this user once the subscription is added:{userId}.
HTTP Status Code: 400
Bad Request
Error Code: 300
The request could not be completed because you have provided an invalid occurrence ID: {occurrenceId}
Error Code: 1010
User does not belong to this account:{accountId}.
Error Code: 3000
This Webinar has not registration required: {webinarUUID}
HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} does not exist or does not belong to this account.
Error Code: 3001
Meeting ID is invalid or not end.
GET /past_webinars/{webinarId}/absentees
/past_webinars/{webinarId}/instances
List past webinar instances.
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:list_past_instances,webinar:read:list_past_instances:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 200
List of past webinar instances returned.
HTTP Status Code: 404
Not Found
GET /past_webinars/{webinarId}/instances
/past_webinars/{webinarId}/participants
Retrieve a list of all the participants who attended a webinar hosted in the past.
Prerequisites:
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:list_past_participants:admin,webinar:read:list_past_participants
Rate Limit Label: MEDIUM
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID).
|
| page_size | query | optional | integer | The number of records returned within a single API call. |
| next_page_token | query | optional | string | Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token’s expiration period is 15 minutes. |
HTTP Status Code: 200 OK
Participants list returned.
HTTP Status Code: 400
Bad Request
Error Code: 200
No permission.
Only available for paid account: {accountId}.
Error Code: 300
The next page token is invalid or expired.
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar does not exist.
GET /past_webinars/{webinarId}/participants
/past_webinars/{webinarId}/polls
The polling feature for webinar lets you create single-choice or multiple-choice polling questions for your webinars. This API endpoint retrieves the results for webinar polls of a specific webinar.
Prerequisites:
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:list_past_polls,webinar:read:list_past_polls:admin
Rate Limit Label: MEDIUM
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID).
|
HTTP Status Code: 200 OK
Polls returned successfully.
HTTP Status Code: 401
Unauthorized
Error Code: 1010
User does not belong to this account:{accountId}.
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar ID is invalid or not end.
This webinar id does not belong to you:{webinarId}.
GET /past_webinars/{webinarId}/polls
/past_webinars/{webinarId}/qa
List the Q&A of a specific past webinar.
The question & answer (Q&A) feature for webinars lets attendees ask questions during the webinar and for the panelists, co-hosts and host to answer their questions.
Prerequisites
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:past_qa,webinar:read:past_qa:admin
Rate Limit Label: MEDIUM
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID).
|
HTTP Status Code: 200 OK
Q&A returned successfully.
HTTP Status Code: 401
Unauthorized
Error Code: 1010
User does not belong to this account:{accountId}.
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar ID is invalid or not end.
This webinar id does not belong to you:{webinarId}.
GET /past_webinars/{webinarId}/qa
/users/{userId}/webinar_templates
Display a list of a user’s webinar templates. For user-level apps, pass the me value instead of the userId parameter. When you schedule a webinar, save the settings for that webinar as a template for scheduling future webinars. To use a template when scheduling a webinar, use the id value in this API response in the template_id field of the Create a webinar API. Prerequisites: * A Pro or a higher account with the Zoom Webinar plan.
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:list_templates,webinar:read:list_templates:admin
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | string | The user’s ID. To get a user’s ID, use the List users API. For user-level apps, pass the |
HTTP Status Code: 200 OK List of existing templates returned.
HTTP Status Code: 400
Bad Request
Error Code: 200
Cannot use webinar API, you need to subscribe webinar plan and then enable webinar for this user:{userId}.
Error Code: 1001
GET /users/{userId}/webinar_templates
/users/{userId}/webinar_templates
Use this API to create a webinar template from an existing webinar.
Scopes: webinar:write:admin,webinar:write
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | string | The user ID retrievable from the List users API. |
application/json
WebinarsCreateWebinarTemplateRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| overwrite | boolean | optional |
| webinar_id | integer | optional |
| save_recurrence | boolean | optional |
HTTP Status Code: 201
Webinar template created.
HTTP Status Code: 400
Bad Request
Error Code: 200
Webinar plan is missing. You must subscribe to the webinar plan and enable webinars for this user in order to perform this action: {userId}.
Error Code: 300
You can only create up to 40 webinar templates.
Error Code: 3000
Error Code: 3001
Webinar does not exist: {webinarId}.
HTTP Status Code: 404
Not Found
Error Code: 1001
POST /users/{userId}/webinar_templates
/users/{userId}/webinars
List all the webinars scheduled by or on behalf a webinar host. For user-level apps, pass the me value instead of the userId parameter.
Zoom users with a webinar plan have access to creating and managing webinars. Webinars let a host broadcast a Zoom meeting to up to 10,000 attendees.
Note This API only returns a user’s unexpired webinars.
Prerequisites
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:list_webinars,webinar:read:list_webinars:admin
Rate Limit Label: MEDIUM
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | string | The user’s user ID or email address. For user-level apps, pass the |
| type | query | optional | string | The type of webinar.
|
| page_size | query | optional | integer | The number of records returned within a single API call. |
| page_number | query | optional | integer | Deprecated We will no longer support this field in a future release. Instead, use the |
HTTP Status Code: 200
List of webinar objects returned.
HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} not exist or not belong to this account.
GET /users/{userId}/webinars
/users/{userId}/webinars
Schedule a webinar for a user who is a webinar host. For user-level apps, pass the me value instead of the userId parameter.
Webinars allow a host to broadcast a Zoom meeting to up to 10,000 attendees.
Rate limit:
Up to a maximum of 100 requests per day. The rate limit is applied to the userId of the webinar host used to make the request.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:write:webinar,webinar:write:webinar:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| userId | path | required | string | The user ID or email address of the user. For user-level apps, pass the |
application/json
WebinarsCreateWebinarRequest
| Property | Type | Required |
|---|---|---|
| type | integer | optional |
| topic | string | optional |
| agenda | string | optional |
| duration | integer | optional |
| password | string | optional |
| settings | object | optional |
| └ audio | string | optional |
| └ hd_video | boolean | optional |
| └ on_demand | boolean | optional |
| └ host_video | boolean | optional |
| └ survey_url | string | optional |
| └ contact_name | string | optional |
| └ add_watermark | boolean | optional |
| └ approval_type | integer | optional |
| └ contact_email | string | optional |
| └ enforce_login | boolean | optional |
| └ auto_recording | string | optional |
| └ email_language | string | optional |
| └ panelists_video | boolean | optional |
| └ practice_session | boolean | optional |
| └ alternative_hosts | string | optional |
| └ registration_type | integer | optional |
| └ show_share_button | boolean | optional |
| └ close_registration | boolean | optional |
| └ add_audio_watermark | boolean | optional |
| └ post_webinar_survey | boolean | optional |
| └ …21 more | object | optional |
| timezone | string | optional |
| recurrence | object | optional |
| └ type | integer | required |
| └ end_times | integer | optional |
| └ monthly_day | integer | optional |
| └ weekly_days | string | optional |
| └ monthly_week | integer | optional |
| └ end_date_time | string | optional |
| └ repeat_interval | integer | optional |
| └ monthly_week_day | integer | optional |
| start_time | string | optional |
| is_simulive | boolean | optional |
| template_id | string | optional |
| schedule_for | string | optional |
| record_file_id | string | optional |
| tracking_fields | array | optional |
| └ field | string | required |
| └ value | string | optional |
HTTP Status Code: 201
Webinar created.
HTTP Status Code: 400
Bad Request
Error Code: 200
Webinar plan is missing. You must subscribe to the webinar plan and enable webinars for this user in order to perform this action: {userId}.
Error Code: 300
The value that you entered for the schedule_for field is invalid. Enter a valid value and try again.
Error Code: 300
Can not schedule simulive webinar for others.
Error Code: 300
Account hasn’t enabled Simulive Webinar.
Error Code: 300
Record file does not exist.
Error Code: 3000
You cannot schedule a meeting for {userId}.
HTTP Status Code: 404
Not Found
Error Code: 1001
User does not exist: {userId}.
HTTP Status Code: 429
Too Many Requests
Error Code: 429
A maximum of ({rateLimitNumber}) webinars can be created and updated for a single user in one day.
POST /users/{userId}/webinars
/webinars/{webinarId}
Delete a webinar.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:delete:webinar,webinar:delete:webinar:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
| occurrence_id | query | optional | string | The meeting or webinar occurrence ID. |
| cancel_webinar_reminder | query | optional | boolean |
The default value of this field is |
HTTP Status Code: 204
Webinar deleted.
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account:{accountId}.
Error Code: 3002
Sorry, you cannot delete this webinar since it is in progress.
Error Code: 3003
You are not the webinar host.
Error Code: 3007
Sorry, you cannot delete this webinar since it has ended.
Error Code: 3018
Not allowed to delete PMI.
Error Code: 3037
Not allowed to delete PAC.
HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} does not exist or does not belong to this account.
Error Code: 3001
Webinar {webinarId} not found or has expired.
DELETE /webinars/{webinarId}
/webinars/{webinarId}
Get details for a scheduled Zoom Webinar.
Prerequisites:
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:webinar,webinar:read:webinar:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s ID or universally unique ID (UUID). |
| occurrence_id | query | optional | string | Unique identifier for an occurrence of a recurring webinar. Recurring webinars can have a maximum of 50 occurrences. When you create a recurring Webinar using Create a webinar API, you can retrieve the Occurrence ID from the response of the API call. |
| show_previous_occurrences | query | optional | boolean | Set the value of this field to |
HTTP Status Code: 200
Success
HTTP Status Code: 400
Bad Request
Error Code: 300
Invalid webinar ID.
Error Code: 200
Webinar plan is missing. You must subscribe to the webinar plan and enable webinars for this user to perform this action.
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar does not exist: {webinarId}.
GET /webinars/{webinarId}
/webinars/{webinarId}
Make updates to a scheduled webinar.
100 requests per day. The rate limit is applied to the userId of the webinar host used to make the request.
Prerequisites
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:update:webinar,webinar:update:webinar:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
| occurrence_id | query | optional | string | Webinar occurrence ID. Support change of agenda, start time, duration, and settings |
Webinar.
application/json
WebinarsUpdateScheduledWebinarRequest
| Property | Type | Required |
|---|---|---|
| type | integer | optional |
| topic | string | optional |
| agenda | string | optional |
| duration | integer | optional |
| password | string | optional |
| settings | object | optional |
| └ audio | string | optional |
| └ hd_video | boolean | optional |
| └ on_demand | boolean | optional |
| └ host_video | boolean | optional |
| └ survey_url | string | optional |
| └ contact_name | string | optional |
| └ add_watermark | boolean | optional |
| └ approval_type | integer | optional |
| └ contact_email | string | optional |
| └ enforce_login | boolean | optional |
| └ auto_recording | string | optional |
| └ email_language | string | optional |
| └ panelists_video | boolean | optional |
| └ practice_session | boolean | optional |
| └ alternative_hosts | string | optional |
| └ registration_type | integer | optional |
| └ show_share_button | boolean | optional |
| └ close_registration | boolean | optional |
| └ notify_registrants | boolean | optional |
| └ add_audio_watermark | boolean | optional |
| └ …24 more | object | optional |
| timezone | string | optional |
| recurrence | object | optional |
| └ type | integer | required |
| └ end_times | integer | optional |
| └ monthly_day | integer | optional |
| └ weekly_days | string | optional |
| └ monthly_week | integer | optional |
| └ end_date_time | string | optional |
| └ repeat_interval | integer | optional |
| └ monthly_week_day | integer | optional |
| start_time | string | optional |
| is_simulive | boolean | optional |
| schedule_for | string | optional |
| record_file_id | string | optional |
| tracking_fields | array | optional |
| └ field | string | optional |
| └ value | string | optional |
HTTP Status Code: 204
Webinar updated.
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account: {accountId}
Error Code: 3003
3000 300 200 HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} does not exist or does not belong to this account.
Error Code: 3001
Webinar {webinarId} not found or has expired.
PATCH /webinars/{webinarId}
/webinars/{webinarId}/batch_registrants
Register up to 30 registrants at once for a scheduled webinar that requires registration.
Prerequisites:
5, a scheduled webinar. Other types of webinars are not supported by this API.Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:write:batch_registrants,webinar:write:batch_registrants:admin
Rate Limit Label: HEAVY
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s unique identifier. |
application/json
WebinarsCreateBatchRegistrantsRequest
| Property | Type | Required |
|---|---|---|
| registrants | array | optional |
| string | required | |
| └ last_name | string | optional |
| └ first_name | string | required |
| auto_approve | boolean | optional |
HTTP Status Code: 200 OK
Registrants added.
HTTP Status Code: 400
Bad Request
Error Code: 200
Webinar plan is missing. You must subscribe to the Webinar plan and enable webinars for the “{0}” user to perform this action.
Error Code: 300
This API can only be used for scheduled webinars (type 5). Batch registration is not supported for other webinar types.
Error Code: 3038
The webinar is over. You cannot register now. If you have any questions, contact the Webinar host.
Error Code: 3000
Registration not enabled for this webinar: {0}
Error Code: 3000
You have reached the limit for the number of attendees you can add. Contact Zoom Support for more information.
Error Code: 3000
The Zoom REST API does not support paid registration.
HTTP Status Code: 404
Not Found
Error Code: 3001
Webinar does not exist: {0}.
Error Code: 3043
Webinar has reached maximum attendee capacity.
Error Code: 404
Registration has not been enabled for this meeting: {meetingId}.
HTTP Status Code: 429
Too Many Requests
POST /webinars/{webinarId}/batch_registrants
/webinars/{webinarId}/branding
Use this API to get the webinar’s Session Branding information. Session branding lets hosts visually customize a webinar by setting a webinar wallpaper that displays behind video tiles. Session branding also lets hosts set the Virtual Background for and apply name tags to hosts, alternative hosts, panelists, interpreters, and speakers.
Prerequisites:
Scopes: webinar:read,webinar:read:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 200
Webinar session branding returned.
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account: {accountId}
Error Code: 3000
You cannot enable session branding for this webinar.
HTTP Status Code: 404
Not Found
Error Code: 1001
User “{userId}” does not exist or does not belong to this account.
Error Code: 3001
Webinar “{webinarId}” not found or has expired.
GET /webinars/{webinarId}/branding
/webinars/{webinarId}/branding/name_tags
Use this API to delete a webinar’s Session Branding name tag.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| name_tag_ids | query | optional | string | A comma-separated list of the name tag IDs to delete. |
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 204
HTTP Status Code: 400
Bad Request
Error Code: 300
Invalid parameter: name_tag_ids
Error Code: 3000
This webinar does not have session branding enabled.
HTTP Status Code: 404
Not Found
DELETE /webinars/{webinarId}/branding/name_tags
/webinars/{webinarId}/branding/name_tags
Use this API to create a webinar’s Session Branding name tag. There’s a limit of 20 name tags per webinar. Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
application/json
WebinarsCreateBrandingNameTagRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| is_default | boolean | optional |
| text_color | string | required |
| accent_color | string | required |
| background_color | string | required |
| set_default_for_all_panelists | boolean | optional |
HTTP Status Code: 201
Name tag created.
HTTP Status Code: 400
Bad Request
Error Code: 3000
This webinar does not have session branding enabled.
You have reached the limit for the number of name tags you can add for this webinar. The limit is 20.
HTTP Status Code: 404
Not Found
POST /webinars/{webinarId}/branding/name_tags
/webinars/{webinarId}/branding/name_tags/{nameTagId}
Use this API to update a webinar’s Session Branding name tag. Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
| nameTagId | path | required | string | The name tag’s ID. |
application/json
WebinarsUpdateBrandingNameTagRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| is_default | boolean | optional |
| text_color | string | optional |
| accent_color | string | optional |
| background_color | string | optional |
| set_default_for_all_panelists | boolean | optional |
HTTP Status Code: 204
HTTP Status Code: 400
Bad Request
Error Code: 3000
This webinar does not have session branding enabled.
HTTP Status Code: 404
Not Found
PATCH /webinars/{webinarId}/branding/name_tags/{nameTagId}
/webinars/{webinarId}/branding/virtual_backgrounds
Use this API to delete a webinar’s session branding Virtual Background.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | optional | string | A comma-separated list of the Virtual Background file IDs to delete. |
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 204
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account: {accountId}
Error Code: 300
Invalid parameter: ids
Error Code: 3000
This webinar does not have session branding enabled.
HTTP Status Code: 404
Not Found
Error Code: 1001
User “{userId}” does not exist or does not belong to this account.
Error Code: 3001
Webinar “{webinarId}” not found or has expired.
DELETE /webinars/{webinarId}/branding/virtual_backgrounds
/webinars/{webinarId}/branding/virtual_backgrounds
Use this API to set a webinar’s default session branding Virtual Background.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | query | optional | string | The Virtual Background file ID to update. |
| set_default_for_all_panelists | query | optional | boolean | Whether to set the Virtual Background file as the new default for all panelists. This includes panelists not currently assigned a default Virtual Background. |
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 204
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account: {accountId}
Error Code: 300
Invalid parameter: {id}
Error Code: 3000
This webinar does not have session branding enabled.
HTTP Status Code: 404
Not Found
Error Code: 1001
User “{userId}” does not exist or does not belong to this account.
Error Code: 3001
Webinar “{webinarId}” not found or has expired.
PATCH /webinars/{webinarId}/branding/virtual_backgrounds
/webinars/{webinarId}/branding/virtual_backgrounds
Use this API to upload a webinar’s session branding Virtual Background. Hosts and panelists can select and use these Virtual Backgrounds during the webinar. Branding Virtual Background files have the following restrictions:
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
multipart/form-data
WebinarsUploadBrandingVirtualBackgroundRequest
| Property | Type | Required |
|---|---|---|
| file | string | required |
| default | boolean | optional |
| set_default_for_all_panelists | boolean | optional |
HTTP Status Code: 201
Virtual Background uploaded.
HTTP Status Code: 400
Bad Request
Error Code: 3000
This webinar does not have session branding enabled.
Error Code: 120
HTTP Status Code: 404
Not Found
Error Code: 1001
User “{userId}” does not exist or does not belong to this account.
Error Code: 3001
Webinar “{webinarId}” not found or has expired.
POST /webinars/{webinarId}/branding/virtual_backgrounds
/webinars/{webinarId}/branding/wallpaper
Use this API to delete a webinar’s session branding wallpaper file.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 204
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account: {accountId}
Error Code: 300
Invalid parameter: {id}
Error Code: 3000
This webinar does not have session branding enabled.
HTTP Status Code: 404
Not Found
Error Code: 1001
User “{userId}” does not exist or does not belong to this account.
Error Code: 3001
Webinar “{webinarId}” not found or has expired.
DELETE /webinars/{webinarId}/branding/wallpaper
/webinars/{webinarId}/branding/wallpaper
Use this API to upload a webinar’s session branding wallpaper file. Webinar branding wallpaper files have the following requirements:
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Rate Limit Label: Medium
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
multipart/form-data
WebinarsUploadBrandingWallpaperRequest
| Property | Type | Required |
|---|---|---|
| file | string | required |
HTTP Status Code: 201
Webinar wallpaper uploaded.
HTTP Status Code: 400
Bad Request
Error Code: 3000
This webinar does not have session branding enabled.
Error Code: 120
HTTP Status Code: 404
Not Found
Error Code: 1001
User “{userId}” does not exist or does not belong to this account.
Error Code: 3001
Webinar “{webinarId}” not found or has expired.
POST /webinars/{webinarId}/branding/wallpaper
/webinars/{webinarId}/invite_links
Create a batch of invitation links for a webinar.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:write:invite_links,webinar:write:invite_links:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
Webinar invite link object.
application/json
WebinarsCreateInviteLinksRequest
| Property | Type | Required |
|---|---|---|
| ttl | integer | optional |
| attendees | array | optional |
| └ name | string | required |
HTTP Status Code: 201
Webinar Invite Links Created
HTTP Status Code: 400
Bad Request
Error Code: 300
3001 1001 200 POST /webinars/{webinarId}/invite_links
/webinars/{webinarId}/jointoken/live_streaming
Use this API to get a webinar’s archive token to allow live streaming. The join token allows a recording bot implemented using Zoom meeting SDK to connect to a Zoom meeting "hosted by the issuer of the token", and can call the streaming method automatically. It supports both regular live streaming, and raw streaming.
Prerequisites:
Scopes: webinar_token:read:admin:live_streaming,webinar_token:read:live_streaming
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 200
Webinar live streaming token returned.
HTTP Status Code: 400
Bad Request
Error Code: 300
Invalid webinar ID.
Error Code: 124
This API only supports OAuth2 authorization.
Error Code: 3000
Not allowed to start live streaming. To use this feature, enable the “Allow livestreaming of webinars” setting in the “Settings” page of the Zoom web portal.
HTTP Status Code: 404
Not Found
Error Code: 300
Webinar ID does not exist.
Error Code: 3001
Webinar does not exist: {webinarId}
GET /webinars/{webinarId}/jointoken/live_streaming
/webinars/{webinarId}/jointoken/local_archiving
Use this API to get a webinar’s archive token to allow local archiving. The archive token allows a meeting SDK app or bot to get archive permission to access the webinar’s raw audio and video media stream in real-time.
Prerequisites:
Scopes: webinar_token:read:admin:local_archiving
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 200
Webinar local archiving token returned.
HTTP Status Code: 400
Bad Request
Error Code: 300
Invalid webinar ID.
Error Code: 124
This API only supports OAuth2 authorization.
Error Code: 3000
Not allowed to start local archiving. To use this feature, enable the “Archive meetings and webinars” setting in the “Settings” page of the Zoom web portal.
HTTP Status Code: 404
Not Found
Error Code: 300
Webinar ID does not exist.
Error Code: 3001
Webinar does not exist: {webinarId}
GET /webinars/{webinarId}/jointoken/local_archiving
/webinars/{webinarId}/jointoken/local_recording
Use this API to get a webinar’s join token to allow for local recording. The join token lets a recording bot implemented using Zoom Meeting SDK to connect to a Zoom webinar. The recording bot can then automatically start locally recording. This supports both regular and raw local recording types.
Prerequisites:
Scopes: webinar_token:read:admin:local_recording,webinar_token:read:local_recording
Rate Limit Label: Light
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 200
Webinar local recording token returned.
HTTP Status Code: 400
Bad Request
Error Code: 300
Invalid webinar ID.
Error Code: 124
This API only supports OAuth2 authorization.
Error Code: 3000
Not allowed to start local recording. To use this feature, enable the “Local Recording” setting in the “Settings” page of the Zoom web portal.
HTTP Status Code: 404
Not Found
Error Code: 300
Webinar ID does not exist.
Error Code: 3001
Webinar does not exist: {webinarId}
GET /webinars/{webinarId}/jointoken/local_recording
/webinars/{webinarId}/livestream
Get a webinar’s live stream configuration details, such as Stream URL, Stream Key and Page URL.
Zoom allows users to live stream a webinar to a custom platform.
Prerequisites:
Pro or higher plan with the webinar add-on.
Live streaming details must have been configured for the webinar.
Scopes: webinar:read:admin,webinar:read
Granular Scopes: webinar:read:livestream,webinar:read:livestream:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | string | The webinar’s unique ID. |
HTTP Status Code: 200 OK Live stream details returned.
HTTP Status Code: 400
Bad Request
Error Code: 300
3001 1001 200 GET /webinars/{webinarId}/livestream
/webinars/{webinarId}/livestream
Update a webinar’s live stream information.
Prerequisites:
Pro or higher plan with the webinar add-on.
Live streaming details must be configured for the webinar.
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:update:livestream,webinar:update:livestream:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
Webinar
application/json
WebinarsUpdateLiveStreamRequest
| Property | Type | Required |
|---|---|---|
| page_url | string | required |
| resolution | string | optional |
| stream_key | string | required |
| stream_url | string | required |
HTTP Status Code: 204
Meeting live stream updated.
HTTP Status Code: 400
Bad Request
Error Code: 300
3001 1001 200 PATCH /webinars/{webinarId}/livestream
/webinars/{webinarId}/livestream/status
Let users live stream a webinar to a custom platform. Update the status of a webinar’s live stream.
Prerequisites:
Pro or higher plan with a Webinar Add-on.
Live streaming details must be configured for the webinar.
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:update:livestream_status,webinar:update:livestream_status:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
Webinar
application/json
WebinarsUpdateLiveStreamStatusRequest
| Property | Type | Required |
|---|---|---|
| action | string | optional |
| settings | object | optional |
| └ display_name | string | optional |
| └ active_speaker_name | boolean | optional |
HTTP Status Code: 204
Meeting live stream updated.
HTTP Status Code: 400
Bad Request
Error Code: 300
3001 1001 200 3000 PATCH /webinars/{webinarId}/livestream/status
/webinars/{webinarId}/panelists
Remove all the panelists from a webinar.
Prerequisites:
Scopes: webinar:write,webinar:write:admin
Granular Scopes: webinar:delete:panelist,webinar:delete:panelist:admin
Rate Limit Label: LIGHT
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webinarId | path | required | integer | The webinar’s ID. |
HTTP Status Code: 204
Panelists removed.
HTTP Status Code: 400
Bad Request
Error Code: 1010
User does not belong to this account:{accountId}.
HTTP Status Code: 404
Not Found
Error Code: 1001
User {userId} does not exist or does not belong to this account.
Error Code: 3001
Webinar {webinarId} not found or has expired.
DELETE /webinars/{webinarId}/panelists