Meetings Webhooks
- OpenAPI Version:
3.1.1 - API Version:
1.0.0
The Zoom Meeting webhooks allow developers to receive events for Zoom Meetings and Webinars.
Servers
- URL:
https://{your-endpoint-url}
Operations
meeting.participant_jbh_waiting
- Method:
POST - Path:
meeting.participant_jbh_waiting - Tags: Meetings
The Participant waiting for host to join event is triggered every time an attendee has been waiting for the host to join the meeting for at least 30 seconds.
NOTE For native clients and SDKs, the Participant waiting for host to join event is triggered every time an attendee using the native client has been waiting for the host to join the meeting for at least 30 seconds. For web clients and SDKs, this webhook fires immediately.
When scheduling a meeting, the organizer or host of the meeting can enable the Enable join before host option. This allows attendees to join the meeting before the host of the meeting arrives. This meeting also starts as soon as the first meeting participant joins.
If this option is disabled, participants are prompted to wait for the host to arrive before joining the meeting.
Prerequisites
- A Pro or a higher plan.
- Disable the Enable join before host option for the scheduled meeting.
- The attendee has been waiting for at least 30 seconds before the event is triggered.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant waiting for host to join subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"id": "",
"user_name": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.summary_recovered
- Method:
POST - Path:
meeting.summary_recovered - Tags: Meetings
The Meeting summary has been recovered from trash event is triggered every time one of your app users or account users recovers a summary from the trash.
Prerequisites
- Host user must be Pro or higher plan.
- Enable the Meeting Summary with AI Companion feature in the host's account.
- E2ee meetings do not have summary feature enabled.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting summary has been recovered from trash subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who recovered the meeting summary.operator_id(required)string— The user ID of the user who recovered the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_left_breakout_room
- Method:
POST - Path:
meeting.participant_left_breakout_room - Tags: Meetings
The Meeting participant has left a breakout room event is triggered when a meeting participant leaves a meeting breakout room.
Breakout rooms are sessions that are split off from the main Zoom meeting. They let participants meet in smaller groups and are completely isolated in terms of audio and video from the main session.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting participant has left a breakout room subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom.leave_time(required)string, format:date-time— The time when the participant left the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.leave_reasonstring— The reason why the participant left the meeting.parent_user_idstring— The participant's main meeting user ID (`user_id`).participant_user_idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"leave_time": "",
"leave_reason": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"phone_number": "8615250064084",
"customer_key": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.device_tested
- Method:
POST - Path:
meeting.device_tested - Tags: Meetings
The Meeting Device Tested event is triggered every time a user completes a connected device test.
When a user joins a meeting, they choose to test their connected camera, microphone, and speaker devices. The Zoom client performs a test for the selected device and prompts a user to confirm whether the device works.
Prerequisites
- Create the meeting via the Create a Meeting API with the
device_testingset to true. - Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Device Tested subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)objectid(required)integer, format:int64— The meeting ID.test_result(required)object— Information about the meeting's device test results.camera_status(required)integer, possible values:0, 1, 2— The camera's status: * `2` — Device working. * `1` — Device not working. * `0` — Device not tested.microphone_status(required)integer, possible values:0, 1, 2— The microphone's status: * `2` — Device working. * `1` — Device not working. * `0` — Device not tested.speaker_status(required)integer, possible values:0, 1, 2— The speaker's status: * `2` — Device working. * `1` — Device not working. * `0` — Device not tested.user_id(required)string— The user's ID.user_name(required)string— The user's username.osstring— The user's operating system.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"test_result": {
"user_id": "",
"user_name": "",
"camera_status": 0,
"speaker_status": 0,
"microphone_status": 0,
"os": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.summary_shared
- Method:
POST - Path:
meeting.summary_shared - Tags: Meetings
The Meeting summary has been shared event is triggered every time one of your app users or account users shares a meeting summary.
Prerequisites
- Host user must have a Pro or higher plan.
- Enable the Meeting Summary with AI Companion feature in the host's account.
- E2ee meetings do not have summary feature enabled.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting summary has been shared subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID. After a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.share_with_users(required)array— Information about the shared users.Items: user_email(required)string, format:email— The shared user email.
summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who shared the meeting summary.operator_id(required)string— The user ID of the user who shared the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"share_with_users": [
{
"user_email": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.chat_message_file_downloaded
- Method:
POST - Path:
webinar.chat_message_file_downloaded - Tags: Webinars
The In-webinar chat message file has been downloaded event is triggered when a message file from a webinar is downloaded. The webhook is needed to enable the DLP option in the web portal.
Prerequisites
- Have Zoom enable the DLP for in-meeting chat for your account. This feature is only enabled upon request. Contact the Zoom support team for more information.
- Enable the In-webinar chat message file has been downloaded subscription for your app. In your Marketplace app go to Event Subscriptions > Webinar.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectobject(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.file_id(required)string— The live webinar chat file's UUID.file_name(required)string— The live webinar chat file's name.file_size(required)integer— The live webinar chat file's size, in bytes.file_type(required)string— The live webinar chat file's type.file_owner_idstring— The user ID of the user who uploaded the team chat file. This value returns blank for external users.
host_account_id(required)string— The webinar host's account ID. The value will be an empty string if this info is from an external user.id(required)integer, format:int64— The webinar ID.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a meeting UUID.
operator(required)string, format:email or name— The email address of the user who downloaded the file. This value returns the operator name for external users.account_idstring— The account ID of the user who downloaded the file. This value returns blank for external users.operator_idstring— The user ID of the user who downloaded the file. This value returns blank for external users.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_account_id": "",
"chat_message_file": {
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"file_owner_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.deleted
- Method:
POST - Path:
webinar.deleted - Tags: Webinars
The Webinar has been deleted event is triggered every time a webinar scheduled by one of your app users or account users, is deleted.
A webinar host or a user with admin privileges can delete a scheduled webinar. Users can delete a webinar using the Delete feature for a webinar, from the Zoom Web Portal or the Zoom Client App. Alternatively, users can use the Delete a webinar API to delete webinars programmatically.
Prerequisites:
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar has been deleted subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who deleted the webinar.object(required)object— Information about the webinar.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.durationinteger— The scheduled webinar duration.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
start_timestring, format:date-time— The webinar's start time.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The webinar's topic.
operator(required)string— The email address of the user who deleted the webinar.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all webinars. * `single` — The change was applied only to a single webinar.operator_idstring— The user ID of the user who deleted the webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
recording.registration_approved
- Method:
POST - Path:
recording.registration_approved - Tags: Cloud Recording
The View registrant has approved for this recording event is triggered every time a registrant is approved to view a cloud recording.
Cloud recordings of Zoom meetings and webinars can be made on-demand. With on-demand recordings, users can view the recordings of past meetings and webinars at any time as long as they have not been removed. To view these recordings, users can register manually by filling out the registration form that pops up when users click on the Recording URL. After the registration, registrants that are approved will be able to view the recording.
An account owner, a host of the meeting/webinar or a user with admin privileges can customize the cloud recording registration approval settings. If the Automatically Approve setting is enabled, registrants can view the recording automatically after a successful registration. If the Manually Approve setting is enabled, the registrants must be manually approved before they can view the recording.
Registrants can also be approved programmatically using the Update registrant status API.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- The approval setting for the cloud recording registration must be set to Manually Approve.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The View registrant has approved for this recording subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host that recorded the meeting or webinar.object(required)object— Information about the recording registration.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).registrant(required)object— Information about the recording registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.last_name(required)string— The registrant's last name.idstring— The registrant's ID.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user that approved registration for the meeting or webinar recording.operator_id(required)string— The user ID of the user that approved registration for the meeting or webinar recording.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"registrant": {
"id": "",
"email": "",
"first_name": "",
"last_name": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.risk_alert
- Method:
POST - Path:
meeting.risk_alert - Tags: Meetings
The At-Risk Meeting Notifier event is triggered every time someone posts a Zoom meeting link to a social media account, such as Reddit or Twitter. The webhook sends the event to an authorized OAuth app.
The At-Risk Meeting Notifier (ARMN) scans public posts on social media sites and other public online resources for Zoom meeting links. When it finds publicly-posted meeting information indicating that a given meeting may be at high risk of being disrupted, Zoom notifies account owners and admins via email.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The At-Risk Meeting Notifier subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.armn_details(required)object— Information about the at-risk meeting notifier (ARMN).meeting_urlstring— The meeting's URL.post_platformstring— The post's social media platform. For example, Twitter, Reddit, or Facebook.post_timestring, format:date-time— The post's timestamp.post_userstring— The user who created the social media post.recommended_disable_settingsarray— A comma-separated list of the recommended settings to disable: * `enableAnnotation` * `enableMeetingChat` * `enableScreenShare` * `enableMultipleShare`Items: string, possible values:"enableAnnotation", "enableMeetingChat", "enableScreenShare", "enableMultipleShare"recommended_enable_settingsarray— A comma-separated list of the recommended settings to enable: * `enablePassword` * `enableWaitingRoom` * `enableOnlyAuthenticated` * `enableRegistration` * `enableScreenShareLock` * `enableScreenShareHostOnly` * `enableSpecifiedDomain`Items: string, possible values:"enablePassword", "enableWaitingRoom", "enableOnlyAuthenticated", "enableRegistration", "enableScreenShareLock", "enableScreenShareHostOnly", "enableSpecifiedDomain"social_linkstring— The link to the social media post.
host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"armn_details": {
"post_platform": "",
"social_link": "",
"post_time": "",
"post_user": "",
"meeting_url": "",
"recommended_enable_settings": [
"enablePassword"
],
"recommended_disable_settings": [
"enableAnnotation"
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.aic_transcript_completed
- Method:
POST - Path:
meeting.aic_transcript_completed - Tags: Meetings
The AIC transcript completed triggers when the meeting transcript file is completed after a meeting or webinar ends.
Prerequisites
- Enable the Meeting Summary with AI Companion feature and Allow meeting hosts to retain and access meeting transcripts in the host's account.
- Do not enable transcripts for E2ee meetings.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The AIC transcript completed subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the transcript.attach_type(required)string, format:string— Each file ID has many attachments. Use this `attach_type` to download different attachments. In this webhook, the `attach_type` always equals `durable_transcript`.file_id(required)string, format:string— Transcript file ID.host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"host_id": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"file_id": "aDYlohsHRtCd4ii1uC290OP",
"attach_type": "durable_transcript",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.participant_feedback
- Method:
POST - Path:
webinar.participant_feedback - Tags: Webinars
The Get participant survey feedback for webinars event is triggered every time an attendee completes an end-of-webinar feedback survey for a webinar. A webinar attendee is a webinar participant or the host.
Prerequisites
Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Get participant survey feedback for webinars subscription must be enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who commits the feedback.object(required)object— Information about the webinar.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.feedback(required)object— Information about the feedback.satisfied(required)boolean— Whether the participant is satisfied.commentsstring— The participant's comments. This returns null if the `satisfied` field is `true`.feedback_detailsarray— The feedback details. This returns null if the `satisfied` field is `true`.Items: id(required)string— The feedback ID. * `1` — Poor video quality. * `2` — Poor audio quality. * `5` — Unable to present using share.zoom.us. * `7` — Unable to make phone call. * `8` — They could not hear us. * `9` — We could not hear them. * `10` — They could not see us. * `11` — We could not see them. * `12` — Could not present computer screen. * `999` — Others.name(required)string— The feedback name.
participant_user_id(required)string— The participant's universally unique ID (UUID). This value returns blank for external users.participant_uuid(required)string— The participant's meeting universally unique ID (UUID). This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting. This value will not be changed when the participant joins/leaves a breakout room.user_name(required)string— The participant's display name.
uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"participant": {
"participant_uuid": "",
"participant_user_id": "",
"user_name": "",
"feedback": {
"satisfied": true,
"feedback_details": [
{
"id": "",
"name": ""
}
],
"comments": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_joined_waiting_room
- Method:
POST - Path:
meeting.participant_joined_waiting_room - Tags: Meetings
The Participant joined a waiting room event is triggered every time an attendee joins a waiting room prior to being admitted to the meeting. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
The waiting room feature allows the host to control when participants join a meeting. When a participant attempts to join a meeting with this feature enabled, the participant is first admitted to the waiting room. The meeting host can then admit attendees one by one or hold all attendees in the waiting room and admit them all at once.
Prerequisites
- Enable the waiting room feature for the meeting.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant joined a waiting room subscription must be enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the main meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"date_time": "",
"email": "",
"phone_number": "8615250064084",
"participant_user_id": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.ai_companion_assets_deleted
- Method:
POST - Path:
meeting.ai_companion_assets_deleted - Tags: Meetings
The AI Companion assets deleted event is triggered when all AI Companion meeting assets, such as transcripts and summaries, are deleted during a live meeting.
Prerequisites
- Host user must be Pro or higher plan.
- Enable AI Companion.
- E2EE meetings do not support the AI Companion feature.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The AI Companion assets deleted subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting.object(required)object— The meeting where the AI Companion assets were deleted.ai_companion(required)object— The AI Companion assets that were deleted.deleted_assets(required)array— List of AI Companion assets that were deleted.Items: string, possible values:"transcripts", "summaries"
host_id(required)string— The ID of the user set as the host of the meeting.meeting_number(required)integer, format:int64— The meeting number.meeting_uuid(required)string— The meeting's universally unique identifier (UUID).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_number": 1,
"meeting_uuid": "",
"host_id": "",
"ai_companion": {
"deleted_assets": [
"transcripts"
]
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.converted_to_meeting
- Method:
POST - Path:
webinar.converted_to_meeting - Tags: Webinars
The Webinar has been converted to a Meeting event is triggered every time one of your app users or account users converts a webinar into a meeting.
Prerequisites
- Pro or a higher plan with Webinar license.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Webinar has been converted to a Meeting subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.payload(required)objectaccount_id(required)string— The account ID of the user who converted the webinar into a meeting.object(required)object— Information about the meeting converted from a webinar.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.type(required)integer, possible values:2, 3, 8— The meeting type. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `8` - A recurring meeting with fixed time.uuid(required)string— The meeting's universally unique identifier (UUID).durationinteger— The scheduled meeting's duration, in minutes. Returned only when the meeting type is `2`.start_timestring, format:date-time— The scheduled meeting's start time. Returned only when the meeting type is `2`.timezonestring— The meeting's [timezone](/docs/api/references/abbreviations/#timezones).topicstring— The meeting's topic.
operator(required)string— The email address of the user who converted the webinar into a meeting.operator_idstring— The user ID of the user who converted the webinar into a meeting.
event_tsinteger, format:int64— A timestamp at which the event occurred.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 2,
"start_time": "",
"duration": 1,
"timezone": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_phone_callout_ringing
- Method:
POST - Path:
meeting.participant_phone_callout_ringing - Tags: Meetings
The Invited party's phone (call out) ringing event is triggered every time a user's phone rings when they are invited to join a meeting through phone (call out).
Prerequisites
Enable Event Subscriptions for your Marketplace app with these configurations.
- A valid Event Notification Endpoint URL.
- The Invited party's phone (call out) ringing subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_jbh_joined
- Method:
POST - Path:
meeting.participant_jbh_joined - Tags: Meetings
The Participant joined meeting before host event is triggered every time an attendee joins a meeting before the host. The host of the meeting must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
When scheduling a meeting, the organizer or host of the meeting can enable the Enable join before host option. This allows attendees to join the meeting before the host of the meeting arrives. This meeting also starts as soon as the first meeting participant joins.
If this option is disabled, participants are prompted to wait for the host to arrive before joining the meeting.
Prerequisites
- A Pro or a higher plan.
- Enable the Enable join before host option for the scheduled meeting.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant joined meeting before host subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"id": "",
"user_name": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.invitation_accepted
- Method:
POST - Path:
meeting.invitation_accepted - Tags: Meetings
The Invited party answered a meeting invitation event is triggered every time an invitation's recipient accepts an invitation to join a meeting or video call. This event is only suitable for triggering with the ZOOM client.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with these configurations:
- A valid Event Notification Endpoint URL.
- The Invited party answered a meeting invitation subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who accepted the meeting.operator_id(required)string— The user ID of the user who accepted the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.archive_files_completed
- Method:
POST - Path:
recording.archive_files_completed - Tags: Cloud Recording
The Recording Archive Files Completed event is triggered every time the archived files of a meeting or webinar become available to download.
Zoom's meeting and webinar archiving solution allows account administrators to set up an automated mechanism to collect and archive meeting data to a 3rd party platform of their choice. This helps to satisfy FINRA or other compliance requirements.
The archiving process begins once a meeting or webinar, hosted by an account that has enabled the archiving feature, begins. The archiving of the meeting data completes after a meeting or webinar ends.
This feature is only enabled upon request approval. Contact the Zoom support team for more information.
Prerequisites
- The Archiving feature must be enabled on the user's account.
- Enable Event Subscriptions in your Marketplace app with these configurations.
- A valid Event notification endpoint URL.
- The Recording Archive Files Completed subscription enabled under the Recording event.
Request Body
Content-Type: application/json
download_token(required)string— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation, and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request. **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_idstring— The account ID of the user who hosted the meeting or the webinar.objectobject— Information about the webinar or meeting recording.account_namestring— The user's account name.archive_filesarray— Information about the archive files.Items: download_urlstring— The URL to download the archived file. To download the archived file of a meeting or a webinar, use the `download_token` value included in the webhook as the `access_token` query parameter value and include this query parameter at the end of the URL. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{your-download_token-value}}`encryption_fingerprintstring— The archived file's encryption fingerprint, using the SHA256 hash algorithm.file_extensionstring— The archived file's extension.file_namestring— The archived file's name.file_sizeinteger— The archived file's size, in bytes.file_typestring, possible values:"MP4", "M4A", "TRANSCRIPT", "CHAT", "CC", "CHAT_MESSAGE"— The archived file's type. * `MP4` - Video file. * `M4A` - Audio-only file. * `TRANSCRIPT` - A transcription file, in VTT format. * `CHAT` - A TXT file containing in-meeting chat messages. * `CC` - A file containing the closed captions of the recording, in VTT file format. * `CHAT_MESSAGE` - A JSON file encoded in base64 format containing chat messages. The file also includes waiting room chats, deleted messages, meeting emojis and non-verbal feedback.idstring— The archived file's ID.individualboolean— Whether the recording file is an individual recording file: * `true` - An individual recording file. * `false` - An entire meeting file.number_of_messagesinteger— The number of `TXT` or `JSON` file messages. This field will return only when the `file_extension` is `JSON` or `TXT`participant_emailstring, format:email— The individual recording file's participant email address. This value is returned when the `individual` value is `true`. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.participant_join_timestring, format:date-time— The join time for the generated recording file. If this value is returned when the individual value is true, then it is the recording file's participant join time. When the individual value is false, it returns the join time for the archiving gateway.participant_leave_timestring— The leave time for the generated recording file. If this value is returned when the individual value is true, then it is the recording file's participant leave time. When the individual value is false, it returns the leave time for the archiving gateway.recording_typestring, possible values:"shared_screen_with_speaker_view", "audio_only", "chat_file", "closed_caption", "chat_message"— The archive file's recording type. * `shared_screen_with_speaker_view` * `audio_only` * `chat_file` * `closed_caption` * `chat_message` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.statusstring, possible values:"completed", "processing", "failed"— The archived file's processing status. * `completed` - The processing of the file is complete. * `processing` - The file is processing. * `failed` - The file processing failed.storage_locationstring, possible values:"US", "AU", "BR", "CA", "EU", "IN", "JP", "SG", "CH"— The region where the file is stored. This field returns only `Enable Distributed Compliance Archiving` op feature is enabled.
complete_timestring, format:date-time— The meeting or webinar's archive completion time.durationinteger— The meeting or webinar's scheduled duration.duration_in_secondinteger— The meeting or webinar's duration, in seconds.group_idstring— Primary group IDs of participants who belong to your account. Each group ID is separated by a comma.host_idstring— The ID of the user set as the host of the archived meeting or webinar.idinteger— The ID of the meeting (`meetingId`) or the webinar (`webinarId`).is_breakout_roomboolean— Whether the room is a [breakout room](https://support.zoom.us/hc/en-us/articles/115005769646-Participating-in-breakout-rooms).meeting_typestring, possible values:"internal", "external"— Whether the meeting or webinar is internal or external. * `internal` - An internal meeting or webinar. * `external` - An external meeting or webinar. The `id`, `host_id`, and `topic` PII (Personal Identifiable Information) values in this response are removed when this value is `external`.parent_meeting_idstring— The parent meeting's universally unique ID (UUID). Each meeting or webinar instance generates its own meeting UUID. If the `is_breakout_room` value is `true`, the API returns this value.recording_countinteger— The number of archived files returned in the API call response.start_timestring— The meeting or webinar's start time.statusstring, possible values:"completed", "processing"— The archive's processing status: * `completed` - The archive's processing is complete. * `processing` - The archive is processing.timezonestring— The meeting or webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting or webinar topic.total_sizeinteger— The total size of the archive file, in bytes.typeinteger, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 100— The type of archived meeting or webinar. If the recording is of a meeting: * `1` - Instant meeting. * `2` - Scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A meeting created via PMI (Personal Meeting ID). * `7` - A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `100` - A [breakout room](https://support.zoom.us/hc/en-us/articles/115005769646-Participating-in-breakout-rooms).uuidstring— The universally unique identifier (UUID) of the recorded meeting or webinar instance. Each meeting or webinar instance generates its own meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"duration_in_second": 1800,
"total_size": 1,
"recording_count": 1,
"meeting_type": "internal",
"account_name": "",
"complete_time": "",
"is_breakout_room": true,
"parent_meeting_id": "",
"archive_files": [
{
"id": "",
"file_type": "MP4",
"file_extension": "",
"file_name": "",
"file_size": 1,
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view",
"individual": true,
"participant_email": "",
"participant_join_time": "",
"participant_leave_time": "",
"encryption_fingerprint": "abf85f0fe6a4db3cdd8c37e505e1dd18a34d9696170a14b5bc6395677472cf43",
"number_of_messages": 150,
"storage_location": "US"
}
],
"status": "completed",
"group_id": "pvFIYKSDTum9iCDOOtQL4w,_FsqLyI0RlO6LVPeUVWi8g"
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.alert
- Method:
POST - Path:
meeting.alert - Tags: Meetings
The Meeting issues alert event is triggered every time a service issue is encountered during a meeting scheduled by a user in your account or in accounts that have installed your webhook-enabled app.
Zoom monitors meeting statistics in regards to the quality of service for each meeting. The following quality metrics can trigger an alert:
- Unstable audio.
- Unstable video.
- Poor screen share quality.
- High CPU usage.
- Call reconnection problems.
Prerequisites
- The account must hold a Business or a higher plan to request this feature.
- In account settings, on the dashboard, enable the Meeting quality scores and network alerts on Dashboard option.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting issues alert subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.issues(required)array— A list of issues that occurred during the meeting: * `Unstable audio quality` * `Unstable video quality` * `Unstable screen share quality` * `High CPU occupation` * `Call Reconnection`Items: string, possible values:"Unstable audio quality", "Unstable video quality", "Unstable screen share quality", "High CPU occupation", "Call Reconnection"start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"issues": [
"Unstable audio quality"
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.chat_message_file_sent
- Method:
POST - Path:
meeting.chat_message_file_sent - Tags: Meetings
The In-meeting chat message file received event is triggered when a meeting's message file is available to view or download. The event is sent to the configured endpoint in your Marketplace app.
Prerequisites
- Enable the Enable in-meeting chat DLP (Data Loss Prevention) integration and Include in-meeting chat files features in the host's account.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The In-meeting chat message file received subscription enabled under the Meeting event.
- This feature is only enabled upon request approval. Contact the Zoom support team for more information.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.date_time(required)string, format:date-time— The date and time when the chat message was sent.download_url(required)string— The live meeting chat file's download URL.file_id(required)string— The live meeting chat file's UUID, in base64-encoded format.file_name(required)string— The live meeting chat file's name.file_size(required)integer— The live meeting chat file's size, in bytes.file_type(required)string— The live meeting chat file's type.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"meeting", "breakout_room"— The context where the recipient is located when the message is delivered. * `meeting` - The recipient is in the meeting. * `breakout_room` - The sender is in a breakout room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "host_group"— The type of message recipient. * `everyone` - All meeting participants. * `host` - The meeting host. * `guest` - A meeting guest. * `group` - A group chat. * `host_group` - The meeting host and all co-hosts.sender_context(required)string, possible values:"meeting", "breakout_room"— The context where the sender is located when the message is generated. * `meeting` - The sender is in a meeting. * `breakout_room` - The sender is in a breakout room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "guest"— The type of user that sent the message. * `host` - The meeting host. * `guest` - A meeting guest.recipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's session ID.sender_emailstring, format:email— The message sender's email address.
meeting_id(required)integer, format:int64— The meeting ID.meeting_uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates its own meeting UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_id": 1,
"meeting_uuid": "",
"breakout_room_uuid": "",
"chat_message_file": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "meeting",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "meeting",
"message_id": "",
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"download_url": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.deleted
- Method:
POST - Path:
meeting.deleted - Tags: Meetings
The Meeting has been deleted event is triggered every time a meeting scheduled by one of your app users or account users, is deleted.
A meeting host or a user with admin privileges can delete a scheduled meeting. Users can delete a meeting manually using the Delete feature for a meeting via the Zoom web portal or the Zoom client. Users can also programmatically delete meetings through the Delete a Meeting API.
Prerequisites
- A Pro or higher plan.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting has been deleted subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.payload(required)objectaccount_id(required)string— The account ID of the user who deleted the meeting.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.durationinteger— The scheduled meeting duration.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
recurrence_event_idstring— The unique identifier of the recurring event that the occurrences belong to. Updating a recurring meeting with **This and following events** splits it into two recurring events, each with its own `recurrence_event_id`. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The meeting's topic.
operator(required)string— The email address of the user who deleted the meeting.operationstring, possible values:"all", "single", "range"— The type of operation performed on a recurring meeting. * `all` - The change was applied to all occurrences. * `single` - The change was applied to a single occurrence. * `range` - The change was applied to a range of occurrences while the other occurrences are unchanged. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).operator_idstring— The user ID of the user who deleted the meeting.
event_tsinteger, format:int64— A timestamp at which the event occurred.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"recurrence_event_id": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_joined
- Method:
POST - Path:
meeting.participant_joined - Tags: Meetings
The Participant or Host joined meeting event is triggered every time an attendee joins a meeting. A meeting attendee is a meeting participant or the host. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant or Host joined meeting subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.join_time(required)string, format:date-time— The time when the participant joined the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.idstring— The meeting ID.start_timestring— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
user.tsp_deleted
- Method:
POST - Path:
user.tsp_deleted - Tags: TSP
The A user's TSP account was deleted event is triggered every time a TSP user account is deleted.
Zoom allows certain carrier partners to provision Telephony Service Provider (TSP) audio to users. For users to use TSP audio, carrier partners must create a TSP user account with Zoom for the users. Zoom account owners and admins can delete an existing TSP user account.
Prerequisites
- A Pro or higher plan with TSP Configurations enabled.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- The A user's TSP account was deleted subscription must be enabled under the TSP event.
Request Body
Content-Type: application/json
eventstring— The name of the event.event_tsinteger, format:int64— A timestamp at which the event occurred.payloadobjectaccount_idstring— The account ID of the user who deleted the TSP.objectobject— Information about the deleted user.emailstring— The user's email address.idstring— The user's ID.tsp_credentialsobject— Information about the deleted user's TSP credentials.conference_codestring— The TSP conference code.dial_in_numbersarray— Information about the TSP dial-in numbers.Items: codestring— The country code.country_labelstring, possible values:"US_TSP_TB", "EU_TSP_TB"— The TSP country label: * `US_TSP_TB` * `EU_TSP_TB`numberstring— The dial-in phone number.typestring, possible values:"toll", "tollfree", "media_link"— The type of the phone number: * `toll` — Toll number. * `tollfree` — Toll free number. * `media_link` — Media link.
leader_pinstring— The leader PIN.tsp_bridgestring— The TSP bridge zone.
operatorstring, format:email— The email address of the user who deleted the TSP.operator_idstring— The user ID of the user who deleted the TSP.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"email": "",
"tsp_credentials": {
"conference_code": "",
"leader_pin": "",
"tsp_bridge": "",
"dial_in_numbers": [
{
"code": "",
"number": "",
"type": "toll",
"country_label": "US_TSP_TB"
}
]
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.ai_companion_started
- Method:
POST - Path:
meeting.ai_companion_started - Tags: Meetings
The AI Companion started event is triggered when a user starts the AI Companion during a live meeting.
Prerequisites
- Host user must be Pro or higher plan.
- Enable AI Companion.
- E2EE meetings do not support the AI Companion feature.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The AI Companion started subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting.object(required)object— The meeting where the AI Companion was started.ai_companion(required)object— The AI Companion features that were started.questionsboolean— Whether the AI Companion's meeting questions feature was started.summaryboolean— Whether the AI Companion's meeting summary feature was started.
host_id(required)string— The ID of the user set as the host of the meeting.meeting_number(required)integer, format:int64— The meeting number.meeting_uuid(required)string— The meeting's universally unique identifier (UUID).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_number": 1,
"meeting_uuid": "",
"host_id": "",
"ai_companion": {
"questions": true,
"summary": true
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.invitation_dispatched
- Method:
POST - Path:
meeting.invitation_dispatched - Tags: Meetings
The Invited party's Zoom is ringing event is triggered every time a user sends an invitation to join a meeting or video call to one or more recipients.
This event is only suitable for triggering with the ZOOM client.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with these configurations:
- A valid Event Notification Endpoint URL.
- The Invited party's Zoom is ringing subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who sent the meeting invitation.operator_id(required)string— The user ID of the user who sent the meeting invitation.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.ended
- Method:
POST - Path:
webinar.ended - Tags: Webinars
The End Webinar event is triggered every time a user in your account or your app ends a webinar.
Zoom users with a Webinar Plan have permissions for creating and managing webinars. Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees. A webinar host can start and end a webinar.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscription must be enabled for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The End Webinar subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who ended the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.end_timestring, format:date-time— The date and time when the webinar ended.practice_sessionboolean— whether this webinar is a practice session.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"end_time": "",
"duration": 1,
"practice_session": true
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.converted_to_webinar
- Method:
POST - Path:
meeting.converted_to_webinar - Tags: Meetings
The Meeting has been converted to a Webinar event is triggered every time one of your app users or account users converts a meeting into a webinar.
Prerequisites
- Pro or a higher plan with Webinar license.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting has been converted to a Webinar subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.payload(required)objectaccount_id(required)string— The account ID of the user who converted the meeting into a webinar.object(required)object— Information about the webinar converted from a meeting.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A scheduled webinar. * `6` - A recurring webinar with no fixed time. * `9` - A recurring webinar with fixed time.uuid(required)string— The webinar's universally unique identifier (UUID).durationinteger— The scheduled webinar's duration, in minutes. Returned only when the webinar type is `5`, ascheduled webinar.start_timestring, format:date-time— The scheduled webinar's start time. Returned only when the webinar type is `5`, a scheduled webinar.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The webinar's topic.
operator(required)string— The email address of the user who converted the meeting into a webinar.operator_idstring— The user ID of the user who converted the meeting into a webinar.
event_tsinteger, format:int64— A timestamp when the event occurred.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.recovered
- Method:
POST - Path:
webinar.recovered - Tags: Webinars
The Webinar has been recovered event is triggered every time a user recovers a previously-deleted webinar. The user must be a user on your account or on any other accounts that have installed your webhook-enabled app.
Zoom users can restore previously-deleted webinars for up to one week after deletion. Any invitations, links, and webinar IDs sent prior to the webinar's deletion will still work after a user recovers it.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar has been recovered subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who recovered the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who recovered the webinar.operator_id(required)string— The user ID of the user who recovered the webinar.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all webinars. * `single` — The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.participant_role_changed
- Method:
POST - Path:
webinar.participant_role_changed - Tags: Webinars
The Participant role changed event is triggered every time a host or webinar attendee changes the role during a webinar created by one of your app users or account users. A webinar host can invite other users to attend the webinar.
Zoom users with a Webinar plan have access to creating and managing webinars. Zoom webinars let users to broadcast a Zoom meeting to up to 1,000 attendees.
Prerequisites
- Pro or a higher plan with Webinar license.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant role changed subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.date_time(required)string, format:date-time— The time when the participant changed the [role](https://support.zoom.us/hc/en-us/articles/360000252726-Roles-in-a-Zoom-Webinar).email(required)string, format:email— The participant's email address. This response only returns if the participant joined the webinar by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.new_role(required)string, possible values:"host", "co-host", "attendee"— The participant's new role. * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.old_role(required)string, possible values:"host", "co-host", "attendee"— The participant's previous role. * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.user_name(required)string— The participant's display name.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external usersparticipant_uuidstring— The participant's UUID for this specific webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.registrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"date_time": "",
"old_role": "host",
"new_role": "host"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_jbh_waiting_left
- Method:
POST - Path:
meeting.participant_jbh_waiting_left - Tags: Meetings
The Waiting participant left meeting before host joined event is triggered every time an attendee waiting for the host to join the meeting leaves before the host. The host of the meeting must be a user in your account or users in any other accounts that have installed your webhook-enabled app.
When scheduling a meeting, the organizer or host of the meeting can enable the Enable join before host option. This allows attendees to join the meeting before the host of the meeting arrives. This meeting also starts as soon as the first meeting participant joins.
If this option is disabled, participants are prompted to wait for the host to arrive before joining the meeting.
Prerequisites
- A Pro or a higher plan.
- Disable the Enable join before host option for the scheduled meeting.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Waiting participant left meeting before host joined subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the meeting participant.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"id": "",
"user_name": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
user.tsp_created
- Method:
POST - Path:
user.tsp_created - Tags: TSP
The A user's TSP account was created event is triggered every time a TSP user account is created in Zoom.
Zoom allows certain carrier partners to provision Telephony Service Provider (TSP) audio to users. For users to use TSP audio, carrier partners must create a TSP user account with Zoom for the users.
Prerequisites
- A Pro or higher plan with TSP Configurations enabled.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- The A user's TSP account was created subscription must be enabled under the TSP event.
Request Body
Content-Type: application/json
eventstring— The name of the event.event_tsinteger, format:int64— A timestamp at which the event occurred.payloadobjectaccount_idstring— The account ID of the user who created the TSP.objectobject— Information about the created user.emailstring, format:email— The user's email address.idstring— The user's ID.tsp_credentialsobject— Information about the user's TSP credentials.conference_codestring— The TSP conference code.dial_in_numbersarray— Information about the TSP dial-in numbers.Items: codestring— The country code.country_labelstring, possible values:"US_TSP_TB", "EU_TSP_TB"— The TSP country label: * `US_TSP_TB` * `EU_TSP_TB`numberstring— The dial-in phone number.typestring, possible values:"toll", "tollfree", "media_link"— The type of the phone number: * `toll` — Toll number. * `tollfree` — Toll free number. * `media_link` — Media link.
leader_pinstring— The leader PIN.tsp_bridgestring— The TSP bridge zone.
operatorstring, format:email— The email address of the user who created the TSP.operator_idstring— The user ID of the user who created the TSP.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"email": "",
"tsp_credentials": {
"conference_code": "",
"leader_pin": "",
"tsp_bridge": "",
"dial_in_numbers": [
{
"code": "",
"number": "",
"type": "toll",
"country_label": "US_TSP_TB"
}
]
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.breakout_room_sharing_ended
- Method:
POST - Path:
meeting.breakout_room_sharing_ended - Tags: Meetings
The User in breakout room stopped sharing event is triggered when a user in a breakout room ends their content-sharing, such as their desktop or the classic whiteboard.
Breakout rooms are sessions that are split off from the main Zoom meeting. They allow the participants to meet in smaller groups and are completely isolated in terms of audio and video from the main session.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The User in breakout room stopped sharing subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The main meeting host's account ID.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's airplay. * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string value if the source is **not** Dropbox.
user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.idstring— The participant's universally unique ID (UUID): * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.parent_user_idstring— The participant's main meeting user ID (`user_id`).user_namestring— The participant's display name.
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.updated
- Method:
POST - Path:
meeting.updated - Tags: Meetings
The Meeting has been updated event is triggered when a meeting scheduled by one of your app users or account users is updated.
Meeting hosts or users with admin privileges can update scheduled meetings.
You can update the meeting manually through the Edit feature in the Zoom web portal or the Zoom client, or programmatically update a meeting through the Update a meeting API.
Prerequisites
- A Pro or higher plan.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL
- The Meeting has been updated subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who updated the meeting.object(required)object— Information about the meeting.id(required)integer, format:int64— The meeting ID.agendastring— The meeting's agenda.durationinteger— The scheduled meeting duration.host_idstring— The meeting host's user ID.join_urlstring— The URL participants use to join the meeting.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.durationinteger— The scheduled meeting duration.statusstring, possible values:"available", "deleted"— The meeting occurrence status. * `available` * `deleted`
passwordstring— The password required to join the meeting.recurrenceobject— Information about [recurring meetings](https://developers.zoom.us/docs/api/rest/other-references/recurrence-object-definitions/).end_date_timestring, format:date-time— The recurring meeting's final ending date and time before it is canceled, in UTC format.end_timesinteger— The number of times the recurring meeting will occur before it is canceled.monthly_dayinteger— The day of the month when the recurring monthly meeting occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month when a recurring meeting occurs. * `-1` - The last week of the month. * `1` - The first week. * `2` - The second week. * `3` - The third week. * `4` - The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week when the recurring monthly meeting is scheduled. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturdayrepeat_intervalinteger— The meeting's repeat interval. * For daily intervals, a max of `99` days. * For a weekly interval, a max of `50` weeks. * For monthly intervals, a max of `10` months.typeinteger, possible values:1, 2, 3— The type of recurring meeting. * `1` - Daily. * `2` - Weekly. * `3` - Monthly.weekly_daysstring, possible values:"1", "2", "3", "4", "5", "6", "7"— A comma-separated list of the days of the week when the recurring weekly meeting occurs. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturday
recurrence_event_idstring— The unique identifier of the recurring event that the occurrences belong to. Updating a recurring meeting with **This and following events** splits it into two recurring events, each with its own `recurrence_event_id`. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).registration_urlstring— The meeting's registration URL.settingsobject— Information about the updated meeting settings. This **only** returns updated meeting settings.allow_host_control_participant_mute_stateboolean— Whether to allow host and co-hosts to fully control the mute state of participants.alternative_hostsstring— A semicolon-separated list of the meeting's alternative hosts' email addresses or IDs.approval_typeinteger, possible values:0, 1, 2— The [approval type](https://support.zoom.us/hc/en-us/articles/211579443-Scheduling-a-meeting-with-registration) for meeting registrants. * `0` - Automatically approve registrants. * `1` - Manually approve registrants. * `2` - Meeting registration not required.audiostring, possible values:"telephony", "voip", "both"— The available audio options for participants joining the meeting. * `telephony` - Telephony only. * `voip` - VoIP only. * `both` - Both Telephony and VoIP.authentication_domainsstring— A list of the allowed authenticated domains.authentication_namestring— The authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472).authentication_optionstring— The [authentication](https://support.zoom.us/hc/en-us/articles/4406604615693) option ID value.auto_recordingstring, possible values:"local", "cloud", "none"— The [automatic recording](https://support.zoom.us/hc/en-us/articles/202921119-Automatic-Recording) settings for the meeting. * `local` - Record and save to the local device. * `cloud` - Record and save to the cloud. * `none` - Automatic recording disabled.auto_start_ai_companion_questionsboolean— Whether to automatically start AI Companion questions.auto_start_meeting_summaryboolean— Whether to automatically start a meeting summary.continuous_meeting_chatobject— Information about the **Enable continuous meeting chat** feature.auto_add_invited_external_usersboolean— Whether to enable the **Automatically add invited external users** setting.auto_add_meeting_participantsboolean— Whether to enable the **Automatically add meeting participants** setting.channel_idstring— The channel's ID.enableboolean— Whether to enable the **Enable continuous meeting chat** setting.
disable_recording_controlstring, possible values:"none", "all", default:"none"— Which recording options are unavailable to the in-meeting host through the Zoom client. * `none` - All recording options are available to the host. This is the default. * `all` - All recording options are unavailable to the host. Not supported when `auto_recording` is set to `local`.email_in_attendee_reportboolean— Whether to include authenticated guest's email addresses in meetings' attendee reports.enforce_loginboolean— Whether to only allow signed in users to join the meeting.enforce_login_domainsstring— A list of the domains allowed to join the meeting.host_videoboolean— Whether to start the meeting with the host's video on.jbh_timeinteger, possible values:0, 5, 10— If the value of the `join_before_host` field is `true`, this field indicates the time limits when a participant can join a meeting before the meeting's host. * `0` - Allow the participant to join the meeting at any time. * `5` - Allow the participant to join 5 minutes before the meeting's start time. * `10` - Allow the participant to join 10 minutes before the meeting's start time.join_before_hostboolean— Whether to [allow participants to join the meeting before host arrives](https://support.zoom.us/hc/en-us/articles/202828525-Allow-participants-to-join-before-host).language_interpretationobject— The meeting's [language interpretation settings](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** This feature is only available for certain Meeting add-on, Education, and Business and higher plans. If this feature is not enabled on the host's account, this setting will **not** be applied to the meeting.enable(required)boolean— Whether to enable [language interpretation](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064768) for the meeting.interpretersarray— Information about the meeting's language interpreters.Items: emailstring, format:email— The interpreter's email address.interpreter_languagesstring— A comma-separated list of the interpreter's languages. The string must contain exactly two languages. To get this value, use the `language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](https://developers.zoom.us/docs/api/users/#tag/users/GET/users/{userId}/settings) API response. **languages**: System-supported languages include `English`, `Chinese`, `Japanese`, `German`, `French`, `Russian`, `Portuguese`, `Spanish`, and `Korean`. **custom_languages**: User-defined languages added by the user. For example, an interpreter translating between English and French should use `English,French`.languagesstring— A comma-separated list of the interpreter's languages. The string must contain exactly two country IDs. Only system-supported languages are allowed: `US` (English), `CN` (Chinese), `JP` (Japanese), `DE` (German), `FR` (French), `RU` (Russian), `PT` (Portuguese), `ES` (Spanish), and `KR` (Korean). For example, to set an interpreter translating from English to Chinese, use `US,CN`.
meeting_authenticationboolean— Whether only authenticated users can join the meeting.meeting_inviteesarray— A list of the meeting's invitees.Items: emailstring, format:email— The invitee's email address.
mute_upon_entryboolean— Whether participants are muted upon entry.participant_videoboolean— Whether to turn a participant's video on when they join the meeting. Participants can change this setting during the meeting.prevent_screen_captureboolean— Whether to prevent participants from capturing Zoom meeting windows, which may include shared meeting content and chat messages. If not provided, the default value will be based on the user's setting.registration_typeinteger, possible values:1, 2, 3— The meeting registration setting for recurring meetings. * `1` - Attendees register once and can attend any of the meeting occurrences. * `2` - Attendees must register for each occurrence to attend. * `3` - Attendees register once and can select one or more occurrences to attend.sign_language_interpretationobject— The meeting's [sign language interpretation settings](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** If this feature is not enabled on the host's account, this setting will **not** be applied to the meeting.enable(required)boolean— Whether to enable [sign language interpretation](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar) for the meeting.interpretersarray— Information about the meeting's sign language interpreters.Items: emailstring, format:email— The interpreter's email address.sign_languagestring— The interpreter's sign language. To get this value, use the `sign_language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](/api-reference/zoom-api/methods#operation/userSettings) API response.
summary_template_idstring— The summary template ID used to generate a meeting summary based on a predefined template. To get available summary templates, use the **Get user summary templates** API. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.com/hc/en).use_pmiboolean— Whether to use a [Personal Meeting ID (PMI)](https://support.zoom.us/hc/en-us/articles/203276937-Using-Personal-Meeting-ID-PMI) instead of an auto-generated meeting ID. PMIs are only available for scheduled meetings, instant meetings, and recurring meetings with no fixed time.waiting_roomboolean— Whether to enable a [waiting room](https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room).watermarkboolean— Whether to enable the [watermark](https://support.zoom.us/hc/en-us/articles/209605273-Adding-a-Watermark) feature.who_can_ask_questionsinteger, possible values:1, 2, 3, 4, 5— Defines who can ask questions about this meeting's transcript. This field is applicable only when `auto_start_ai_companion_questions` is set to `true`. * `1` - All participants and invitees. * `2` - All participants only from when they join. * `3` - Only meeting host. * `4` - Participants and invitees in our organization. * `5` - Participants in our organization only from when they join.who_will_receive_summaryinteger, possible values:1, 2, 3, 4— Defines who will receive a summary after this meeting. This field is applicable only when `auto_start_meeting_summary` is set to `true`. * `1` - Only meeting host. * `2` - Only meeting host, co-hosts, and alternative hosts. * `3` - Only meeting host and meeting invitees in our organization. * `4` - All meeting invitees including those outside of our organization.
start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.tracking_fieldsarray— Information about the meeting's [tracking fields](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields).Items: fieldstring— The tracking field's label.valuestring— The tracking field's value.
typeinteger, possible values:0, 1, 2, 3, 4, 7, 8, 10— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time. * `10` - A screen share only meeting.uuidstring— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
old_object(required)objectoperator(required)string, format:email— The email address of the user who updated the meeting.operator_id(required)string— The user ID of the user who updated the meeting.time_stamp(required)integer, format:int64— The meeting's update timestamp, in milliseconds.scopestring, possible values:"single", "all", "range"— The type of operation performed on a recurring meeting. * `all` - The change was applied to all occurrences. * `single` - The change was applied to a single occurrence. * `range` - The change was applied to a range of occurrences while the other occurrences are unchanged. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"scope": "single",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"join_url": "",
"password": "",
"agenda": "",
"registration_url": "",
"recurrence_event_id": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"host_video": true,
"participant_video": true,
"join_before_host": true,
"jbh_time": 0,
"mute_upon_entry": true,
"audio": "telephony",
"auto_recording": "local",
"disable_recording_control": "none",
"use_pmi": true,
"waiting_room": true,
"watermark": true,
"enforce_login": true,
"enforce_login_domains": "",
"approval_type": 0,
"registration_type": 1,
"alternative_hosts": "",
"meeting_authentication": true,
"authentication_option": "",
"authentication_name": "",
"authentication_domains": "",
"meeting_invitees": [
{
"email": ""
}
],
"language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"interpreter_languages": ""
}
]
},
"sign_language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"sign_language": ""
}
]
},
"continuous_meeting_chat": {
"enable": true,
"channel_id": ""
},
"auto_start_meeting_summary": true,
"who_will_receive_summary": 1,
"auto_start_ai_companion_questions": true,
"who_can_ask_questions": 1,
"summary_template_id": "",
"allow_host_control_participant_mute_state": true,
"email_in_attendee_report": true,
"prevent_screen_capture": true,
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "1",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"tracking_fields": [
{
"field": "",
"value": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"time_stamp": 1,
"old_object": null,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.ai_companion_stopped
- Method:
POST - Path:
meeting.ai_companion_stopped - Tags: Meetings
The AI Companion stopped event is triggered when a user stops the AI Companion during a live meeting.
Prerequisites
- Host user must be on a Pro or higher plan.
- Enable AI Companion.
- E2EE meetings do not support the AI Companion feature.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The AI Companion stopped subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting.object(required)object— The meeting where the AI Companion was stopped.ai_companion(required)object— The AI Companion features that were stopped.questionsboolean— Whether the AI Companion's meeting questions feature was stopped.summaryboolean— Whether the AI Companion's meeting summary feature was stopped.
host_id(required)string— The ID of the user set as the host of the meeting.meeting_number(required)integer, format:int64— The meeting ID.meeting_uuid(required)string— The meeting's universally unique identifier (UUID).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_number": 1,
"meeting_uuid": "",
"host_id": "",
"ai_companion": {
"questions": true,
"summary": true
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.registration_denied
- Method:
POST - Path:
meeting.registration_denied - Tags: Meetings
The Meeting Registration has been denied event is triggered every time a registrant is denied from participating in a meeting.
A host with the Pro user type can enable the Registration feature when scheduling or updating a meeting. By enabling registration for meetings, participants must fill out a registration form receive information about joining the meeting.
A host can manually reject registrant. Hosts can also programmatically reject attendees via the Update registrant's status API.
Prerequisites
- A Pro or a higher plan.
- The meeting host should be a user on your account or a user of your webhook-enabled app.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Registration has been denied subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string— The meeting's start time.
operator(required)string, format:email— The email address of the user who denied the meeting registration.operator_id(required)string— The user ID of the user who denied the meeting registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.registration_denied
- Method:
POST - Path:
webinar.registration_denied - Tags: Webinars
The Webinar Registration has been denied event is triggered every time one of your app users or account users denies a user's registration.
Scheduling a Webinar with registration requires registrants to complete a brief form before receiving the link to join the Webinar.Webinar Registration options can be customized by a Zoom admin or a Webinar host. This customization allows them to choose whether to approve attendees automatically or manually.
When the registration is set to be approved manually, a pending registrant can be denied from joining the Webinar. To deny a registrant manually, navigate to your Webinars page and click on the name of the Webinar. Click Edit to the right of Manage Attendees option, select the user and click Deny. Alternatively, the registrant can be denied using the Update registrant's status API.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar Registration has been denied subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who denied the webinar registration.operator_id(required)string— The user ID of the user who denied the webinar registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.registration_approved
- Method:
POST - Path:
meeting.registration_approved - Tags: Meetings
The Meeting Registration has been approved event is triggered every time a registrant is approved for the meeting. The meeting host should be a user on your account or a user of your webhook-enabled app.
A meeting host or a user with admin privileges can restrict meeting registrations by manually approving registrants. With the Manually Approve option enabled for meeting registrations, the host of the meeting must approve registrants before they receive information about how to join the meeting.
Meeting hosts can approve an attendee's meeting invitation via the Zoom web portal. To do this, navigate to the scheduled meeting's page and click Edit next to the Manage Attendees section. Select the attendee to approve in the Pending Approval section, then click Approve.
To programmatically approve an attendee's registration, use the Update registrant's status API.
Prerequisites
- A Pro or a higher plan.
- Enable Manual Approval for meeting registrations.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Registration has been approved subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the meeting.last_namestring— The registrant's last name.participant_pin_codeinteger, format:int64— The participant PIN code is used to authenticate audio participants before they join the meeting.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string— The meeting's start time.
operator(required)string, format:email— The email address of the user who approved the meeting registration.operator_id(required)string— The user ID of the user who approved the meeting registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"join_url": "",
"participant_pin_code": 1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.participant_left
- Method:
POST - Path:
webinar.participant_left - Tags: Webinars
The Participant/Host left webinar event is triggered every time a host of a webinar or an attendee leaves the webinar. The host must be a user on your account or on other accounts that have installed your webhook-enabled app.
Zoom users with a Webinar Plan have access to creating and managing Webinars. Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees.
Prerequisites
- Pro or a higher plan with Webinar license.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant/Host left webinar subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This field is returned if the participant joined the webinar by logging into their Zoom account. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.leave_reasonstring— The reason why the participant left the webinar, where `$name` is the participant's username: * `$name left the meeting.` * `$name got disconnected from the meeting.` * `Host ended the meeting.` * `Host closed the meeting.` * `Host started a new meeting.` * `Network connection error.` * `Host did not join.` * `Exceeded free meeting minutes limit.` * `Removed by host.` * `Unknown reason.` * `Leave waiting room.` * `Removed by host from waiting room.`leave_timestring, format:date-time— The time when the participant left the webinar.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).user_namestring— The participant's display name.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"leave_time": "",
"leave_reason": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.batch_deleted
- Method:
POST - Path:
recording.batch_deleted - Tags: Cloud Recording
The Batch recording deleted event is triggered every time one of your app users or account users permanently deletes one or more cloud recordings.
When a user initially deletes a recording, it is sent to the trash. At this stage, the recording can still be recovered for up to 30 days after deletion. To permanently delete a recording, users must delete it from the trash.
Users can permanently delete a recording via the Delete meeting recordings API with the delete query parameter or in the Zoom web portal.
Prerequisites
- A Pro or higher plan.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording files have been permanently deleted in batches subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.operator(required)string, format:email— The email address of the user who deleted the recording.operator_id(required)string— The user ID of the user who deleted the recording.objectobject— Information about the meeting or webinar recording.meetings(required)arrayItems: meeting_uuidstring— The universally unique identifier (UUID) of the recorded meeting or webinar instance.recording_file_idsarray— The recording file's unique ID. If the current field value is NULL, it means to delete the whole Meeting Recording files.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meetings": [
{
"meeting_uuid": "",
"recording_file_ids": []
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.alert
- Method:
POST - Path:
webinar.alert - Tags: Webinars
The Webinar issues alert event is triggered every time a Webinar hosted by one of your app users or account users, encounters a service issue.
Zoom monitors the Webinar statistics in regard to the quality of service for each Webinar. An account owner or a user with admin permissions on a Business or higher plan can view these statistics via Dashboard. The following quality metrics can trigger an alert:
- Unstable audio
- Unstable video
- Poor screen share quality
- High CPU usage
- Call reconnection problems
To receive notifications for this event, you must meet the following prerequisites.
Prerequisites
- Business or a higher plan.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar issues alert subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.issues(required)array— A list of issues that occurred during the webinar: * `Unstable audio quality` * `Unstable video quality` * `Unstable screen share quality` * `High CPU occupation` * `Call Reconnection`Items: string, possible values:"Unstable audio quality", "Unstable video quality", "Unstable screen share quality", "High CPU occupation", "Call Reconnection"start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"issues": [
"Unstable audio quality"
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.chat_message_sent
- Method:
POST - Path:
webinar.chat_message_sent - Tags: Webinars
The In-webinar chat message received event is triggered when a user sends a public or private chat message during a webinar using the chat feature. The event is sent to the configured endpoint in your Marketplace app.
Prerequisites
- Have Zoom enable the DLP for in-meeting chat feature to use this webhook.
- Enable Event Subscriptions for your Marketplace app with:
- Enable the In-webinar chat message received subscription under the Webinar event category.
- This feature is only enabled upon request approval. Contact the Zoom support team for more information.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the chat message.chat_message(required)object— Information about the chat message.date_time(required)string, format:date-time— The date and time when the chat message was sent.message_content(required)string— The content of the chat message.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"webinar", "breakout_room", "waiting_room"— The context where the recipient is located when the message is delivered. * `webinar` - The recipient is in the webinar. * `breakout_room` - The recipient is in a breakout room. * `waiting_room` - The recipient is in the waiting room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "backstage", "host_group"— The type of message recipient. * `everyone` - All webinar participants. * `host` - The webinar host. * `guest` - A webinar guest. * `group` - A group chat. * `backstage` - The webinar backstage. * `host_group` - The webinar host and all panelists.sender_context(required)string, possible values:"webinar", "breakout_room", "waiting_room"— The context where the sender is located when the message is generated. * `webinar` - The sender is in a webinar. * `breakout_room` - The sender is in a breakout room. * `waiting_room` - The sender is in the waiting room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "alternative-host", "panelist", "guest"— The type of user that sent the message. * `host` - The webinar host. * `alternative-host` - The webinar's [alternative host](https://support.zoom.us/hc/en-us/articles/208220166). * `panelist` - A webinar [panelist](https://support.zoom.us/hc/en-us/articles/360000252726#:~:text=Panelists%20are%20full,a%20webinar%20host.). * `guest` - A webinar guest.file_idsarray— The live webinar chat file's UUID, in base64-encoded format.Items: stringrecipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's ID.sender_emailstring, format:email— The message sender's session email address.
id(required)integer, format:int64— The webinar ID.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"breakout_room_uuid": "",
"chat_message": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "webinar",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "webinar",
"message_id": "",
"message_content": "",
"file_ids": [
""
]
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.chat_message_file_sent
- Method:
POST - Path:
webinar.chat_message_file_sent - Tags: Webinars
The In-webinar chat message file received event is triggered when a message file of a webinar is available to view or download. The event is sent to the configured endpoint in your Marketplace app.
Prerequisites
- Have Zoom enable the DLP for in-meeting chat feature to use this webhook.
- Enable Event Subscriptions for your Marketplace app with:
- Enable the In-webinar chat message file received subscription under the Webinar event category.
- This feature is only enabled upon request approval. Contact the Zoom support team for more information.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the webinar.object(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.date_time(required)string, format:date-time— The date and time when the chat message was sent.download_url(required)string— The live webinar chat file's download URL.file_id(required)string— The live webinar chat file's UUID, in base64-encoded format.file_name(required)string— The live webinar chat file's name.file_size(required)integer— The live webinar chat file's size, in bytes.file_type(required)string— The live meeting chat file's type.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"webinar", "breakout_room"— The context where the recipient is located when the message is delivered. * `webinar` - The recipient is in the webinar. * `breakout_room` - The sender is in a breakout room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "backstage", "host_group"— The type of message recipient. * `everyone` - All webinar participants. * `host` - The webinar host. * `guest` - A webinar guest. * `group` - A group chat. * `backstage` - The webinar backstage. * `host_group` - The webinar host and all panelists.sender_context(required)string, possible values:"webinar", "breakout_room"— The context where the sender is located when the message is generated. * `webinar` - The sender is in a webinar. * `breakout_room` - The sender is in a breakout room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "guest"— The type of user that sent the message. * `host` - The meeting host. * `guest` - A meeting guest.recipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's session ID.sender_emailstring, format:email— The message sender's email address.
webinar_id(required)integer, format:int64— The webinar ID.webinar_uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"webinar_id": 1,
"webinar_uuid": "",
"breakout_room_uuid": "",
"chat_message_file": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "webinar",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "webinar",
"message_id": "",
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"download_url": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.ended
- Method:
POST - Path:
meeting.ended - Tags: Meetings
The End Meeting event is triggered every time a meeting host ends the meeting. The host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The End Meeting subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.end_time(required)string, format:date-time— The date and time at which the meeting ended.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"end_time": ""
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_joined_breakout_room
- Method:
POST - Path:
meeting.participant_joined_breakout_room - Tags: Meetings
The Meeting participant has joined a breakout room event is triggered when a meeting participant joins a meeting breakout room.
Breakout rooms are sessions that are split off from the main Zoom meeting. They let participants meet in smaller groups and are completely isolated in terms of audio and video from the main session.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting participant has joined a breakout room subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the main meeting.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom.join_time(required)string, format:date-time— The time when the participant joined the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.parent_user_idstring— The participant's main meeting user ID (`user_id`).participant_user_idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"phone_number": "8615250064084",
"customer_key": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_left_waiting_room
- Method:
POST - Path:
meeting.participant_left_waiting_room - Tags: Meetings
The Participant left a waiting room event is triggered every time a meeting host does not admit a participant to the meeting and removes the participant from the waiting room. This event also triggers if a participant leaves the waiting room. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
The waiting room feature allows the host to control when participants join a meeting. When a participant attempts to join a meeting with this feature enabled, the participant is first admitted to the waiting room. The meeting host can then admit attendees one by one or hold all attendees in the waiting room and admit them all at once.
Prerequisites
- The waiting room feature enabled for the meeting.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The "Participant left a waiting room" subscription must be enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN-registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"date_time": "",
"email": "",
"phone_number": "8615250064084",
"participant_user_id": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.started
- Method:
POST - Path:
meeting.started - Tags: Meetings
The Start Meeting event is triggered every time a meeting host starts a meeting. The meeting host must either be a user on your account or a user of your webhook-enabled app.
A meeting host can start a meeting from the Zoom desktop client for Mac, PC or Linux, the Zoom app for Android or iOS, a web browser, or an H.323 or SIP device.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Start Meeting subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.registration_cancelled
- Method:
POST - Path:
meeting.registration_cancelled - Tags: Meetings
The Meeting Registration has been canceled event is triggered every time a registration is canceled for a meeting. The meeting host should be a user on your account or a user of your webhook-enabled app.
A host with the Pro user type can enable the Registration feature when scheduling or updating a meeting. By enabling registration for meetings, participants must fill out a registration form receive information about joining the meeting.
Meeting attendees can cancel their registration at any time. A meeting host can also cancel an attendee's meeting invitation via the Zoom web portal. To do this, navigate to the scheduled meeting's page and click Edit next to the Manage Attendees section. The Approved section will display all approved attendees. Select the attendee whose meeting registration you want to revoke and click Cancel Registration.
To programmatically cancel a registration, use the Update registrant's status API.
Prerequisites
- A Pro or a higher plan.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Registration has been canceled subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string— The meeting's start time.
operator(required)string, format:email— The email address of the user who canceled the meeting registration.operator_idstring— The user ID of the user who canceled the meeting registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.summary_completed
- Method:
POST - Path:
meeting.summary_completed - Tags: Meetings
The Meeting summary has been completed event is triggered every time the summary of the meeting is made available for one of your app users or account users after the summarized meeting/webinar ends.
Prerequisites
- Host user must be Pro or higher plan.
- Enable the Meeting Summary with AI Companion feature in the host's account.
- E2ee meetings do not have summary feature enabled.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting summary have completed subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.next_steps(required)array— The next steps.Items: string— The next step.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_details(required)array— The summary content details.Items: label(required)string— The summary label.summary(required)string— The summary content.
summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.summary_contentstring— The complete meeting summary in Markdown format. This unified field is used for all summaries. For compatibility, the legacy fields `summary_overview`, `summary_details`, `next_steps` are still returned, but are deprecated and will not be supported in the future.summary_doc_urlstring— The URL to view the full summary document in Zoom Docs.summary_overviewstring— The summary overview.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"summary_content": "",
"summary_doc_url": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_left
- Method:
POST - Path:
meeting.participant_left - Tags: Meetings
The Participant/Host left meeting event is triggered every time an attendee leaves a meeting. A meeting attendee is a meeting participant or the host. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with these configurations:
- A valid Event Notification Endpoint URL.
- The Participant/Host left meeting subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.leave_time(required)string, format:date-time— The time when the participant left the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.leave_reasonstring— The reason why the participant left the meeting, where `$name` is the participant's username: * `$name left the meeting.` * `$name got disconnected from the meeting.` * `Host ended the meeting.` * `Host closed the meeting.` * `Host started a new meeting.` * `Network connection error.` * `Host did not join.` * `Exceeded free meeting minutes limit.` * `Removed by host.` * `Unknown reason.` * `Leave waiting room.` * `Removed by host from waiting room.`participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTNregistrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"leave_time": "",
"leave_reason": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_phone_callout_rejected
- Method:
POST - Path:
meeting.participant_phone_callout_rejected - Tags: Meetings
The Invited party rejected a meeting invitation through phone (call out) event is triggered every time a user rejects an invitation to join a meeting through phone (call out).
Prerequisites
Enable Event Subscriptions for your Marketplace app with these configurations.
- A valid Event Notification Endpoint URL.
- The Invited party rejected a meeting invitation through phone (call out) subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_phone_callout_accepted
- Method:
POST - Path:
meeting.participant_phone_callout_accepted - Tags: Meetings
The Invited party answered a meeting invitation through phone (call out) event is triggered every time a user accepts an invitation to join a meeting through phone (call out).
Prerequisites
Enable Event Subscriptions for your Marketplace app with these configurations.
- A valid Event Notification Endpoint URL.
- The Invited party answered a meeting invitation through phone (call out) subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.sharing_started
- Method:
POST - Path:
webinar.sharing_started - Tags: Webinars
The Webinar Sharing Started event is triggered every time one of your app users or account users share their screen during a Webinar.
Zoom supports screen sharing by host or panelists on desktop, tablet and mobile devices running Zoom during Webinars.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar Sharing Started subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.sharing_details(required)object— Information about the webinar's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string value if the source is **not** Dropbox.
user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.idstring— The participant's universally unique ID (UUID): * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The webinar's start time.topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.registration_created
- Method:
POST - Path:
meeting.registration_created - Tags: Meetings
The Meeting Registration has been created event is triggered every time a user registers for a meeting.
A host with the Pro user type can enable the Registration feature when scheduling or updating a meeting. By enabling registration for meetings, participants must fill out a registration form receive information about joining the meeting. You can also programmatically register a participant via the Add Meeting Registrant API.
Prerequisites
- A Pro or a higher plan.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Registration has been created subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the meeting.status(required)string, possible values:"approved", "pending"— The registrant's registration approval status: * `approve` — Approved registrant. * `pending` — Registration approval pending.addressstring— The registrant's address.citystring— The registrant's city.commentsstring— The registrant's questions and comments.countrystring— The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).custom_questionsarray— Information about custom questions.Items: Any of: title(required)string— The title of the custom question.value(required)string— The custom question's response value. This has a limit of 128 characters.
industrystring— The registrant's industry.job_titlestring— The registrant's job title.last_namestring— The registrant's last name.no_of_employeesstring, possible values:"", "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000"— The registrant's number of employees: * `1-20` * `21-50` * `51-100` * `101-250` * `251-500` * `501-1,000` * `1,001-5,000` * `5,001-10,000` * `More than 10,000` * An empty string. — No employee number set.orgstring— The registrant's organization.participant_pin_codeinteger, format:int64— The participant PIN code is used to authenticate audio participants before they join the meeting.phonestring— The registrant's phone number.purchasing_time_framestring, possible values:"", "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe"— The registrant's purchasing time frame: * `Within a month` * `1-3 months` * `4-6 months` * `More than 6 months` * `No timeframe` * An empty string. — No purchasing time frame set.role_in_purchase_processstring, possible values:"", "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved"— The registrant's role in the purchase process: * `Decision Maker` * `Evaluator/Recommender` * `Influencer` * `Not involved` * An empty string. — No role set.statestring— The registrant's state or province.zipstring— The registrant's ZIP or postal code.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"address": "",
"city": "",
"country": "",
"zip": "",
"state": "",
"phone": "",
"industry": "",
"org": "",
"job_title": "",
"purchasing_time_frame": "",
"role_in_purchase_process": "",
"no_of_employees": "",
"comments": "",
"custom_questions": [
{
"title": "",
"value": "",
"additionalProperty": "anything"
}
],
"status": "approved",
"join_url": "",
"participant_pin_code": 1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
recording.recovered
- Method:
POST - Path:
recording.recovered - Tags: Cloud Recording
This event is triggered when a user recovers a recording from the trash.
Zoom allows users to recover their cloud recordings from the trash within 30 days of deletion. You can recover a deleted cloud recording via the Recordings tab in the Zoom web client or via the Recover meeting recordings API.
Prerequisites
- A Pro or a higher plan.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording files have been recovered from trash subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.account_id(required)string— The account ID of the user that completed the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_count(required)integer— The number of recovered recording files.recording_files(required)array— Information about the recovered recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}`. **Note:** We recommend that you send the access_token as a Bearer token in the Authorization header, for example: "Authorization": "Bearer <ACCESS_TOKEN>”.file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The file extension type of the recording file.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The file type of the recording file.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "sign_interpretation", "production_sutdio"— The recording file type. * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`sign_interpretation` *`production_studio` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.play_urlstring— The URL at which the recording file can be opened and played.
share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.participant_audio_filesarray— Information about the recovered participants' recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The recording file's extension.file_name(required)string— The recording file's name.file_size(required)integer— The size of the recording file, in bytes.file_type(required)string— The recording file's format.id(required)string— The recording file's unique ID.recording_end(required)string, format:date-time— The recording file's end time.recording_start(required)string, format:date-time— The recording file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the recording file can be opened and played.
timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who recovered the recording.operator_id(required)string— The user ID of the user who recovered the recording.
download_tokenstring— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request: **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"account_id": "",
"timezone": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_size": 1,
"file_extension": "MP4",
"file_name": "",
"play_url": "",
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.sharing_ended
- Method:
POST - Path:
meeting.sharing_ended - Tags: Meetings
The Meeting Sharing Ended event is triggered every time an attendee or a host stops sharing their screen during a Zoom meeting. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Zoom allows screen sharing by host and attendees on desktop, tablet, and mobile devices running Zoom during meetings.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Sharing Ended subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty (`””`) value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty (`””`) value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty (`””`) value if the source is **not** Dropbox.
user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.idstring— The participant's universally unique ID (UUID): * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.cloud_storage_usage_updated
- Method:
POST - Path:
recording.cloud_storage_usage_updated - Tags: Cloud Recording
The Recording Cloud Storage Usage Updated event is triggered every time storage usage changes.
States such as recording completed, trashed, or recovered trigger this event.
Prerequisites
- A Pro or higher plan.
- Enable Cloud recording on the users' account.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Recording Cloud Storage Usage Updated subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host who recorded the webinar.object(required)object— Information about the recording plan.free_storage(required)string— Recording free storage.plan_storage(required)string— Recording plan storage.plan_type(required)string— Recording plan type.storage_exceed(required)string— Amount of storage exceed.storage_used(required)string— Amount of storage used.storage_used_percentage(required)number— The percentage of storage used.max_exceed_datestring— The maximum date that overage storage.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"free_storage": "2 GB",
"plan_storage": "10 GB",
"plan_type": "cmr_monthly_commitment_40",
"storage_used": "1 GB",
"storage_used_percentage": 85,
"storage_exceed": "0",
"max_exceed_date": "2023-03-01"
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.transcript_completed
- Method:
POST - Path:
recording.transcript_completed - Tags: Cloud Recording
The Recording transcript files have completed event is triggered every time the transcript of the recording is made available for one of your app users or account users after the recorded meeting/webinar ends.
Zoom supports audio transcription of cloud recordings. To utilize audio transcription, users must first enable it. An account owner or a user with admin permissions can enable cloud recording for an account or a group of users.
Prerequisites
- A Business, Education, or Enterprise license.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording transcript files have completed subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting or the webinar.object(required)object— Information about the webinar or meeting recording.account_id(required)string— The account ID of the user that ended the meeting and completed the recording.duration(required)integer— The meeting or webinar's scheduled duration.host_email(required)string, format:email— The host's email address.host_id(required)string— The ID of the user set as the host of the archived meeting or webinar.id(required)integer, format:int64— The ID of the meeting (`meetingId`) or the webinar (`webinarId`).recording_count(required)integer— The number of completed recording files.recording_files(required)array— Information about the completed recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The recording file's extension.file_size(required)integer— The recording file's size, in bytes.file_type(required)string— The recording file's type.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail"— The type of recording file: * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the recording file can be opened and played.
share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance. Each meeting or webinar instance generates its own meeting UUID.passwordstring— The meeting's password.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
download_tokenstring— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request: **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"account_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"host_email": "",
"duration": 1,
"password": "",
"share_url": "",
"total_size": 1,
"recording_count": 1,
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_size": 1,
"file_extension": "",
"file_name": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.stopped
- Method:
POST - Path:
recording.stopped - Tags: Cloud Recording
The Recording Stopped event is triggered every time a recording is stopped by one of your app's users or account users.
All users with a Pro or a higher plan have access to cloud recordings. An account owner or account admin can enable cloud recording for all account members as well as for members that belong to a certain group. Users can also enable cloud recordings for their own use.
Only a host or a co-host of the meeting/webinar can start, pause, resume, or stop a cloud recording.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording Stopped subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that stopped the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string— The date and time at which the recording started.
start_time(required)string— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.batch_trashed
- Method:
POST - Path:
recording.batch_trashed - Tags: Cloud Recording
The All recording files have been deleted to the Trash event is triggered every time one of your app users or account users temporarily delete all of their cloud recordings.
When a user initially deletes recordings, the recordings are sent to the trash. Users can delete a recording temporarily via the Delete meeting recordings API or via the Zoom web client. At this point, recordings can be recovered up to 30 days after deletion.
Prerequisites
- Pro or a higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The All recording files have been deleted to the Trash subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who batch deleted recordings to trash.operation(required)string, possible values:"trash_user_recordings", "trash_account_recordings"— The type of batch operation: * `trash_user_recordings` — User recordings trashed. * `trash_account_recordings` — Account recordings trashed.operator(required)string, format:email— The email address of the user who batch deleted recordings to trash.operator_id(required)string— The user ID of the user who batch deleted recordings to trash.objectobject— Information about the webinar or meeting recording.meeting_uuids(required)arrayItems: string— A list of the recorded meeting (`meetingId`) or webinar (`webinarId`) UUIDs.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "trash_user_recordings",
"object": {
"meeting_uuids": [
""
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.started
- Method:
POST - Path:
webinar.started - Tags: Webinars
The Start Webinar event is triggered every time a user in your account or your app starts a webinar.
Zoom users with a Webinar Plan have permissions for creating and managing webinars. Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees. A webinar host can start a webinar from the Zoom Client or from the Zoom Web Portal.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Start Webinar subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who started the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.chat_message_file_downloaded
- Method:
POST - Path:
meeting.chat_message_file_downloaded - Tags: Meetings
The In-meeting chat message file has been downloaded event is triggered when a meeting's message file is downloaded. The event is sent to the configured endpoint in your Marketplace app.
Prerequisites
- Have Zoom enable the DLP for in-meeting chat feature to use this webhook.
- Enable Event Subscriptions for your Marketplace app with:
- Enable the In-meeting chat message file has been downloaded subscription under the Meeting event category.
This feature is only enabled upon request approval. Contact the Zoom support team for more information.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectobject(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.file_id(required)string— The live meeting chat file's UUID.file_name(required)string— The live meeting chat file's name.file_size(required)integer— The live meeting chat file's size, in bytes.file_type(required)string— The live meeting chat file's file type.file_owner_idstring— The user ID of the user who uploaded the team chat file. This value returns blank for external users.
host_account_id(required)string— The meeting host's account ID. The value will be an empty string if this info is from an external user.id(required)integer, format:int64— The meeting ID.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string, format:email or name— The email address of the user who downloaded the file. This value returns the operator name for external users.account_idstring— The account ID of the user who downloaded the file. This value returns blank for external users.operator_idstring— The user ID of the user who downloaded the file. This value returns blank for external users.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_account_id": "",
"chat_message_file": {
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"file_owner_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.sharing_ended
- Method:
POST - Path:
webinar.sharing_ended - Tags: Webinars
The Webinar Sharing Ended event is triggered every time one of your app users or account users stop sharing their screen during a Webinar.
Zoom supports screen sharing by host or panelists on desktop, tablet and mobile devices running Zoom during webinars.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar Sharing Ended subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.sharing_details(required)object— Information about the webinar's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string if the source is **not** Dropbox.
user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.idstring— The participant's universally unique ID (UUID): * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The webinar's start time.topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.summary_trashed
- Method:
POST - Path:
meeting.summary_trashed - Tags: Meetings
The Meeting summary has been deleted to trash event is triggered every time one of your app users or account users temporarily deletes a meeting summary.
Prerequisites
- Host user must be Pro or higher plan.
- Enable the Meeting Summary with AI Companion feature in the host's account.
- E2ee meetings do not have summary feature enabled.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting summary has been deleted to trash subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who deleted the meeting summary.operator_id(required)string— The user ID of the user who deleted the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.sharing_started
- Method:
POST - Path:
meeting.sharing_started - Tags: Meetings
The Meeting Sharing Started event is triggered every time an attendee or a host begins sharing their screen during a Zoom meeting. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Zoom allows screen sharing by host and attendees on desktop, tablet, and mobile devices running Zoom during meetings.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Sharing Started subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty (`””`) value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty (`””`) value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty (`””`) value if the source is **not** Dropbox.
user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.idstring— The participant's universally unique ID (UUID): * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.registration_created
- Method:
POST - Path:
webinar.registration_created - Tags: Webinars
The Webinar Registration has been created event is triggered every time someone registers for a Webinar created by one of your app users or account users.
Zoom users with a Webinar Plan have access to creating and managing Webinars. Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees. Scheduling a Webinar with registration requires your registrants to complete a brief form before receiving the link to join the Webinar.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace App with the following configurations:
- A valid Event notification endpoint URL
- The Webinar Registration has been created subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the webinar.status(required)string, possible values:"approved", "pending"— The registrant's registration approval status: * `approve` — Approved registrant. * `pending` — Registration approval pending.addressstring— The registrant's address.citystring— The registrant's city.commentsstring— The registrant's questions and comments.countrystring— The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).custom_questionsarray— Information about custom questions.Items: Any of: title(required)string— The title of the custom question.value(required)string— The custom question's response value. This has a limit of 128 characters.
industrystring— The registrant's industry.job_titlestring— The registrant's job title.last_namestring— The registrant's last name.no_of_employeesstring, possible values:"", "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000"— The registrant's number of employees: * `1-20` * `21-50` * `51-100` * `101-250` * `251-500` * `501-1,000` * `1,001-5,000` * `5,001-10,000` * `More than 10,000`orgstring— The registrant's organization.phonestring— The registrant's phone number.purchasing_time_framestring, possible values:"", "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe"— The registrant's purchasing time frame: * `Within a month` * `1-3 months` * `4-6 months` * `More than 6 months` * `No timeframe`role_in_purchase_processstring, possible values:"", "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved"— The registrant's role in the purchase process: * `Decision Maker` * `Evaluator/Recommender` * `Influencer` * `Not involved`statestring— The registrant's state or province.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
zipstring— The registrant's ZIP or postal code.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinar with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"address": "",
"city": "",
"country": "",
"zip": "",
"state": "",
"phone": "",
"industry": "",
"org": "",
"job_title": "",
"purchasing_time_frame": "",
"role_in_purchase_process": "",
"no_of_employees": "",
"comments": "",
"custom_questions": [
{
"title": "",
"value": ""
}
],
"status": "approved",
"join_url": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.chat_message_sent
- Method:
POST - Path:
meeting.chat_message_sent - Tags: Meetings
The In-meeting chat message received event is triggered when a user sends a public or private chat message during a meeting using the in-meeting Zoom chat feature. The event is sent to the configured endpoint in your Marketplace app.
Prerequisites
- Enable the Enable in-meeting chat DLP (Data Loss Prevention) integration feature in the host's account.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The In-meeting chat message received subscription enabled under the Meeting event.
- This feature is only enabled upon request approval. Contact the Zoom support team for more information.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the chat message.chat_message(required)object— Information about the chat message.date_time(required)string, format:date-time— The date and time when the chat message was sent.message_content(required)string— The chat message's content.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"meeting", "breakout_room", "waiting_room"— The context where the recipient is located when the message is delivered. * `meeting` - The recipient is in the meeting. * `breakout_room` - The recipient is in a breakout room. * `waiting_room` - The recipient is in the waiting room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "host_group"— The type of message recipient. * `everyone` - All meeting participants. * `host` - The meeting host. * `guest` - A meeting guest. * `group` - A group chat. * `host_group` - The meeting host and all co-hosts.sender_context(required)string, possible values:"meeting", "breakout_room", "waiting_room"— The context where the sender is located when the message is generated. * `meeting` - The sender is in a meeting. * `breakout_room` - The sender is in a breakout room. * `waiting_room` - The sender is in the waiting room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "guest"— The type of user that sent the message: * `host` — The meeting host. * `guest` — A meeting guest.file_idsarray— The live webinar chat file's UUID, in base64-encoded format.Items: stringrecipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's session ID.sender_emailstring, format:email— The message sender's email address.
id(required)integer, format:int64— The meeting ID.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"breakout_room_uuid": "",
"chat_message": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "meeting",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "meeting",
"message_id": "",
"message_content": "",
"file_ids": [
""
]
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.invitation_rejected
- Method:
POST - Path:
meeting.invitation_rejected - Tags: Meetings
The Invited party rejected a meeting invite event is triggered every time a user sends an invitation to join a meeting or video call to one or more recipients.
This event is only suitable for triggering with the ZOOM client.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with these configurations:
- A valid Event Notification Endpoint URL.
- The Invited party rejected a meeting invite subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who rejected the meeting.operator_id(required)string— The user ID of the user who rejected the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_role_changed
- Method:
POST - Path:
meeting.participant_role_changed - Tags: Meetings
The Participant role changed event is triggered every time a host or meeting attendee changes their role during the meeting. A meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Participant role changed subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant.date_time(required)string, format:date-time— The time at which the participant changed the [role](https://support.zoom.us/hc/en-us/articles/360040324512-Roles-in-a-meeting).email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.new_role(required)string, possible values:"host", "co-host", "attendee"— The participant's new role: * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.old_role(required)string, possible values:"host", "co-host", "attendee"— The participant's previous role: * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.idstring— The meeting ID.start_timestring— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"date_time": "",
"old_role": "host",
"new_role": "host"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.permanently_deleted
- Method:
POST - Path:
meeting.permanently_deleted - Tags: Meetings
The Meeting has been permanently deleted event is triggered every time a meeting scheduled by one of your app users or account users, is permanently deleted.
A meeting host or a user with admin privileges permanently delete a meeting via the Zoom web portal. You can also programmatically delete a meet via the Delete a meeting API.
Prerequisites
- A Pro or higher plan.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting has been permanently deleted subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who permanently deleted the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
operator(required)string, format:email— The email address of the user who permanently deleted the meeting.operator_id(required)string— The user ID of the user who permanently deleted the meeting.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all meetings. * `single` — The change was applied only to a single meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
recording.registration_created
- Method:
POST - Path:
recording.registration_created - Tags: Cloud Recording
The View registrant has registered for this recording event is triggered every time a user registers for an on-demand cloud recording.
Cloud recordings of Zoom meetings and webinars can be made on-demand. With on-demand recordings, users can view the recordings of past meetings and webinars at any time as long as they have not been removed. To view cloud recordings, users can register manually by filling out the registration form that pops up when users click on the Recording URL.
Users can also be programmatically registered via the Create a recording registrant API. Once they complete the registration they can view the recording.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The View registrant has registered for this recording subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host that recorded the meeting or webinar.object(required)object— Information about the recording registration.duration(required)integer— The scheduled meeting or webinar duration.host_id(required)string— The webinar or meeting host's user ID.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).registrant(required)object— Information about the recording registrant.address(required)string— The registrant's address.city(required)string— The registrant's city.comments(required)string— The registrant's questions and comments.country(required)string— The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.industry(required)string— The registrant's industry.job_title(required)string— The registrant's job title.last_name(required)string— The registrant's last name.no_of_employees(required)string, possible values:"", "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000"— The registrant's number of employees: * `1-20` * `21-50` * `51-100` * `101-250` * `251-500` * `501-1,000` * `1,001-5,000` * `5,001-10,000` * `More than 10,000`org(required)string— The registrant's organization.phone(required)string— The registrant's phone number.purchasing_time_frame(required)string, possible values:"", "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe"— The registrant's purchasing time frame: * `Within a month` * `1-3 months` * `4-6 months` * `More than 6 months` * `No timeframe`role_in_purchase_process(required)string, possible values:"", "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved"— The registrant's role in the purchase process: * `Decision Maker` * `Evaluator/Recommender` * `Influencer` * `Not involved`state(required)string— The registrant's state or province.status(required)string, possible values:"approved", "denied", "pending", "all", default:"all"— The registrant's status: * `approved` — Registrant is approved. * `denied` — Registrant is denied. * `pending` — Registrant is waiting for approval. * `all` — The default status code.zip(required)string— The registrant's ZIP or postal code.custom_questionsarray— Information about custom questions.Items: titlestring— The title of the custom question.valuestring— The custom question's response value. This has a limit of 128 characters.
idstring— The registrant's ID.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"registrant": {
"id": "",
"email": "",
"status": "all",
"first_name": "",
"last_name": "",
"address": "",
"city": "",
"country": "",
"zip": "",
"state": "",
"phone": "",
"industry": "",
"org": "",
"job_title": "",
"purchasing_time_frame": "",
"role_in_purchase_process": "",
"no_of_employees": "",
"comments": "",
"custom_questions": [
{
"title": "",
"value": ""
}
]
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.created
- Method:
POST - Path:
meeting.created - Tags: Meetings
The Meeting has been created event is triggered every time a meeting is created by one of your app users or account users.
Zoom offers multiple methods for users to schedule new meetings. Users can manually create meetings through the Zoom client or the Zoom web portal. Users can also programmatically create meetings through the Create a meeting API.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting has been created subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.creation_source(required)string, possible values:"other", "open_api", "web_portal"— The platform that the meeting was created through. * `other` - Created through another platform. * `open_api` - Created through Open API. * `web_portal` - Created through the web portal.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.join_url(required)string— The URL to join the meeting.settings(required)object— Information about the meeting's settings.alternative_hosts(required)string— A semicolon-separated list of the meeting's alternative hosts' email addresses or IDs.use_pmi(required)boolean— Whether the use of PMI is enabled.jbh_timeinteger, possible values:0, 5, 10, 15— If the value of the `join_before_host` field is `true`, this field indicates the time limits when a participant can join a meeting before the meeting's host. * `0` - Allow the participant to join the meeting at anytime. * `5` - Allow the participant to join 5 minutes before the meeting's start time. * `10` - Allow the participant to join 10 minutes before the meeting's start time. * `15` - Allow the participant to join 15 minutes before the meeting's start time.join_before_hostboolean— Whether participants can join the meeting before its host. This field is only used for scheduled meetings (`2`) or recurring meetings (`3` and `8`). This value defaults to `false`. If the [**Waiting Room** feature](https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room) is enabled, this setting is **disabled**.meeting_inviteesarray— A list of the meeting's invitees.Items: emailstring, format:email— The invitee's email address.
topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8, 10— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time. * `10` - A screen share only meeting.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.durationinteger— The scheduled meeting duration.statusstring, possible values:"available", "deleted"— The meeting occurrence status: * `available` * `deleted`
passwordstring— The password required to join the meeting.pmistring— The [Personal Meeting ID (PMI)](https://support.zoom.us/hc/en-us/articles/201362843-What-is-Personal-Meeting-ID-PMI-and-Personal-Link-).recurrenceobject— Information about [recurring meetings](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).end_date_timestring, format:date-time— The recurring meeting's final ending date and time before it is canceled, in UTC format.end_timesinteger— The number of times the recurring meeting will occur before it is canceled.monthly_dayinteger— The day of the month when the recurring monthly meeting occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month when a recurring meeting occurs. * `-1` - The last week of the month. * `1` - The first week. * `2` - The second week. * `3` - The third week. * `4` - The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week when the recurring monthly meeting is scheduled. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturdayrepeat_intervalinteger— The meeting's repeat interval. * For daily intervals, a max of `99` days. * For a weekly interval, a max of `50` weeks. * For monthly intervals, a max of `10` months.typeinteger, possible values:1, 2, 3— The type of recurring meeting. * `1` - Daily. * `2` - Weekly. * `3` - Monthly.weekly_daysstring— A comma-separated list of the days of the week when the recurring weekly meeting occurs. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturday
recurrence_event_idstring— The unique identifier of the recurring event that the occurrences belong to. Updating a recurring meeting with **This and following events** splits it into two recurring events, each with its own `recurrence_event_id`. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).tracking_fieldsarray— Information about the meeting's [tracking fields](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields).Items: fieldstring— The tracking field's label.valuestring— The tracking field's value.visibleboolean— Whether the tracking field is visible in the meeting scheduling options in the Zoom web portal. When the tracking field is disabled, the field can be only be set by users via API.
operator(required)string, format:email— The email address of the user who created the meeting.operator_id(required)string— The user ID of the user who created the meeting.operationstring, possible values:"all", "single", "range"— The type of operation performed on a recurring meeting. * `all` - The change was applied to all occurrences. * `single` - The change was applied to a single occurrence. * `range` - The change was applied to a range of occurrences while the other occurrences are unchanged. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"join_url": "",
"password": "",
"pmi": "",
"creation_source": "other",
"recurrence_event_id": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"use_pmi": true,
"alternative_hosts": "",
"meeting_invitees": [
{
"email": ""
}
],
"join_before_host": true,
"jbh_time": 0,
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"tracking_fields": [
{
"field": "",
"value": "",
"visible": true,
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
meeting.live_streaming_started
- Method:
POST - Path:
meeting.live_streaming_started - Tags: Meetings
The Meeting Live Streaming Started event is triggered every time a meeting's live stream begins on a streaming platform. The host that begins the live stream must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Zoom lets users live stream their Zoom meetings on YouTube Live, Facebook, Workplace by Facebook, and via a custom live streaming services.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Live Streaming Started subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.live_streaming(required)object— Information about the live stream.date_time(required)string, format:date-time— The date and time the live stream started.service(required)string, possible values:"Facebook", "Workplace_by_Facebook", "YouTube", "Twitch", "Custom_Live_Streaming_Service"— The name of the live streaming service: * `Facebook` * `Workplace_by_Facebook` * `YouTube` * `Twitch` * `Custom_Live_Streaming_Service`custom_live_streaming_settingsobject— Information about the custom live stream.page_url(required)string— The live stream's page URL.stream_key(required)string— The live stream's key.stream_url(required)string— The live stream's URL.resolutionstring— The number of pixels in each dimension that the video camera can display.
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who updated the meeting.operator_id(required)string— The user ID of the user who updated the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"live_streaming": {
"service": "Facebook",
"custom_live_streaming_settings": {
"stream_url": "",
"stream_key": "",
"page_url": "",
"resolution": ""
},
"date_time": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_room_system_callout_accepted
- Method:
POST - Path:
meeting.participant_room_system_callout_accepted - Tags: Meetings
The Invited party answered a meeting invitation through phone (call out) via Zoom room event is triggered every time a user joins a meeting through phone (call out) from a Zoom room.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Invited party answered a meeting invitation through phone (call out) via Zoom room subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.registration_approved
- Method:
POST - Path:
webinar.registration_approved - Tags: Webinars
The Webinar Registration has been approved event is triggered every time one of your app users or account users approve a user's registration.
Scheduling a Webinar with registration requires registrants to complete a brief form before receiving the link to join a Webinar. Webinar Registration options can be customized by a Zoom admin or a Webinar host. This customization allows them to choose whether to approve attendees automatically or manually.
When the registration is set to be approved manually, a pending registrant can either be approved or denied from joining the Webinar.
To approve a registrant manually, navigate to the Webinars page and click on the name of the webinar. Click Edit to the right of Manage Attendees option, select the registrant and click Approve. Alternatively, use the Update registrant's status API to approve the registrant programmatically.
Prerequisites
- Pro or a higher plan with Webinar license.
- Manual Approval enabled for Webinar Registrations.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL
- The Webinar Registration has been approved subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who approved the registration.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the webinar.last_namestring— The registrant's last name.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinar with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who approved the webinar registration.operator_id(required)string— The user ID of the user who approved the webinar registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"join_url": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.breakout_room_sharing_started
- Method:
POST - Path:
meeting.breakout_room_sharing_started - Tags: Meetings
The User in breakout room started sharing event is triggered when a user in a breakout room begins sharing content, such as their desktop or the classic whiteboard.
Breakout rooms are sessions that are split off from the main Zoom meeting. They allow the participants to meet in smaller groups and are completely isolated in terms of audio and video from the main session.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The User in breakout room started sharing subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The main meeting host's account ID.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [Zoom Whiteboard](https://support.zoom.us/hc/en-us/articles/4410916881421). * `desktop` — A user's desktop. * `airplay` — A user's airplay. * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string value if the source is **not** Dropbox.
user_id(required)string— The participant's ID. This is a unique ID assigned to the participant upon joining the meeting and is only valid for that meeting.idstring— The participant's user ID. This is the same value used in the [**Users**](/api-reference/zoom-api/methods#tag/Users) APIs if the participant logged in to join the meeting.parent_user_idstring— The participant's main meeting user ID (`user_id`).user_namestring— The participant's username.
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_bind
- Method:
POST - Path:
meeting.participant_bind - Tags: Meetings
The Phone User Bind To Participant event is triggered every time a phone user joins a meeting and binds to an attendee in the meeting.
Prerequisites
Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Phone User Bind To Partcipant subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.bind_user_id(required)string— The particpant's meeting user ID of participant the phone user bind to. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.phone_number(required)string— Phone number of participants who joined via PSTN.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.bind_participant_uuidstring— The participant's UUID of the user which this phone user binds to.date_timestring, format:date-time— The time when the participant is bond.emailstring, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.registrant_idstring— The registrant ID of the participants this phone user binds to. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.durationinteger— The scheduled meeting duration.idstring— The meeting ID.start_timestring— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"bind_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"bind_participant_uuid": "",
"date_time": "",
"email": "",
"participant_user_id": "",
"registrant_id": "",
"phone_number": "8615250064084"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_feedback
- Method:
POST - Path:
meeting.participant_feedback - Tags: Meetings
The Get participant survey feedback for meetings event is triggered every time an attendee completes an end-of-meeting experience feedback survey for a meeting. A meeting attendee is a meeting participant or the host.
Prerequisites
- Enable the Display end-of-meeting experience feedback survey feature in the attendee's Settings page.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Get participant survey feedback for meetings subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who commits the feedback.object(required)object— Information about the meeting.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.feedback(required)object— Information about the feedback.rating_quality(required)object— The feedback rating quality.satisfied(required)boolean— Whether the participant is satisfied.commentsstring— The participant's comments.feedback_detailsarray— The feedback details.Items: id(required)string— The feedback ID. * `1` — Poor video quality. * `2` — Poor audio quality. * `5` — Unable to present using share.zoom.us. * `7` — Unable to make phone call. * `8` — They could not hear us. * `9` — We could not hear them. * `10` — They could not see us. * `11` — We could not see them. * `12` — Could not present computer screen. * `999` — Others.name(required)string— The feedback name.
participant_user_id(required)string— The participant's universally unique ID (UUID). This value returns blank for users who aren't logged into Zoom.participant_uuid(required)string— The participant's meeting universally unique ID (UUID). This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting. This value will not be changed when the participant joins/leaves a breakout room.user_name(required)string— The participant's display name.zoom_room_idstring— The ID of the Zoom Room submitted the feedback. This field is only returned when the feedback is submitted by Zoom Rooms.zoom_room_platformstring— The platform of the Zoom Room submitted the feedback. This field is only returned when the feedback is submitted by Zoom Rooms.zoom_room_sender_emailstring— Zoom Rooms feedback sender email. This field is only returned when the feedback is submitted by Zoom Rooms.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"participant": {
"participant_uuid": "",
"participant_user_id": "",
"user_name": "",
"feedback": {
"rating_quality": {
"type": "2-point",
"quality": "GOOD"
},
"feedback_details": [
{
"id": "",
"name": ""
}
],
"comments": ""
},
"zoom_room_id": "",
"zoom_room_platform": "",
"zoom_room_sender_email": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.deleted
- Method:
POST - Path:
recording.deleted - Tags: Cloud Recording
This event is triggered when a user permanently deletes a cloud recording.
When a user initially deletes a recording, it is sent to the trash. At this stage, the recording can still be recovered for up to 30 days after deletion. To permanently delete a recording, users must delete it from the trash.
Users can permanently delete a recording via the Delete meeting recordings API with the delete query parameter or in the Zoom web portal.
Prerequisites
- A Pro or higher plan.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording files have been permanently deleted subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.object(required)object— Information about the webinar or meeting recording.account_id(required)string— The account ID of the user that completed the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_count(required)integer— The number of recording files deleted.recording_files(required)array— Information about the deleted recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}`. **Note:** We recommend that you send the access_token as a Bearer token in the Authorization header, for example: "Authorization": "Bearer <ACCESS_TOKEN>”.file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The file extension type of the recording file.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The type of the recording file.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "sign_interpretation", "production_sutdio"— The recording file type. * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`sign_interpretation` *`production_studio` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.play_urlstring— The URL at which the recording file can be opened and played.
share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.participant_audio_filesarray— Information about the participants' deleted audio files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The participant audio file's extension.file_name(required)string— The participant audio file's name.file_size(required)integer— The participant audio file's size, in bytes.file_type(required)string— The participant audio file's format.id(required)string— The participant audio file's ID.recording_end(required)string, format:date-time— The participant audio file's end time.recording_start(required)string, format:date-time— The participant audio file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the participant audio file can be opened and played.
timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who deleted the recording.operator_id(required)string— The user ID of the user who deleted the recording.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"account_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_size": 1,
"file_extension": "MP4",
"file_name": "",
"play_url": "",
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.paused
- Method:
POST - Path:
recording.paused - Tags: Cloud Recording
The Recording Paused event is triggered every time a recording is paused by one of your app's users or account users.
All users with a Pro or a higher plan have access to cloud recordings. An account owner or account admin can enable cloud recording for all account members as well as for members that belong to a certain group. Users can also enable cloud recordings for their own use.
Only a host or a co-host of the meeting/webinar can start, pause, resume or stop a cloud recording.
Prerequisites
- A Pro or a higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording Paused subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that started the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string, format:date-time— The date and time at which the recording started.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_room_system_callout_ringing
- Method:
POST - Path:
meeting.participant_room_system_callout_ringing - Tags: Meetings
The Invited party's phone (call out) ringing in Zoom room event is triggered every time a user's phone is ringing when they were invited to join a meeting through phone (call out) from a Zoom room.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Invited party's phone (call out) ringing in Zoom room subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.started
- Method:
POST - Path:
recording.started - Tags: Cloud Recording
The Recording Started event is triggered every time a recording is started by one of your app users or account users.
All users with a Pro or a higher plan have access to cloud recordings. An account owner or account admin can enable cloud recording for all account members as well as for members that belong to a certain group. Users can also enable cloud recordings for their own use.
Only a host or a co-host of the meeting/webinar can start cloud recording of the meeting/webinar.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording Started subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that started the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string— The date and time at which the recording started.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
user.tsp_updated
- Method:
POST - Path:
user.tsp_updated - Tags: TSP
The A user's TSP account was updated event is triggered every time a user's TSP account information is updated.
Zoom allows certain carrier partners to provision Telephony Service Provider (TSP) audio to users. For users to use TSP audio, carrier partners must create a TSP user account with Zoom for the users.
Prerequisites
- A Pro or higher plan with TSP Configurations enabled.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- The A user's TSP account was updated subscription must be enabled under the TSP event.
Request Body
Content-Type: application/json
eventstring— The name of the event.event_tsinteger, format:int64— A timestamp at which the event occurred.payloadobjectaccount_idstring— The account ID of the user who updated the TSP.objectobject— Information about the updated user.emailstring, format:email— The user's email address.idstring— The user's ID.tsp_credentialsobject— Information about the updated user's TSP credentials.conference_codestring— The TSP conference code.dial_in_numbersarray— Information about the TSP dial-in numbers.Items: codestring— The country code.country_labelstring, possible values:"US_TSP_TB", "EU_TSP_TB"— The TSP country label. * `US_TSP_TB` * `EU_TSP_TB`numberstring— The dial-in phone number.typestring, possible values:"toll", "tollfree", "media_link"— The phone number's type. * `toll` - Toll number. * `tollfree` - Toll free number. * `media_link` - Media link.
leader_pinstring— The leader PIN.tsp_bridgestring— The TSP bridge zone.
old_objectobjectoperatorstring, format:email— The email address of the user who updated the TSP.operator_idstring— The user ID of the user who updated the TSP.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"email": "",
"tsp_credentials": {
"conference_code": "",
"leader_pin": "",
"tsp_bridge": "",
"dial_in_numbers": [
{
"code": "",
"number": "",
"type": "toll",
"country_label": "US_TSP_TB"
}
]
}
},
"old_object": null
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.invitation_timeout
- Method:
POST - Path:
meeting.invitation_timeout - Tags: Meetings
The Invited party missed a meeting invitation event is triggered every time an invitation to join a meeting or video call to one or more recipients times out.
This event is only suitable for triggering with the ZOOM client.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Invited party missed a meeting invitation subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who missed the meeting invitation.operator_id(required)string— The user ID of the user who missed the meeting invitation.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_admitted
- Method:
POST - Path:
meeting.participant_admitted - Tags: Meetings
The Participant was admitted into a meeting event is triggered every time a meeting host admits the participant from a waiting room to the meeting. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
When a participant joins a waiting room, the meeting host is notified in the Zoom client. The host has the option to admit the participant to the meeting or remove the participant from the waiting room and the meeting.
Prerequisites
- Enable the waiting room feature for the meeting.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant was admitted into a meeting subscription must be enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is not part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](/docs/api/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#email-address) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty (`””`) value.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's meeting universally unique ID (UUID). This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting. This value will not be changed when the participant joins/leaves a breakout room.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](/docs/api/references/abbreviations/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"participant_user_id": "",
"phone_number": "",
"date_time": "",
"email": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_room_system_callout_failed
- Method:
POST - Path:
meeting.participant_room_system_callout_failed - Tags: Meetings
The Meeting invitation through phone (call out) via Zoom room failed event is triggered every time an invitation to join a meeting through phone (call out) from a Zoom room fails.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Meeting invitation through phone (call out) via Zoom room failed subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
reason_type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14— reason type for failure: * `1` — Encryption_Fail. * `2` — Disconnected_By_Remote. * `3` — Retry. * `4` — Bad_Seq. * `5` — Call_Limit. * `6` — Not_Registered. * `7` — Timeout. * `8` — Bad_Addr. * `9` — Unreachable * `10` — Disconnect_By_Local * `11` — Server_Internal_Error * `12` — Exceed_Free_Port * `13` — Connect_Error * `14` — Proxy_Connect_Error * `0` — Other_Failed_Reason.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"reason_type": 0,
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_data_connection_established
- Method:
POST - Path:
meeting.participant_data_connection_established - Tags: Meetings
The Participant or Host connection established event is triggered every time an attendee establishes a data connection when joining a meeting.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant or Host connection established subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp for when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.data_connections(required)array— A list of data connection records established by the participant in the meeting.Items: command_connection_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the command connection.connection_type(required)string, possible values:"audio", "video", "screen_share"— The type of in-meeting data connection.data_socket_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the data socket connection.first_package_time_cost_ms(required)integer— The time, in milliseconds, from data socket establishment to receiving the first package.total_time_cost_ms(required)integer— The total time, in milliseconds, that it took to establish the data connection.
host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.join_time(required)string, format:date-time— The time when the participant joined the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting and is only valid for the duration of that meeting.phone_numberstring— The phone number of the participant who joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.idstring— The meeting number.start_timestring— The meeting's start time.topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"participant": {
"user_id": "",
"user_name": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8611111111111"
},
"data_connections": [
{
"connection_type": "audio",
"total_time_cost_ms": 1,
"command_connection_time_cost_ms": 1,
"data_socket_time_cost_ms": 1,
"first_package_time_cost_ms": 1
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.resumed
- Method:
POST - Path:
recording.resumed - Tags: Cloud Recording
The Recording Resumed event is triggered every time a previously paused recording of a meeting or webinar is resumed.
All users with a Pro or a higher plan have access to cloud recordings. An account owner or account admin can enable cloud recording for all account members as well as for members that belong to a certain group. Users can also enable cloud recordings for their own use.
Only a host or a co-host of the meeting/webinar can start, pause, resume, and stop a cloud recording. A host/co-host can resume a paused recording of a meeting or a webinar.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording Resumed subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that resumed the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string— The date and time at which recording started.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_phone_callout_missed
- Method:
POST - Path:
meeting.participant_phone_callout_missed - Tags: Meetings
The Invited party missed a meeting invitation through phone (call out) event is triggered every time an invitation to join a meeting through phone (call out) times out.
Prerequisites
Enable Event Subscriptions for your Marketplace app with these configurations.
- A valid Event Notification Endpoint URL.
- The Invited party missed a meeting invitation through phone (call out) subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.summary_updated
- Method:
POST - Path:
meeting.summary_updated - Tags: Meetings
The Meeting summary has been updated event is triggered every time one of your app users or account users updates a meeting summary.
Prerequisites
- Host user must have a Pro or higher plan.
- Enable the Meeting Summary with AI Companion feature in the host's account.
- E2ee meetings do not have summary feature enabled.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting summary has been updated subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.edited_summary(required)object— Information about the edited meeting summary.next_stepsarray— The user-edited next steps.Items: string— The user-edited next step.summary_detailsstring— The user-edited summary details.summary_overviewstring— The user edited summary overview.
meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID. After a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.next_steps(required)array— The next steps.Items: string— The next step.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_details(required)array— The summary content details.Items: label(required)string— The summary label.summary(required)string— The summary content.
summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_last_modified_user_email(required)string— The user email of the user who last modified the meeting summary.summary_last_modified_user_id(required)string— The user ID of the user who last modified the meeting summary.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.summary_contentstring— The complete meeting summary in Markdown format. This unified field is used for all summaries. For compatibility, the legacy fields `summary_overview`, `summary_details`, `next_steps`, and `edited_summary` are still returned, but are deprecated and will not be supported in the future.summary_doc_urlstring— The URL to view the full summary document in Zoom Docs.summary_overviewstring— The summary overview.
operator(required)string— The email address of the user who updated the meeting summary.operator_id(required)string— The user ID of the user who updated the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_last_modified_user_id": "",
"summary_last_modified_user_email": "",
"summary_title": "",
"summary_content": "",
"summary_doc_url": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.participant_joined
- Method:
POST - Path:
webinar.participant_joined - Tags: Webinars
The Participant/Host joined webinar event is triggered every time a host or an attendee joins a webinar that was created by one of your app users or account users.
Zoom users with a Webinar Plan have access to creating and managing webinars. A webinar host can invite other users to attend the webinar.
Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees.
Prerequisites
- Pro or a higher plan with Webinar license.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant/Host joined webinar subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the webinar by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.id(required)string— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.join_time(required)string, format:date-time— The date and time when the participant joined the webinar.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value.participant_uuidstring— The participant's UUID for this specific webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.renamed
- Method:
POST - Path:
recording.renamed - Tags: Cloud Recording
The Recording Renamed event is triggered every time the title of a cloud recording is changed.
All users with a Pro or a higher plan have access to cloud recordings. After a meeting or a webinar which was being recorded to the cloud ends, the recording is made available on the host's Zoom account.
By default, the title of the recording is the same as the topic of the meeting or the webinar that was recorded. However, a meeting host, an account admin or an account owner can rename the title of the recording using the Zoom Web Portal. To do so, the user must navigate to the Cloud Recordings in the Zoom Web Portal, click on the recording that needs to be renamed and click on the pencil icon to rename the title of the recording.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event notification endpoint URL.
- The Recording Renamed subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that renamed the meeting or webinar recording.object(required)object— Information about meeting or webinar recording.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).topic(required)string— The updated recording title.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.
old_object(required)object— Information about the previous meeting or webinar recording's settings.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).topic(required)string— The previous recording title.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.
operator(required)string— The email address of the user that renamed the meeting or webinar recording.operator_id(required)string— The user Id of the user that renamed the meeting or webinar recording.time_stamp(required)number— A timestamp at which the user renamed the meeting or webinar recording.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"time_stamp": 1,
"object": {
"uuid": "",
"id": 1,
"topic": "",
"type": 1,
"host_id": ""
},
"old_object": {
"uuid": "",
"id": 1,
"topic": "",
"type": 1,
"host_id": ""
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_room_system_callout_missed
- Method:
POST - Path:
meeting.participant_room_system_callout_missed - Tags: Meetings
The Invited party missed a meeting invitation through phone (call out) via Zoom room event is triggered every time an invitation to join a meeting through phone (call out) from a Zoom room times out.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Invited party missed a meeting invitation through phone (call out) via Zoom room subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.created
- Method:
POST - Path:
webinar.created - Tags: Webinars
Zoom triggers this event every time one of your app users or account users creates a Webinar.
Zoom users with a Webinar Plan have access to creating and managing webinars. Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees.
A user can create a Webinar manually by logging into the Zoom Web Portal and clicking on Schedule a Webinar button in the Webinars page. Alternatively, users can also use the Create a Webinar API to schedule a Webinar programmatically.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscription must be enabled for your Marketplace App with the following configurations:
- A valid Event notification endpoint URL
- The Webinar has been created subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.creation_source(required)string, possible values:"other", "open_api", "web_portal"— The platform through which the meeting was created. * `other` - Created through another platform. * `open_api` - Created through Open API. * `web_portal` - Created through the web portal.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.join_url(required)string— The URL to join the webinar.settings(required)object— Information about the webinar's settings.alternative_hosts(required)string— A semicolon-separated list of the webinar's alternative hosts' email addresses or IDs.use_pmi(required)boolean— Whether the use of PMI is enabled.
timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.durationinteger— The scheduled webinar duration.statusstring, possible values:"available", "deleted"— The webinar occurrence status: * `available` * `deleted`
passwordstring— The password required to join the webinar.recurrenceobject— Information about [recurring meetings](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).end_date_timestring, format:date-time— The recurring meeting's final ending date and time before it is canceled, in UTC format.end_timesinteger— The number of times the recurring meeting will occur before it is canceled.monthly_dayinteger— The day of the month on which the recurring monthly meeting occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month on which a recurring meeting occurs: * `-1` — The last week of the month. * `1` — The first week. * `2` — The second week. * `3` — The third week. * `4` — The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week on which the recurring monthly meeting is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturdayrepeat_intervalinteger— The meeting's repeat interval: * For daily intervals, a max of `90` days. * For a weekly interval, a max of `12` weeks. * For monthly intervals, a max of `3` months.typeinteger, possible values:1, 2, 3— The type of recurring meeting: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.weekly_daysstring— A comma-separated list of the days of the week on which the recurring weekly meeting occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday
start_timestring, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who created the webinar.operator_id(required)string— The user ID of the user who created the webinar.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all webinar. * `single` — The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"join_url": "",
"password": "",
"creation_source": "other",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"use_pmi": true,
"alternative_hosts": "",
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
recording.registration_denied
- Method:
POST - Path:
recording.registration_denied - Tags: Cloud Recording
The View registrant has denied for this recording event is triggered every time a registrant is denied from viewing a cloud recording.
Cloud recordings of Zoom meetings and webinars can be made on-demand. With on-demand recordings, users can view the recordings of past meetings and webinars at any time as long as they have not been removed. To view these recordings, users can register manually by filling out the registration form that pops up when users click on the Recording URL provided by the Webinar organizer. After the registration, only registrants that are approved will be able to view the recording.
An account owner, a host of the meeting/webinar or a user with admin privileges can customize the registration approval settings for cloud recordings. The registrants' information can be viewed from the Zoom Web Portal. A pending or a previously approved registrant can be denied from viewing the recording by clicking Deny. The registrants can also be denied by using the Update registrant's status API.
Prerequisites
- A Pro or higher plan.
- Cloud recording must be enabled on the users' account.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event notification endpoint URL.
- The View registrant has denied for this recording subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host that recorded the meeting or webinar.object(required)object— Information about the recording registration.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The webinar or meeting host's user ID.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).registrant(required)object— Information about the recording registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.last_name(required)string— The registrant's last name.idstring— The registrant's ID.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who denied the recording registration.operator_id(required)string— The user ID of the user who denied the recording registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"registrant": {
"id": "",
"email": "",
"first_name": "",
"last_name": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_phone_callout_failed
- Method:
POST - Path:
meeting.participant_phone_callout_failed - Tags: Meetings
The meeting invitation through phone (call out) failed event is triggered every time an invitation to join a meeting through phone (call out) failed.
Prerequisites
Enable Event Subscriptions for your Marketplace app with these configurations.
- A valid Event Notification Endpoint URL.
- The meeting invitation through phone (call out) failed subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's display name in the meeting.phone_number(required)integer, format:int64— The user's phone number.
reason_type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14— The reason type for the failure: * `1` — Not_Allow_PSTN. * `2` — Block_Too_Frequent. * `3` — Block_By_No_Host. * `4` — PhoneNumber_Blocked. * `5` — Call_Count_Limit_InConf. * `6` — SipTrunk_Error. * `7` — Timeout. * `8` — PhoneNumber_Invalid. * `0` — Other_Failed_Reason.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"reason_type": 0,
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.live_streaming_stopped
- Method:
POST - Path:
meeting.live_streaming_stopped - Tags: Meetings
The Meeting Live Streaming Stopped event is triggered every time a meeting's live stream ends. The host of the live stream must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Zoom lets users live stream their Zoom meetings on YouTube Live, Facebook, Workplace by Facebook, and via a custom live streaming services.
Prerequisites
Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting Live Streaming Stopped subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.live_streaming(required)object— Information about the live stream.date_time(required)string, format:date-time— The date and time the live stream ended.service(required)string, possible values:"Facebook", "Workplace_by_Facebook", "YouTube", "Twitch", "Custom_Live_Streaming_Service"— The name of the live streaming service: * `Facebook` * `Workplace_by_Facebook` * `YouTube` * `Twitch` * `Custom_Live_Streaming_Service`custom_live_streaming_settingsobject— Information about the custom live stream.page_url(required)string— The live stream's page URL.stream_key(required)string— The live stream's key.stream_url(required)string— The live stream's URL.resolutionstring— The number of pixels in each dimension that the video camera can display.
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who updated the meeting.operator_id(required)string— The user ID of the user who updated the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"live_streaming": {
"service": "Facebook",
"custom_live_streaming_settings": {
"stream_url": "",
"stream_key": "",
"page_url": "",
"resolution": ""
},
"date_time": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.participant_data_connection_established
- Method:
POST - Path:
webinar.participant_data_connection_established - Tags: Webinars
The Participant or Host connection established event is triggered when an attendee establishes a data connection when joining a webinar.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant or Host connection established subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp for when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.data_connections(required)array— A list of data connection records established by the participant in the webinar.Items: command_connection_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the command connection.connection_type(required)string, possible values:"audio", "video", "screen_share"— The type of in-webinar data connection.data_socket_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the data socket connection.first_package_time_cost_ms(required)integer— The time, in milliseconds, from data socket establishment to receiving the first package.total_time_cost_ms(required)integer— The total time, in milliseconds, that it took to establish the data connection.
host_id(required)string— The webinar host's user ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the webinar by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.join_time(required)string, format:date-time— The time when the participant joined the webinar.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant when they join a webinar and is only valid for the duration of the webinar.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific webinar and any breakout rooms created in this webinar. This value is assigned to a participant when they join a webinar and is only valid for the duration of that webinar.phone_numberstring— The phone number of the participant who joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:5, 6, 9— The webinar type: * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.idstring— The webinar number.start_timestring— The webinar's start time.topicstring— The webinar's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"participant": {
"user_id": "",
"user_name": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8611111111111"
},
"data_connections": [
{
"connection_type": "audio",
"total_time_cost_ms": 1,
"command_connection_time_cost_ms": 1,
"data_socket_time_cost_ms": 1,
"first_package_time_cost_ms": 1
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.registration_cancelled
- Method:
POST - Path:
webinar.registration_cancelled - Tags: Webinars
The Webinar Registration has been canceled event is triggered whenever one of these two conditions are met:
- A registrant cancels their registration for a Webinar created by one of your app users or account users.
- A host who is also a user of your app or your Zoom account cancels the registration of a registrant who was previously approved.
Scheduling a Webinar with registration requires registrants to complete a brief form before receiving the link to join the Webinar. Webinar Registration options can be customized by a Zoom admin or a Webinar host. This customization allows them to choose whether to approve attendees automatically or manually.
Prerequisites
- Pro or a higher plan with Webinar license.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL
- The Webinar Registration has been canceled subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who canceled the webinar registration.operator_idstring— The user ID of the user who canceled the webinar registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.recovered
- Method:
POST - Path:
meeting.recovered - Tags: Meetings
The Meeting has been recovered event is triggered every time a user recovers a previously-deleted meeting. The user must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
Zoom users can restore previously-deleted meetings for up to one week after deletion. Any invitations, links, and meeting IDs sent prior to the meeting's deletion will still work after a user recovers it.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting has been recovered subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who recovered the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
operator(required)string, format:email— The email address of the user who recovered the meeting.operator_id(required)string— The user ID of the user who recovered the meeting.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all meetings. * `single` — The change was applied only to a single meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.permanently_deleted
- Method:
POST - Path:
webinar.permanently_deleted - Tags: Webinars
The Webinar has been permanently deleted event is triggered every time a scheduled webinar is permanently deleted.
A webinar host or a user with admin privileges can permanently delete a webinar via the Zoom web portal.
Prerequisites
- A Pro or higher plan.
- Enable Event Subscriptions for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Webinar has been permanently deleted subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who permanently deleted the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who permanently deleted the webinar.operator_id(required)string— The user ID of the user who permanently deleted the webinar.operationstring, possible values:"all", "single"— The type of operation performed. * `all` — The change was applied to all webinars. * `single` — The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.completed
- Method:
POST - Path:
recording.completed - Tags: Cloud Recording
This event is triggered when a recording of a meeting or webinar becomes available to view or download.
Users with a Pro or a higher plan have access to cloud recordings. Account owners and account admins can enable cloud recording for account members.
Users can also enable cloud recordings for their own use.
Only meeting or webinar hosts and co-hosts can start and complete a cloud recording. A recording is considered complete after the host or co-host ends the meeting or webinar.
Prerequisites
- A Pro or higher plan.
- Enable Cloud recording on the users' account.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event notification endpoint URL.
- The All Recordings have completed subscription must be enabled under the Recording event.
Request Body
Content-Type: application/json
download_token(required)string— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation, and you can only download the file within 24 hours of receiving the event notification. Pass `download_token` as a bearer token in the authorization header of your HTTP request. ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ```.event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who completed the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.account_id(required)string— The account ID of the user who completed the meeting or webinar recording.duration(required)integer— The recording's duration.host_email(required)string, format:email— The host's email address.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting `meetingId` or webinar `webinarId`.password(required)string— The meeting's or webinar's password.recording_count(required)integer— The number of completed recording files.recording_files(required)array— Information about the completed recording files.Items: download_url(required)string— The URL to download the the recording. To download the recording file of a meeting or a webinar, use the `download_token` value to download the file. For example: `https://{{base-domain}}/rec/webhook_download/download/xxx--header 'Authorization: Bearer {{your-download_token-value}}`file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The file extension type of the recording file.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The type of the recording file.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time when recording ended.recording_start(required)string, format:date-time— The date and time when recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "sign_interpretation", "production_studio"— The recording file type. * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`sign_interpretation` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status. * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.file_pathstring— The file path to the on-premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL where the recording file can be opened and played.
share_url(required)string— The URL where approved users can view the recording.start_time(required)string, format:date-time— The meeting's or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar. If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.auto_deleteboolean— Auto-delete status of a meeting's [cloud recording](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-Recording). Prerequisite: To get the auto-delete status, the host of the recording must have the recording setting 'Delete cloud recordings after a specified number of days' enabled.auto_delete_datestring— The date on which the recording will be auto-deleted when auto_delete is true. Otherwise, no date will be returned.on_premboolean— Whether the recording is an [on-premise](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment) recording.participant_audio_filesarray— Information about the participants' audio files.Items: download_url(required)string— The URL to download the the recording. To download the recording file of a meeting or a webinar, use the `download_token` value to download the file. For example: `https://{{base-domain}}/rec/webhook_download/download/xxx--header 'Authorization: Bearer {{your-download_token-value}}`file_extension(required)string— The participant audio file's extension.file_name(required)string— The participant audio file's name.file_size(required)integer— The participant audio file's size, in bytes.file_type(required)string— The participant audio file's format.id(required)string— The participant audio file's ID.recording_end(required)string, format:date-time— The participant audio file's end time.recording_start(required)string, format:date-time— The participant audio file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status. * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the on-premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL to open and play the participant audio file.
recording_play_passcodestring— The cloud recording's password to be used in the URL. This recording's password can be directly spliced in `play_url` or `share_url` with `?pwd=` to access and play, such as in 'https://zoom.us/rec/share/**************?pwd=yNYIS408EJygs7rE5vVsJwXIz4-VW7MH'. See [Embedding meeting passcode in invite link](https://support.zoom.us/hc/en-us/articles/360060396571-Embedding-meeting-passcode-in-invite-link) for details. If you want to use this field, please contact Zoom support.timezonestring— The meeting's or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"account_id": "",
"topic": "",
"type": 1,
"start_time": "",
"password": "",
"timezone": "",
"host_email": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"on_prem": true,
"recording_play_passcode": "yNYIS408EJygs7rE5vVsJwXIz4-VW7MH",
"auto_delete": true,
"auto_delete_date": "",
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_size": 1,
"file_extension": "MP4",
"file_name": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_put_in_waiting_room
- Method:
POST - Path:
meeting.participant_put_in_waiting_room - Tags: Meetings
The Participant was put in a waiting room event is triggered every time a participant who has already joined the meeting is returned to the waiting room during the meeting. The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
During a meeting, a meeting host can send a participant to the waiting room by selecting the Put in waiting room option in the Zoom client.
Prerequisites
- Enable the waiting room for the meeting.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Participant was put in a waiting room subscription must be enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is not part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](/docs/api/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](/docs/api/references/abbreviations/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"date_time": "",
"email": "",
"phone_number": "",
"participant_user_id": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
recording.trashed
- Method:
POST - Path:
recording.trashed - Tags: Cloud Recording
This event is triggered when a user initially deletes a cloud recording.
When a user initially deletes a recording, it is sent to the trash. To move a recording to the trash, users can use the Delete meeting recordings API or the Zoom web client. Users can recover recordings from the trash up to 30 days after deletion.
Prerequisites
- A Pro or higher plan.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording files have been deleted to Trash subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who deleted the recording to the trash.object(required)object— Information about the webinar or meeting recording.account_id(required)string— The account ID of the user that completed the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_count(required)integer— The number of recording files deleted to the trash.share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.participant_audio_filesarray— Information about the trashed participant audio files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The participant audio file's extension.file_name(required)string— The participant audio file's name.file_size(required)integer— The participant audio file's size, in bytes.file_type(required)string— The participant audio file's format.id(required)string— The participant audio file's ID.recording_end(required)string, format:date-time— The participant audio file's end time.recording_start(required)string, format:date-time— The participant audio file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the participant audio file can be opened and played.
recording_filesarray— Information about the trashed recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}`. **Note:** We recommend that you send the access_token as a Bearer token in the Authorization header, for example: "Authorization": "Bearer <ACCESS_TOKEN>”.file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The recording file's extension.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The recording file's type.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "production_sutdio"— The type of recording file: * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`production_studio` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.play_urlstring— The URL at which the recording file can be opened and played.
timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who deleted the recording to the trash.operator_id(required)string— The user ID of the user who deleted the recording to the trash.
download_tokenstring— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request: **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"account_id": "",
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_extension": "MP4",
"file_name": "",
"file_size": 1,
"play_url": "",
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.summary_deleted
- Method:
POST - Path:
meeting.summary_deleted - Tags: Meetings
The Meeting summary has been permanently deleted event is triggered every time one of your app users or account users permanently deletes a meeting summary.
Prerequisites
- Host user must be Pro or higher plan.
- Enable the Meeting Summary with AI Companion feature in the host's account.
- E2ee meetings do not have summary feature enabled.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Meeting summary has been permanently deleted subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who permanently deleted the meeting summary.operator_id(required)string— The user ID of the user who permanently deleted the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
webinar.participant_bind
- Method:
POST - Path:
webinar.participant_bind - Tags: Webinars
descriptionThe Phone User Bind To Participant event is triggered every time a phone user joins a webinar and binds to an attendee in the webinar.
Prerequisites
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Phone User Bind To Partcipant subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the Webinar.object(required)object— Information about the webinar.host_id(required)string— The webinar host's user ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.bind_user_id(required)string— The particpant's webinar user ID of participant the phone user bind to. This value is assigned to a participant when they join a webinar, and is only valid for the duration of the webinar.join_time(required)string, format:date-time— The time when the participant joined the webinar.phone_number(required)string— Phone number of participants who joined via PSTN.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant when they join a webinar, and is only valid for the duration of the webinar.bind_participant_uuidstring— The participant's UUID of the user which this phone user binds to.idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](https://developers.zoom.us/docs/api/rest/reference/user/methods/#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_uuidstring— The participant's UUID for this specific webinar and any breakout rooms created in this webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.registrant_idstring— The registrant ID of the participants this phone user binds to. A host or a user with administrative permissions can require [registration for Zoom webinars](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The webinar type. * `0` - A prescheduled webinar. * `1` - An instant webinar. * `2` - A scheduled webinar. * `3` - A recurring webinar with no fixed time. * `4` - A [personal webinar room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-webinar) webinar. * `8` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.durationinteger— The scheduled webinar duration.idstring— The webinar ID.start_timestring— The webinar's start time.timezonestring— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The webinar's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"bind_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"bind_participant_uuid": "",
"join_time": "",
"registrant_id": "",
"phone_number": "8615250064084"
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
webinar.updated
- Method:
POST - Path:
webinar.updated - Tags: Webinars
The Webinar has been updated event is triggered every time one of your app users or account users updates a webinar.
Zoom users with a webinar plan have access to creating and managing webinars. Zoom Video Webinar allows users to broadcast a Zoom meeting to up to 1000 attendees. A scheduled webinar can be updated either by the user who created it or by a user with admin privileges.
Users can update a webinar manually by logging into the Zoom Web Portal, navigating to the webinar that needs to be updated from the Webinars page and clicking on the Edit this Webinar button. Alternatively, users can also use the Update a webinar API to schedule a webinar programmatically.
Prerequisites
- Have a Pro or a higher plan with webinar license.
- Enable Event Subscriptions for your Marketplace app with:
- A valid Event Notification Endpoint URL.
- The Webinar has been updated subscription enabled under the Webinar event.
Request Body
Content-Type: application/json
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who updated the webinar.object(required)object— Information about the webinar.id(required)integer, format:int64— The webinar ID.agendastring— The webinar's agenda.durationinteger— The scheduled webinar duration.host_idstring— The webinar host's user ID.occurrencesarray— Information about recurring webinar with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.durationinteger— The scheduled webinar duration.statusstring, possible values:"available", "deleted"— The webinar occurrence status: * `available` * `deleted`
passwordstring— The password required to join the webinar.recurrenceobject— Information about [recurring webinars](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).end_date_timestring, format:date-time— The recurring webinar's final ending date and time before it is canceled, in UTC format.end_timesinteger, default:1— The number of times the recurring webinar will occur before it is canceled.monthly_dayinteger— The day of the month when the recurring monthly webinar occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month when a recurring webinar occurs. * `-1` - The last week of the month. * `1` - The first week. * `2` - The second week. * `3` - The third week. * `4` - The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week when the recurring monthly webinar is scheduled. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturdayrepeat_intervalinteger— The webinar's repeat interval. * For daily intervals, a maximum of `90` days. * For a weekly interval, a maximum of `12` weeks. * For monthly intervals, a maximum of `3` months.typeinteger, possible values:1, 2, 3— The recurring webinar type. * `1` - Daily. * `2` - Weekly. * `3` - Monthly.weekly_daysstring— A comma-separated list of the days of the week when the recurring weekly webinar occurs. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturday
registration_urlstring— The webinar's registration URL.settingsobject— Information about the updated webinar settings. This **only** returns updated webinar settings.allow_host_control_participant_mute_stateboolean— Whether to allow host and co-hosts to fully control the mute state of participants.approval_typeinteger, possible values:0, 1, 2— The [approval type](https://support.zoom.us/hc/en-us/articles/204619915-Scheduling-a-webinar-with-registration) for webinar registrants. * `0` - Automatically approve registrants. * `1` - Manually approve registrants. * `2` - Webinar registration not required.audiostring, possible values:"telephony", "voip", "both"— The available audio options for participants joining the webinar. * `telephony` - Telephony only. * `voip` - VoIP only. * `both` - Both Telephony and VoIP.authentication_domainsstring— A list of the allowed authenticated domains.authentication_namestring— The authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472).authentication_optionstring— The [authentication](https://support.zoom.us/hc/en-us/articles/4406604615693) option ID value.auto_recordingstring, possible values:"local", "cloud", "none"— The [automatic recording](https://support.zoom.us/hc/en-us/articles/202921119-Automatic-Recording) settings for the webinar. * `local` - Record and save to the local device. * `cloud` - Record and save to the cloud. * `none` - Automatic recording disabled.email_in_attendee_reportboolean— Whether to include guest's email addresses in webinars' attendee reports.enforce_loginboolean— Whether to only allow signed in users to join the webinar.host_videoboolean— Whether to start the webinar with the host's video on.language_interpretationobject— The webinar's [language interpretation settings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064768). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** This feature is only available for certain Webinar add-on, Education, and Business and higher plans. If this feature is not enabled on the host's account, this setting will **not** be applied to the webinar. This is not supported for simulive webinars.enableboolean— Whether to enable [language interpretation](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064768) for the webinar.interpretersarray— Information about the webinar's language interpreters.Items: emailstring, format:email— The interpreter's email address.interpreter_languagesstring— A comma-separated list of the interpreter's languages. The string must contain exactly two languages. To get this value, use the `language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](https://developers.zoom.us/docs/api/users/#tag/users/GET/users/{userId}/settings) API response. **languages**: System-supported languages include `English`, `Chinese`, `Japanese`, `German`, `French`, `Russian`, `Portuguese`, `Spanish`, and `Korean`. **custom_languages**: User-defined languages added by the user. For example, an interpreter translating between English and French should use `English,French`.
meeting_authenticationboolean— Whether only authenticated users can join the webinar.panelists_videoboolean— Whether to turn panelists' video on when they join the webinar.practice_sessionboolean— Whether to enable the [**Enable Practice Session**](https://support.zoom.us/hc/en-us/articles/206316975-Webinar-Practice-Session) feature.registration_typeinteger, possible values:1, 2, 3— The webinar registration setting for recurring webinars: * `1` - Attendees register once and can attend any of the webinar occurrences. * `2` - Attendees must register for each occurrence to attend. * `3` - Attendees register once and can select one or more occurrences to attend.sign_language_interpretationobject— The webinar's [sign language interpretation settings](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** If this feature is not enabled on the host's account, this setting will **not** be applied to the webinar.enableboolean— Whether to enable [sign language interpretation](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar) for the webinar.interpretersarray— Information about the webinar's sign language interpreters.Items: emailstring, format:email— The interpreter's email address.sign_languagestring— The interpreter's sign language. To get this value, use the `sign_language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods#operation/userSettings) API response.
start_timestring— The webinar's start time.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The webinar's topic.typeinteger, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuidstring— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
old_object(required)objectoperator(required)string, format:email— The email address of the user who updated the webinar.operator_id(required)string— The user ID of the user who updated the webinar.time_stamp(required)integer, format:int64— The webinar's update timestamp, in milliseconds.scopestring, possible values:"single", "all"— The type of operation performed. * `all` - The change was applied to all webinars. * `single` - The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"scope": "single",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"password": "",
"agenda": "",
"registration_url": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"host_video": true,
"panelists_video": true,
"practice_session": true,
"approval_type": 0,
"registration_type": 1,
"audio": "telephony",
"auto_recording": "local",
"enforce_login": true,
"meeting_authentication": true,
"authentication_option": "",
"authentication_name": "",
"authentication_domains": "",
"language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"interpreter_languages": ""
}
]
},
"sign_language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"sign_language": ""
}
]
},
"allow_host_control_participant_mute_state": true,
"email_in_attendee_report": true,
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"time_stamp": 1,
"old_object": null,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Responses
Status: 200 Successfully received the webhook event.
recording.batch_recovered
- Method:
POST - Path:
recording.batch_recovered - Tags: Cloud Recording
The Batch recording recovered event is triggered every time one of your app users or account users recover one or more recordings from the trash.
Zoom allows users to recover their cloud recordings from trash within 30 days of deletion. You can recover a deleted cloud recording via the Recordings tab in the Zoom web client or via the Recover meeting recordings API.
Prerequisites
- A Pro or a higher plan.
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Recording files have been recovered in batches from trash subscription enabled under the Recording event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.operator(required)string, format:email— The email address of the user who recovered the recording.operator_id(required)string— The user ID of the user who recovered the recording.objectobject— Information about the meeting or webinar recording.meetings(required)arrayItems: meeting_uuidstring— The universally unique identifier (UUID) of the recorded meeting or webinar instance.recording_file_idsarray— The recording file's unique ID. If the current field value is NULL, it means to recover the whole Meeting Recording files.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meetings": [
{
"meeting_uuid": "",
"recording_file_ids": []
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
meeting.participant_room_system_callout_rejected
- Method:
POST - Path:
meeting.participant_room_system_callout_rejected - Tags: Meetings
The Invited party rejected a meeting invitation through phone (call out) via Zoom room event is triggered every time a user rejects an invitation to join a meeting through phone (call out) from a Zoom room.
Prerequisites
- Event Subscriptions must be enabled for your Marketplace app with the following configurations:
- A valid Event Notification Endpoint URL.
- The Invited party rejected a meeting invitation through phone (call out) via Zoom room subscription enabled under the Meeting event.
Request Body
Content-Type: application/json
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Responses
Status: 200 Successfully received the webhook event.
Schemas
Meeting.participant_jbh_waitingEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"id": "",
"user_name": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Meeting.summary_recoveredEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who recovered the meeting summary.operator_id(required)string— The user ID of the user who recovered the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.participant_left_breakout_roomEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom.leave_time(required)string, format:date-time— The time when the participant left the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.leave_reasonstring— The reason why the participant left the meeting.parent_user_idstring— The participant's main meeting user ID (`user_id`).participant_user_idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"leave_time": "",
"leave_reason": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"phone_number": "8615250064084",
"customer_key": ""
}
}
}
}Meeting.device_testedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)objectid(required)integer, format:int64— The meeting ID.test_result(required)object— Information about the meeting's device test results.camera_status(required)integer, possible values:0, 1, 2— The camera's status: * `2` — Device working. * `1` — Device not working. * `0` — Device not tested.microphone_status(required)integer, possible values:0, 1, 2— The microphone's status: * `2` — Device working. * `1` — Device not working. * `0` — Device not tested.speaker_status(required)integer, possible values:0, 1, 2— The speaker's status: * `2` — Device working. * `1` — Device not working. * `0` — Device not tested.user_id(required)string— The user's ID.user_name(required)string— The user's username.osstring— The user's operating system.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"test_result": {
"user_id": "",
"user_name": "",
"camera_status": 0,
"speaker_status": 0,
"microphone_status": 0,
"os": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.summary_sharedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID. After a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.share_with_users(required)array— Information about the shared users.Items: user_email(required)string, format:email— The shared user email.
summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who shared the meeting summary.operator_id(required)string— The user ID of the user who shared the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"share_with_users": [
{
"user_email": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.chat_message_file_downloadedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectobject(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.file_id(required)string— The live webinar chat file's UUID.file_name(required)string— The live webinar chat file's name.file_size(required)integer— The live webinar chat file's size, in bytes.file_type(required)string— The live webinar chat file's type.file_owner_idstring— The user ID of the user who uploaded the team chat file. This value returns blank for external users.
host_account_id(required)string— The webinar host's account ID. The value will be an empty string if this info is from an external user.id(required)integer, format:int64— The webinar ID.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a meeting UUID.
operator(required)string, format:email or name— The email address of the user who downloaded the file. This value returns the operator name for external users.account_idstring— The account ID of the user who downloaded the file. This value returns blank for external users.operator_idstring— The user ID of the user who downloaded the file. This value returns blank for external users.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_account_id": "",
"chat_message_file": {
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"file_owner_id": ""
}
}
}
}Webinar.deletedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who deleted the webinar.object(required)object— Information about the webinar.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.durationinteger— The scheduled webinar duration.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
start_timestring, format:date-time— The webinar's start time.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The webinar's topic.
operator(required)string— The email address of the user who deleted the webinar.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all webinars. * `single` — The change was applied only to a single webinar.operator_idstring— The user ID of the user who deleted the webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Recording.registration_approvedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host that recorded the meeting or webinar.object(required)object— Information about the recording registration.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).registrant(required)object— Information about the recording registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.last_name(required)string— The registrant's last name.idstring— The registrant's ID.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user that approved registration for the meeting or webinar recording.operator_id(required)string— The user ID of the user that approved registration for the meeting or webinar recording.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"registrant": {
"id": "",
"email": "",
"first_name": "",
"last_name": ""
}
}
}
}Meeting.risk_alertEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.armn_details(required)object— Information about the at-risk meeting notifier (ARMN).meeting_urlstring— The meeting's URL.post_platformstring— The post's social media platform. For example, Twitter, Reddit, or Facebook.post_timestring, format:date-time— The post's timestamp.post_userstring— The user who created the social media post.recommended_disable_settingsarray— A comma-separated list of the recommended settings to disable: * `enableAnnotation` * `enableMeetingChat` * `enableScreenShare` * `enableMultipleShare`Items: string, possible values:"enableAnnotation", "enableMeetingChat", "enableScreenShare", "enableMultipleShare"recommended_enable_settingsarray— A comma-separated list of the recommended settings to enable: * `enablePassword` * `enableWaitingRoom` * `enableOnlyAuthenticated` * `enableRegistration` * `enableScreenShareLock` * `enableScreenShareHostOnly` * `enableSpecifiedDomain`Items: string, possible values:"enablePassword", "enableWaitingRoom", "enableOnlyAuthenticated", "enableRegistration", "enableScreenShareLock", "enableScreenShareHostOnly", "enableSpecifiedDomain"social_linkstring— The link to the social media post.
host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"armn_details": {
"post_platform": "",
"social_link": "",
"post_time": "",
"post_user": "",
"meeting_url": "",
"recommended_enable_settings": [
"enablePassword"
],
"recommended_disable_settings": [
"enableAnnotation"
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.aic_transcript_completedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the transcript.attach_type(required)string, format:string— Each file ID has many attachments. Use this `attach_type` to download different attachments. In this webhook, the `attach_type` always equals `durable_transcript`.file_id(required)string, format:string— Transcript file ID.host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"host_id": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"file_id": "aDYlohsHRtCd4ii1uC290OP",
"attach_type": "durable_transcript",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.participant_feedbackEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who commits the feedback.object(required)object— Information about the webinar.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.feedback(required)object— Information about the feedback.satisfied(required)boolean— Whether the participant is satisfied.commentsstring— The participant's comments. This returns null if the `satisfied` field is `true`.feedback_detailsarray— The feedback details. This returns null if the `satisfied` field is `true`.Items: id(required)string— The feedback ID. * `1` — Poor video quality. * `2` — Poor audio quality. * `5` — Unable to present using share.zoom.us. * `7` — Unable to make phone call. * `8` — They could not hear us. * `9` — We could not hear them. * `10` — They could not see us. * `11` — We could not see them. * `12` — Could not present computer screen. * `999` — Others.name(required)string— The feedback name.
participant_user_id(required)string— The participant's universally unique ID (UUID). This value returns blank for external users.participant_uuid(required)string— The participant's meeting universally unique ID (UUID). This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting. This value will not be changed when the participant joins/leaves a breakout room.user_name(required)string— The participant's display name.
uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"participant": {
"participant_uuid": "",
"participant_user_id": "",
"user_name": "",
"feedback": {
"satisfied": true,
"feedback_details": [
{
"id": "",
"name": ""
}
],
"comments": ""
}
}
}
}
}Meeting.participant_joined_waiting_roomEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the main meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"date_time": "",
"email": "",
"phone_number": "8615250064084",
"participant_user_id": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Meeting.ai_companion_assets_deletedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting.object(required)object— The meeting where the AI Companion assets were deleted.ai_companion(required)object— The AI Companion assets that were deleted.deleted_assets(required)array— List of AI Companion assets that were deleted.Items: string, possible values:"transcripts", "summaries"
host_id(required)string— The ID of the user set as the host of the meeting.meeting_number(required)integer, format:int64— The meeting number.meeting_uuid(required)string— The meeting's universally unique identifier (UUID).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_number": 1,
"meeting_uuid": "",
"host_id": "",
"ai_companion": {
"deleted_assets": [
"transcripts"
]
}
}
}
}Webinar.converted_to_meetingEvent
- Type:
object
event(required)string— The name of the event.payload(required)objectaccount_id(required)string— The account ID of the user who converted the webinar into a meeting.object(required)object— Information about the meeting converted from a webinar.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.type(required)integer, possible values:2, 3, 8— The meeting type. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `8` - A recurring meeting with fixed time.uuid(required)string— The meeting's universally unique identifier (UUID).durationinteger— The scheduled meeting's duration, in minutes. Returned only when the meeting type is `2`.start_timestring, format:date-time— The scheduled meeting's start time. Returned only when the meeting type is `2`.timezonestring— The meeting's [timezone](/docs/api/references/abbreviations/#timezones).topicstring— The meeting's topic.
operator(required)string— The email address of the user who converted the webinar into a meeting.operator_idstring— The user ID of the user who converted the webinar into a meeting.
event_tsinteger, format:int64— A timestamp at which the event occurred.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 2,
"start_time": "",
"duration": 1,
"timezone": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.participant_phone_callout_ringingEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Meeting.participant_jbh_joinedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"id": "",
"user_name": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Meeting.invitation_acceptedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who accepted the meeting.operator_id(required)string— The user ID of the user who accepted the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Recording.archive_files_completedEvent
- Type:
object
download_token(required)string— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation, and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request. **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_idstring— The account ID of the user who hosted the meeting or the webinar.objectobject— Information about the webinar or meeting recording.account_namestring— The user's account name.archive_filesarray— Information about the archive files.Items: download_urlstring— The URL to download the archived file. To download the archived file of a meeting or a webinar, use the `download_token` value included in the webhook as the `access_token` query parameter value and include this query parameter at the end of the URL. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{your-download_token-value}}`encryption_fingerprintstring— The archived file's encryption fingerprint, using the SHA256 hash algorithm.file_extensionstring— The archived file's extension.file_namestring— The archived file's name.file_sizeinteger— The archived file's size, in bytes.file_typestring, possible values:"MP4", "M4A", "TRANSCRIPT", "CHAT", "CC", "CHAT_MESSAGE"— The archived file's type. * `MP4` - Video file. * `M4A` - Audio-only file. * `TRANSCRIPT` - A transcription file, in VTT format. * `CHAT` - A TXT file containing in-meeting chat messages. * `CC` - A file containing the closed captions of the recording, in VTT file format. * `CHAT_MESSAGE` - A JSON file encoded in base64 format containing chat messages. The file also includes waiting room chats, deleted messages, meeting emojis and non-verbal feedback.idstring— The archived file's ID.individualboolean— Whether the recording file is an individual recording file: * `true` - An individual recording file. * `false` - An entire meeting file.number_of_messagesinteger— The number of `TXT` or `JSON` file messages. This field will return only when the `file_extension` is `JSON` or `TXT`participant_emailstring, format:email— The individual recording file's participant email address. This value is returned when the `individual` value is `true`. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.participant_join_timestring, format:date-time— The join time for the generated recording file. If this value is returned when the individual value is true, then it is the recording file's participant join time. When the individual value is false, it returns the join time for the archiving gateway.participant_leave_timestring— The leave time for the generated recording file. If this value is returned when the individual value is true, then it is the recording file's participant leave time. When the individual value is false, it returns the leave time for the archiving gateway.recording_typestring, possible values:"shared_screen_with_speaker_view", "audio_only", "chat_file", "closed_caption", "chat_message"— The archive file's recording type. * `shared_screen_with_speaker_view` * `audio_only` * `chat_file` * `closed_caption` * `chat_message` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.statusstring, possible values:"completed", "processing", "failed"— The archived file's processing status. * `completed` - The processing of the file is complete. * `processing` - The file is processing. * `failed` - The file processing failed.storage_locationstring, possible values:"US", "AU", "BR", "CA", "EU", "IN", "JP", "SG", "CH"— The region where the file is stored. This field returns only `Enable Distributed Compliance Archiving` op feature is enabled.
complete_timestring, format:date-time— The meeting or webinar's archive completion time.durationinteger— The meeting or webinar's scheduled duration.duration_in_secondinteger— The meeting or webinar's duration, in seconds.group_idstring— Primary group IDs of participants who belong to your account. Each group ID is separated by a comma.host_idstring— The ID of the user set as the host of the archived meeting or webinar.idinteger— The ID of the meeting (`meetingId`) or the webinar (`webinarId`).is_breakout_roomboolean— Whether the room is a [breakout room](https://support.zoom.us/hc/en-us/articles/115005769646-Participating-in-breakout-rooms).meeting_typestring, possible values:"internal", "external"— Whether the meeting or webinar is internal or external. * `internal` - An internal meeting or webinar. * `external` - An external meeting or webinar. The `id`, `host_id`, and `topic` PII (Personal Identifiable Information) values in this response are removed when this value is `external`.parent_meeting_idstring— The parent meeting's universally unique ID (UUID). Each meeting or webinar instance generates its own meeting UUID. If the `is_breakout_room` value is `true`, the API returns this value.recording_countinteger— The number of archived files returned in the API call response.start_timestring— The meeting or webinar's start time.statusstring, possible values:"completed", "processing"— The archive's processing status: * `completed` - The archive's processing is complete. * `processing` - The archive is processing.timezonestring— The meeting or webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting or webinar topic.total_sizeinteger— The total size of the archive file, in bytes.typeinteger, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 100— The type of archived meeting or webinar. If the recording is of a meeting: * `1` - Instant meeting. * `2` - Scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A meeting created via PMI (Personal Meeting ID). * `7` - A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `100` - A [breakout room](https://support.zoom.us/hc/en-us/articles/115005769646-Participating-in-breakout-rooms).uuidstring— The universally unique identifier (UUID) of the recorded meeting or webinar instance. Each meeting or webinar instance generates its own meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"duration_in_second": 1800,
"total_size": 1,
"recording_count": 1,
"meeting_type": "internal",
"account_name": "",
"complete_time": "",
"is_breakout_room": true,
"parent_meeting_id": "",
"archive_files": [
{
"id": "",
"file_type": "MP4",
"file_extension": "",
"file_name": "",
"file_size": 1,
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view",
"individual": true,
"participant_email": "",
"participant_join_time": "",
"participant_leave_time": "",
"encryption_fingerprint": "abf85f0fe6a4db3cdd8c37e505e1dd18a34d9696170a14b5bc6395677472cf43",
"number_of_messages": 150,
"storage_location": "US"
}
],
"status": "completed",
"group_id": "pvFIYKSDTum9iCDOOtQL4w,_FsqLyI0RlO6LVPeUVWi8g"
}
}
}Meeting.alertEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.issues(required)array— A list of issues that occurred during the meeting: * `Unstable audio quality` * `Unstable video quality` * `Unstable screen share quality` * `High CPU occupation` * `Call Reconnection`Items: string, possible values:"Unstable audio quality", "Unstable video quality", "Unstable screen share quality", "High CPU occupation", "Call Reconnection"start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"issues": [
"Unstable audio quality"
]
}
}
}Meeting.chat_message_file_sentEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.date_time(required)string, format:date-time— The date and time when the chat message was sent.download_url(required)string— The live meeting chat file's download URL.file_id(required)string— The live meeting chat file's UUID, in base64-encoded format.file_name(required)string— The live meeting chat file's name.file_size(required)integer— The live meeting chat file's size, in bytes.file_type(required)string— The live meeting chat file's type.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"meeting", "breakout_room"— The context where the recipient is located when the message is delivered. * `meeting` - The recipient is in the meeting. * `breakout_room` - The sender is in a breakout room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "host_group"— The type of message recipient. * `everyone` - All meeting participants. * `host` - The meeting host. * `guest` - A meeting guest. * `group` - A group chat. * `host_group` - The meeting host and all co-hosts.sender_context(required)string, possible values:"meeting", "breakout_room"— The context where the sender is located when the message is generated. * `meeting` - The sender is in a meeting. * `breakout_room` - The sender is in a breakout room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "guest"— The type of user that sent the message. * `host` - The meeting host. * `guest` - A meeting guest.recipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's session ID.sender_emailstring, format:email— The message sender's email address.
meeting_id(required)integer, format:int64— The meeting ID.meeting_uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates its own meeting UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_id": 1,
"meeting_uuid": "",
"breakout_room_uuid": "",
"chat_message_file": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "meeting",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "meeting",
"message_id": "",
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"download_url": ""
}
}
}
}Meeting.deletedEvent
- Type:
object
event(required)string— The name of the event.payload(required)objectaccount_id(required)string— The account ID of the user who deleted the meeting.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.durationinteger— The scheduled meeting duration.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
recurrence_event_idstring— The unique identifier of the recurring event that the occurrences belong to. Updating a recurring meeting with **This and following events** splits it into two recurring events, each with its own `recurrence_event_id`. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The meeting's topic.
operator(required)string— The email address of the user who deleted the meeting.operationstring, possible values:"all", "single", "range"— The type of operation performed on a recurring meeting. * `all` - The change was applied to all occurrences. * `single` - The change was applied to a single occurrence. * `range` - The change was applied to a range of occurrences while the other occurrences are unchanged. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).operator_idstring— The user ID of the user who deleted the meeting.
event_tsinteger, format:int64— A timestamp at which the event occurred.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"recurrence_event_id": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.participant_joinedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.join_time(required)string, format:date-time— The time when the participant joined the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.idstring— The meeting ID.start_timestring— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}User.tsp_deletedEvent
- Type:
object
eventstring— The name of the event.event_tsinteger, format:int64— A timestamp at which the event occurred.payloadobjectaccount_idstring— The account ID of the user who deleted the TSP.objectobject— Information about the deleted user.emailstring— The user's email address.idstring— The user's ID.tsp_credentialsobject— Information about the deleted user's TSP credentials.conference_codestring— The TSP conference code.dial_in_numbersarray— Information about the TSP dial-in numbers.Items: codestring— The country code.country_labelstring, possible values:"US_TSP_TB", "EU_TSP_TB"— The TSP country label: * `US_TSP_TB` * `EU_TSP_TB`numberstring— The dial-in phone number.typestring, possible values:"toll", "tollfree", "media_link"— The type of the phone number: * `toll` — Toll number. * `tollfree` — Toll free number. * `media_link` — Media link.
leader_pinstring— The leader PIN.tsp_bridgestring— The TSP bridge zone.
operatorstring, format:email— The email address of the user who deleted the TSP.operator_idstring— The user ID of the user who deleted the TSP.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"email": "",
"tsp_credentials": {
"conference_code": "",
"leader_pin": "",
"tsp_bridge": "",
"dial_in_numbers": [
{
"code": "",
"number": "",
"type": "toll",
"country_label": "US_TSP_TB"
}
]
}
}
}
}Meeting.ai_companion_startedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting.object(required)object— The meeting where the AI Companion was started.ai_companion(required)object— The AI Companion features that were started.questionsboolean— Whether the AI Companion's meeting questions feature was started.summaryboolean— Whether the AI Companion's meeting summary feature was started.
host_id(required)string— The ID of the user set as the host of the meeting.meeting_number(required)integer, format:int64— The meeting number.meeting_uuid(required)string— The meeting's universally unique identifier (UUID).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_number": 1,
"meeting_uuid": "",
"host_id": "",
"ai_companion": {
"questions": true,
"summary": true
}
}
}
}Meeting.invitation_dispatchedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who sent the meeting invitation.operator_id(required)string— The user ID of the user who sent the meeting invitation.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Webinar.endedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who ended the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.end_timestring, format:date-time— The date and time when the webinar ended.practice_sessionboolean— whether this webinar is a practice session.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"end_time": "",
"duration": 1,
"practice_session": true
}
}
}Meeting.converted_to_webinarEvent
- Type:
object
event(required)string— The name of the event.payload(required)objectaccount_id(required)string— The account ID of the user who converted the meeting into a webinar.object(required)object— Information about the webinar converted from a meeting.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A scheduled webinar. * `6` - A recurring webinar with no fixed time. * `9` - A recurring webinar with fixed time.uuid(required)string— The webinar's universally unique identifier (UUID).durationinteger— The scheduled webinar's duration, in minutes. Returned only when the webinar type is `5`, ascheduled webinar.start_timestring, format:date-time— The scheduled webinar's start time. Returned only when the webinar type is `5`, a scheduled webinar.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The webinar's topic.
operator(required)string— The email address of the user who converted the meeting into a webinar.operator_idstring— The user ID of the user who converted the meeting into a webinar.
event_tsinteger, format:int64— A timestamp when the event occurred.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.recoveredEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who recovered the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who recovered the webinar.operator_id(required)string— The user ID of the user who recovered the webinar.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all webinars. * `single` — The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
]
}
}
}Webinar.participant_role_changedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.date_time(required)string, format:date-time— The time when the participant changed the [role](https://support.zoom.us/hc/en-us/articles/360000252726-Roles-in-a-Zoom-Webinar).email(required)string, format:email— The participant's email address. This response only returns if the participant joined the webinar by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.new_role(required)string, possible values:"host", "co-host", "attendee"— The participant's new role. * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.old_role(required)string, possible values:"host", "co-host", "attendee"— The participant's previous role. * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.user_name(required)string— The participant's display name.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external usersparticipant_uuidstring— The participant's UUID for this specific webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.registrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"date_time": "",
"old_role": "host",
"new_role": "host"
}
}
}
}Meeting.participant_jbh_waiting_leftEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the meeting participant.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"id": "",
"user_name": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}User.tsp_createdEvent
- Type:
object
eventstring— The name of the event.event_tsinteger, format:int64— A timestamp at which the event occurred.payloadobjectaccount_idstring— The account ID of the user who created the TSP.objectobject— Information about the created user.emailstring, format:email— The user's email address.idstring— The user's ID.tsp_credentialsobject— Information about the user's TSP credentials.conference_codestring— The TSP conference code.dial_in_numbersarray— Information about the TSP dial-in numbers.Items: codestring— The country code.country_labelstring, possible values:"US_TSP_TB", "EU_TSP_TB"— The TSP country label: * `US_TSP_TB` * `EU_TSP_TB`numberstring— The dial-in phone number.typestring, possible values:"toll", "tollfree", "media_link"— The type of the phone number: * `toll` — Toll number. * `tollfree` — Toll free number. * `media_link` — Media link.
leader_pinstring— The leader PIN.tsp_bridgestring— The TSP bridge zone.
operatorstring, format:email— The email address of the user who created the TSP.operator_idstring— The user ID of the user who created the TSP.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"email": "",
"tsp_credentials": {
"conference_code": "",
"leader_pin": "",
"tsp_bridge": "",
"dial_in_numbers": [
{
"code": "",
"number": "",
"type": "toll",
"country_label": "US_TSP_TB"
}
]
}
}
}
}Meeting.breakout_room_sharing_endedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The main meeting host's account ID.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's airplay. * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string value if the source is **not** Dropbox.
user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.idstring— The participant's universally unique ID (UUID): * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.parent_user_idstring— The participant's main meeting user ID (`user_id`).user_namestring— The participant's display name.
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Meeting.updatedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who updated the meeting.object(required)object— Information about the meeting.id(required)integer, format:int64— The meeting ID.agendastring— The meeting's agenda.durationinteger— The scheduled meeting duration.host_idstring— The meeting host's user ID.join_urlstring— The URL participants use to join the meeting.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.durationinteger— The scheduled meeting duration.statusstring, possible values:"available", "deleted"— The meeting occurrence status. * `available` * `deleted`
passwordstring— The password required to join the meeting.recurrenceobject— Information about [recurring meetings](https://developers.zoom.us/docs/api/rest/other-references/recurrence-object-definitions/).end_date_timestring, format:date-time— The recurring meeting's final ending date and time before it is canceled, in UTC format.end_timesinteger— The number of times the recurring meeting will occur before it is canceled.monthly_dayinteger— The day of the month when the recurring monthly meeting occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month when a recurring meeting occurs. * `-1` - The last week of the month. * `1` - The first week. * `2` - The second week. * `3` - The third week. * `4` - The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week when the recurring monthly meeting is scheduled. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturdayrepeat_intervalinteger— The meeting's repeat interval. * For daily intervals, a max of `99` days. * For a weekly interval, a max of `50` weeks. * For monthly intervals, a max of `10` months.typeinteger, possible values:1, 2, 3— The type of recurring meeting. * `1` - Daily. * `2` - Weekly. * `3` - Monthly.weekly_daysstring, possible values:"1", "2", "3", "4", "5", "6", "7"— A comma-separated list of the days of the week when the recurring weekly meeting occurs. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturday
recurrence_event_idstring— The unique identifier of the recurring event that the occurrences belong to. Updating a recurring meeting with **This and following events** splits it into two recurring events, each with its own `recurrence_event_id`. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).registration_urlstring— The meeting's registration URL.settingsobject— Information about the updated meeting settings. This **only** returns updated meeting settings.allow_host_control_participant_mute_stateboolean— Whether to allow host and co-hosts to fully control the mute state of participants.alternative_hostsstring— A semicolon-separated list of the meeting's alternative hosts' email addresses or IDs.approval_typeinteger, possible values:0, 1, 2— The [approval type](https://support.zoom.us/hc/en-us/articles/211579443-Scheduling-a-meeting-with-registration) for meeting registrants. * `0` - Automatically approve registrants. * `1` - Manually approve registrants. * `2` - Meeting registration not required.audiostring, possible values:"telephony", "voip", "both"— The available audio options for participants joining the meeting. * `telephony` - Telephony only. * `voip` - VoIP only. * `both` - Both Telephony and VoIP.authentication_domainsstring— A list of the allowed authenticated domains.authentication_namestring— The authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472).authentication_optionstring— The [authentication](https://support.zoom.us/hc/en-us/articles/4406604615693) option ID value.auto_recordingstring, possible values:"local", "cloud", "none"— The [automatic recording](https://support.zoom.us/hc/en-us/articles/202921119-Automatic-Recording) settings for the meeting. * `local` - Record and save to the local device. * `cloud` - Record and save to the cloud. * `none` - Automatic recording disabled.auto_start_ai_companion_questionsboolean— Whether to automatically start AI Companion questions.auto_start_meeting_summaryboolean— Whether to automatically start a meeting summary.continuous_meeting_chatobject— Information about the **Enable continuous meeting chat** feature.auto_add_invited_external_usersboolean— Whether to enable the **Automatically add invited external users** setting.auto_add_meeting_participantsboolean— Whether to enable the **Automatically add meeting participants** setting.channel_idstring— The channel's ID.enableboolean— Whether to enable the **Enable continuous meeting chat** setting.
disable_recording_controlstring, possible values:"none", "all", default:"none"— Which recording options are unavailable to the in-meeting host through the Zoom client. * `none` - All recording options are available to the host. This is the default. * `all` - All recording options are unavailable to the host. Not supported when `auto_recording` is set to `local`.email_in_attendee_reportboolean— Whether to include authenticated guest's email addresses in meetings' attendee reports.enforce_loginboolean— Whether to only allow signed in users to join the meeting.enforce_login_domainsstring— A list of the domains allowed to join the meeting.host_videoboolean— Whether to start the meeting with the host's video on.jbh_timeinteger, possible values:0, 5, 10— If the value of the `join_before_host` field is `true`, this field indicates the time limits when a participant can join a meeting before the meeting's host. * `0` - Allow the participant to join the meeting at any time. * `5` - Allow the participant to join 5 minutes before the meeting's start time. * `10` - Allow the participant to join 10 minutes before the meeting's start time.join_before_hostboolean— Whether to [allow participants to join the meeting before host arrives](https://support.zoom.us/hc/en-us/articles/202828525-Allow-participants-to-join-before-host).language_interpretationobject— The meeting's [language interpretation settings](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** This feature is only available for certain Meeting add-on, Education, and Business and higher plans. If this feature is not enabled on the host's account, this setting will **not** be applied to the meeting.enable(required)boolean— Whether to enable [language interpretation](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064768) for the meeting.interpretersarray— Information about the meeting's language interpreters.Items: emailstring, format:email— The interpreter's email address.interpreter_languagesstring— A comma-separated list of the interpreter's languages. The string must contain exactly two languages. To get this value, use the `language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](https://developers.zoom.us/docs/api/users/#tag/users/GET/users/{userId}/settings) API response. **languages**: System-supported languages include `English`, `Chinese`, `Japanese`, `German`, `French`, `Russian`, `Portuguese`, `Spanish`, and `Korean`. **custom_languages**: User-defined languages added by the user. For example, an interpreter translating between English and French should use `English,French`.languagesstring— A comma-separated list of the interpreter's languages. The string must contain exactly two country IDs. Only system-supported languages are allowed: `US` (English), `CN` (Chinese), `JP` (Japanese), `DE` (German), `FR` (French), `RU` (Russian), `PT` (Portuguese), `ES` (Spanish), and `KR` (Korean). For example, to set an interpreter translating from English to Chinese, use `US,CN`.
meeting_authenticationboolean— Whether only authenticated users can join the meeting.meeting_inviteesarray— A list of the meeting's invitees.Items: emailstring, format:email— The invitee's email address.
mute_upon_entryboolean— Whether participants are muted upon entry.participant_videoboolean— Whether to turn a participant's video on when they join the meeting. Participants can change this setting during the meeting.prevent_screen_captureboolean— Whether to prevent participants from capturing Zoom meeting windows, which may include shared meeting content and chat messages. If not provided, the default value will be based on the user's setting.registration_typeinteger, possible values:1, 2, 3— The meeting registration setting for recurring meetings. * `1` - Attendees register once and can attend any of the meeting occurrences. * `2` - Attendees must register for each occurrence to attend. * `3` - Attendees register once and can select one or more occurrences to attend.sign_language_interpretationobject— The meeting's [sign language interpretation settings](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** If this feature is not enabled on the host's account, this setting will **not** be applied to the meeting.enable(required)boolean— Whether to enable [sign language interpretation](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar) for the meeting.interpretersarray— Information about the meeting's sign language interpreters.Items: emailstring, format:email— The interpreter's email address.sign_languagestring— The interpreter's sign language. To get this value, use the `sign_language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](/api-reference/zoom-api/methods#operation/userSettings) API response.
summary_template_idstring— The summary template ID used to generate a meeting summary based on a predefined template. To get available summary templates, use the **Get user summary templates** API. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.com/hc/en).use_pmiboolean— Whether to use a [Personal Meeting ID (PMI)](https://support.zoom.us/hc/en-us/articles/203276937-Using-Personal-Meeting-ID-PMI) instead of an auto-generated meeting ID. PMIs are only available for scheduled meetings, instant meetings, and recurring meetings with no fixed time.waiting_roomboolean— Whether to enable a [waiting room](https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room).watermarkboolean— Whether to enable the [watermark](https://support.zoom.us/hc/en-us/articles/209605273-Adding-a-Watermark) feature.who_can_ask_questionsinteger, possible values:1, 2, 3, 4, 5— Defines who can ask questions about this meeting's transcript. This field is applicable only when `auto_start_ai_companion_questions` is set to `true`. * `1` - All participants and invitees. * `2` - All participants only from when they join. * `3` - Only meeting host. * `4` - Participants and invitees in our organization. * `5` - Participants in our organization only from when they join.who_will_receive_summaryinteger, possible values:1, 2, 3, 4— Defines who will receive a summary after this meeting. This field is applicable only when `auto_start_meeting_summary` is set to `true`. * `1` - Only meeting host. * `2` - Only meeting host, co-hosts, and alternative hosts. * `3` - Only meeting host and meeting invitees in our organization. * `4` - All meeting invitees including those outside of our organization.
start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.tracking_fieldsarray— Information about the meeting's [tracking fields](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields).Items: fieldstring— The tracking field's label.valuestring— The tracking field's value.
typeinteger, possible values:0, 1, 2, 3, 4, 7, 8, 10— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time. * `10` - A screen share only meeting.uuidstring— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
old_object(required)objectoperator(required)string, format:email— The email address of the user who updated the meeting.operator_id(required)string— The user ID of the user who updated the meeting.time_stamp(required)integer, format:int64— The meeting's update timestamp, in milliseconds.scopestring, possible values:"single", "all", "range"— The type of operation performed on a recurring meeting. * `all` - The change was applied to all occurrences. * `single` - The change was applied to a single occurrence. * `range` - The change was applied to a range of occurrences while the other occurrences are unchanged. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"scope": "single",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"join_url": "",
"password": "",
"agenda": "",
"registration_url": "",
"recurrence_event_id": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"host_video": true,
"participant_video": true,
"join_before_host": true,
"jbh_time": 0,
"mute_upon_entry": true,
"audio": "telephony",
"auto_recording": "local",
"disable_recording_control": "none",
"use_pmi": true,
"waiting_room": true,
"watermark": true,
"enforce_login": true,
"enforce_login_domains": "",
"approval_type": 0,
"registration_type": 1,
"alternative_hosts": "",
"meeting_authentication": true,
"authentication_option": "",
"authentication_name": "",
"authentication_domains": "",
"meeting_invitees": [
{
"email": ""
}
],
"language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"interpreter_languages": ""
}
]
},
"sign_language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"sign_language": ""
}
]
},
"continuous_meeting_chat": {
"enable": true,
"channel_id": ""
},
"auto_start_meeting_summary": true,
"who_will_receive_summary": 1,
"auto_start_ai_companion_questions": true,
"who_can_ask_questions": 1,
"summary_template_id": "",
"allow_host_control_participant_mute_state": true,
"email_in_attendee_report": true,
"prevent_screen_capture": true,
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "1",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"tracking_fields": [
{
"field": "",
"value": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"time_stamp": 1,
"old_object": null,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.ai_companion_stoppedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting.object(required)object— The meeting where the AI Companion was stopped.ai_companion(required)object— The AI Companion features that were stopped.questionsboolean— Whether the AI Companion's meeting questions feature was stopped.summaryboolean— Whether the AI Companion's meeting summary feature was stopped.
host_id(required)string— The ID of the user set as the host of the meeting.meeting_number(required)integer, format:int64— The meeting ID.meeting_uuid(required)string— The meeting's universally unique identifier (UUID).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_number": 1,
"meeting_uuid": "",
"host_id": "",
"ai_companion": {
"questions": true,
"summary": true
}
}
}
}Meeting.registration_deniedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string— The meeting's start time.
operator(required)string, format:email— The email address of the user who denied the meeting registration.operator_id(required)string— The user ID of the user who denied the meeting registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.registration_deniedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who denied the webinar registration.operator_id(required)string— The user ID of the user who denied the webinar registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Meeting.registration_approvedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the meeting.last_namestring— The registrant's last name.participant_pin_codeinteger, format:int64— The participant PIN code is used to authenticate audio participants before they join the meeting.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string— The meeting's start time.
operator(required)string, format:email— The email address of the user who approved the meeting registration.operator_id(required)string— The user ID of the user who approved the meeting registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"join_url": "",
"participant_pin_code": 1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.participant_leftEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This field is returned if the participant joined the webinar by logging into their Zoom account. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.leave_reasonstring— The reason why the participant left the webinar, where `$name` is the participant's username: * `$name left the meeting.` * `$name got disconnected from the meeting.` * `Host ended the meeting.` * `Host closed the meeting.` * `Host started a new meeting.` * `Network connection error.` * `Host did not join.` * `Exceeded free meeting minutes limit.` * `Removed by host.` * `Unknown reason.` * `Leave waiting room.` * `Removed by host from waiting room.`leave_timestring, format:date-time— The time when the participant left the webinar.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).user_namestring— The participant's display name.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"leave_time": "",
"leave_reason": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Recording.batch_deletedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.operator(required)string, format:email— The email address of the user who deleted the recording.operator_id(required)string— The user ID of the user who deleted the recording.objectobject— Information about the meeting or webinar recording.meetings(required)arrayItems: meeting_uuidstring— The universally unique identifier (UUID) of the recorded meeting or webinar instance.recording_file_idsarray— The recording file's unique ID. If the current field value is NULL, it means to delete the whole Meeting Recording files.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meetings": [
{
"meeting_uuid": "",
"recording_file_ids": []
}
]
}
}
}Webinar.alertEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.issues(required)array— A list of issues that occurred during the webinar: * `Unstable audio quality` * `Unstable video quality` * `Unstable screen share quality` * `High CPU occupation` * `Call Reconnection`Items: string, possible values:"Unstable audio quality", "Unstable video quality", "Unstable screen share quality", "High CPU occupation", "Call Reconnection"start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"issues": [
"Unstable audio quality"
]
}
}
}Webinar.chat_message_sentEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the chat message.chat_message(required)object— Information about the chat message.date_time(required)string, format:date-time— The date and time when the chat message was sent.message_content(required)string— The content of the chat message.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"webinar", "breakout_room", "waiting_room"— The context where the recipient is located when the message is delivered. * `webinar` - The recipient is in the webinar. * `breakout_room` - The recipient is in a breakout room. * `waiting_room` - The recipient is in the waiting room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "backstage", "host_group"— The type of message recipient. * `everyone` - All webinar participants. * `host` - The webinar host. * `guest` - A webinar guest. * `group` - A group chat. * `backstage` - The webinar backstage. * `host_group` - The webinar host and all panelists.sender_context(required)string, possible values:"webinar", "breakout_room", "waiting_room"— The context where the sender is located when the message is generated. * `webinar` - The sender is in a webinar. * `breakout_room` - The sender is in a breakout room. * `waiting_room` - The sender is in the waiting room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "alternative-host", "panelist", "guest"— The type of user that sent the message. * `host` - The webinar host. * `alternative-host` - The webinar's [alternative host](https://support.zoom.us/hc/en-us/articles/208220166). * `panelist` - A webinar [panelist](https://support.zoom.us/hc/en-us/articles/360000252726#:~:text=Panelists%20are%20full,a%20webinar%20host.). * `guest` - A webinar guest.file_idsarray— The live webinar chat file's UUID, in base64-encoded format.Items: stringrecipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's ID.sender_emailstring, format:email— The message sender's session email address.
id(required)integer, format:int64— The webinar ID.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"breakout_room_uuid": "",
"chat_message": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "webinar",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "webinar",
"message_id": "",
"message_content": "",
"file_ids": [
""
]
}
}
}
}Webinar.chat_message_file_sentEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the webinar.object(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.date_time(required)string, format:date-time— The date and time when the chat message was sent.download_url(required)string— The live webinar chat file's download URL.file_id(required)string— The live webinar chat file's UUID, in base64-encoded format.file_name(required)string— The live webinar chat file's name.file_size(required)integer— The live webinar chat file's size, in bytes.file_type(required)string— The live meeting chat file's type.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"webinar", "breakout_room"— The context where the recipient is located when the message is delivered. * `webinar` - The recipient is in the webinar. * `breakout_room` - The sender is in a breakout room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "backstage", "host_group"— The type of message recipient. * `everyone` - All webinar participants. * `host` - The webinar host. * `guest` - A webinar guest. * `group` - A group chat. * `backstage` - The webinar backstage. * `host_group` - The webinar host and all panelists.sender_context(required)string, possible values:"webinar", "breakout_room"— The context where the sender is located when the message is generated. * `webinar` - The sender is in a webinar. * `breakout_room` - The sender is in a breakout room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "guest"— The type of user that sent the message. * `host` - The meeting host. * `guest` - A meeting guest.recipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's session ID.sender_emailstring, format:email— The message sender's email address.
webinar_id(required)integer, format:int64— The webinar ID.webinar_uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"webinar_id": 1,
"webinar_uuid": "",
"breakout_room_uuid": "",
"chat_message_file": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "webinar",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "webinar",
"message_id": "",
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"download_url": ""
}
}
}
}Meeting.endedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.end_time(required)string, format:date-time— The date and time at which the meeting ended.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"end_time": ""
}
}
}Meeting.participant_joined_breakout_roomEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the main meeting.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom.join_time(required)string, format:date-time— The time when the participant joined the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.parent_user_idstring— The participant's main meeting user ID (`user_id`).participant_user_idstring— The participant's unique ID. * If meeting registration was **not** required and the participant joined by logging into Zoom, this value is the same as the `userId` field used in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API. * If registration was required for the meeting and the participant joined the meeting by logging into Zoom, this value is the same as the `id` value in the [**List meeting registrants**](/api-reference/zoom-api/methods#operation/meetingRegistrants) API response. * If participant joins without logging into Zoom, this returns an empty value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"phone_number": "8615250064084",
"customer_key": ""
}
}
}
}Meeting.participant_left_waiting_roomEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/docs/api/rest/reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN-registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"date_time": "",
"email": "",
"phone_number": "8615250064084",
"participant_user_id": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Meeting.startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1
}
}
}Meeting.registration_cancelledEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string— The meeting's start time.
operator(required)string, format:email— The email address of the user who canceled the meeting registration.operator_idstring— The user ID of the user who canceled the meeting registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.summary_completedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.next_steps(required)array— The next steps.Items: string— The next step.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_details(required)array— The summary content details.Items: label(required)string— The summary label.summary(required)string— The summary content.
summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.summary_contentstring— The complete meeting summary in Markdown format. This unified field is used for all summaries. For compatibility, the legacy fields `summary_overview`, `summary_details`, `next_steps` are still returned, but are deprecated and will not be supported in the future.summary_doc_urlstring— The URL to view the full summary document in Zoom Docs.summary_overviewstring— The summary overview.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"summary_content": "",
"summary_doc_url": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.participant_leftEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.leave_time(required)string, format:date-time— The time when the participant left the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.leave_reasonstring— The reason why the participant left the meeting, where `$name` is the participant's username: * `$name left the meeting.` * `$name got disconnected from the meeting.` * `Host ended the meeting.` * `Host closed the meeting.` * `Host started a new meeting.` * `Network connection error.` * `Host did not join.` * `Exceeded free meeting minutes limit.` * `Removed by host.` * `Unknown reason.` * `Leave waiting room.` * `Removed by host from waiting room.`participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTNregistrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"leave_time": "",
"leave_reason": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Meeting.participant_phone_callout_rejectedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Meeting.participant_phone_callout_acceptedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Webinar.sharing_startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.sharing_details(required)object— Information about the webinar's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string value if the source is **not** Dropbox.
user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.idstring— The participant's universally unique ID (UUID): * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The webinar's start time.topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Meeting.registration_createdEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting registration.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.registrant(required)object— Information about the meeting registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the meeting.status(required)string, possible values:"approved", "pending"— The registrant's registration approval status: * `approve` — Approved registrant. * `pending` — Registration approval pending.addressstring— The registrant's address.citystring— The registrant's city.commentsstring— The registrant's questions and comments.countrystring— The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).custom_questionsarray— Information about custom questions.Items: Any of: title(required)string— The title of the custom question.value(required)string— The custom question's response value. This has a limit of 128 characters.
industrystring— The registrant's industry.job_titlestring— The registrant's job title.last_namestring— The registrant's last name.no_of_employeesstring, possible values:"", "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000"— The registrant's number of employees: * `1-20` * `21-50` * `51-100` * `101-250` * `251-500` * `501-1,000` * `1,001-5,000` * `5,001-10,000` * `More than 10,000` * An empty string. — No employee number set.orgstring— The registrant's organization.participant_pin_codeinteger, format:int64— The participant PIN code is used to authenticate audio participants before they join the meeting.phonestring— The registrant's phone number.purchasing_time_framestring, possible values:"", "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe"— The registrant's purchasing time frame: * `Within a month` * `1-3 months` * `4-6 months` * `More than 6 months` * `No timeframe` * An empty string. — No purchasing time frame set.role_in_purchase_processstring, possible values:"", "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved"— The registrant's role in the purchase process: * `Decision Maker` * `Evaluator/Recommender` * `Influencer` * `Not involved` * An empty string. — No role set.statestring— The registrant's state or province.zipstring— The registrant's ZIP or postal code.
start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"address": "",
"city": "",
"country": "",
"zip": "",
"state": "",
"phone": "",
"industry": "",
"org": "",
"job_title": "",
"purchasing_time_frame": "",
"role_in_purchase_process": "",
"no_of_employees": "",
"comments": "",
"custom_questions": [
{
"title": "",
"value": "",
"additionalProperty": "anything"
}
],
"status": "approved",
"join_url": "",
"participant_pin_code": 1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Recording.recoveredEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.account_id(required)string— The account ID of the user that completed the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_count(required)integer— The number of recovered recording files.recording_files(required)array— Information about the recovered recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}`. **Note:** We recommend that you send the access_token as a Bearer token in the Authorization header, for example: "Authorization": "Bearer <ACCESS_TOKEN>”.file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The file extension type of the recording file.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The file type of the recording file.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "sign_interpretation", "production_sutdio"— The recording file type. * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`sign_interpretation` *`production_studio` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.play_urlstring— The URL at which the recording file can be opened and played.
share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.participant_audio_filesarray— Information about the recovered participants' recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The recording file's extension.file_name(required)string— The recording file's name.file_size(required)integer— The size of the recording file, in bytes.file_type(required)string— The recording file's format.id(required)string— The recording file's unique ID.recording_end(required)string, format:date-time— The recording file's end time.recording_start(required)string, format:date-time— The recording file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the recording file can be opened and played.
timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who recovered the recording.operator_id(required)string— The user ID of the user who recovered the recording.
download_tokenstring— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request: **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"account_id": "",
"timezone": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_size": 1,
"file_extension": "MP4",
"file_name": "",
"play_url": "",
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Meeting.sharing_endedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty (`””`) value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty (`””`) value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty (`””`) value if the source is **not** Dropbox.
user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.idstring— The participant's universally unique ID (UUID): * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Recording.cloud_storage_usage_updatedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host who recorded the webinar.object(required)object— Information about the recording plan.free_storage(required)string— Recording free storage.plan_storage(required)string— Recording plan storage.plan_type(required)string— Recording plan type.storage_exceed(required)string— Amount of storage exceed.storage_used(required)string— Amount of storage used.storage_used_percentage(required)number— The percentage of storage used.max_exceed_datestring— The maximum date that overage storage.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"free_storage": "2 GB",
"plan_storage": "10 GB",
"plan_type": "cmr_monthly_commitment_40",
"storage_used": "1 GB",
"storage_used_percentage": 85,
"storage_exceed": "0",
"max_exceed_date": "2023-03-01"
}
}
}Recording.transcript_completedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that hosted the meeting or the webinar.object(required)object— Information about the webinar or meeting recording.account_id(required)string— The account ID of the user that ended the meeting and completed the recording.duration(required)integer— The meeting or webinar's scheduled duration.host_email(required)string, format:email— The host's email address.host_id(required)string— The ID of the user set as the host of the archived meeting or webinar.id(required)integer, format:int64— The ID of the meeting (`meetingId`) or the webinar (`webinarId`).recording_count(required)integer— The number of completed recording files.recording_files(required)array— Information about the completed recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The recording file's extension.file_size(required)integer— The recording file's size, in bytes.file_type(required)string— The recording file's type.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail"— The type of recording file: * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the recording file can be opened and played.
share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance. Each meeting or webinar instance generates its own meeting UUID.passwordstring— The meeting's password.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
download_tokenstring— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request: **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"account_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"host_email": "",
"duration": 1,
"password": "",
"share_url": "",
"total_size": 1,
"recording_count": 1,
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_size": 1,
"file_extension": "",
"file_name": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
]
}
}
}Recording.stoppedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that stopped the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string— The date and time at which the recording started.
start_time(required)string— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Recording.batch_trashedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who batch deleted recordings to trash.operation(required)string, possible values:"trash_user_recordings", "trash_account_recordings"— The type of batch operation: * `trash_user_recordings` — User recordings trashed. * `trash_account_recordings` — Account recordings trashed.operator(required)string, format:email— The email address of the user who batch deleted recordings to trash.operator_id(required)string— The user ID of the user who batch deleted recordings to trash.objectobject— Information about the webinar or meeting recording.meeting_uuids(required)arrayItems: string— A list of the recorded meeting (`meetingId`) or webinar (`webinarId`) UUIDs.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "trash_user_recordings",
"object": {
"meeting_uuids": [
""
]
}
}
}Webinar.startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who started the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_email(required)string, format:email— The meeting host's email address.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"host_email": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1
}
}
}Meeting.chat_message_file_downloadedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectobject(required)object— Information about the chat message file.chat_message_file(required)object— Information about the chat message file.file_id(required)string— The live meeting chat file's UUID.file_name(required)string— The live meeting chat file's name.file_size(required)integer— The live meeting chat file's size, in bytes.file_type(required)string— The live meeting chat file's file type.file_owner_idstring— The user ID of the user who uploaded the team chat file. This value returns blank for external users.
host_account_id(required)string— The meeting host's account ID. The value will be an empty string if this info is from an external user.id(required)integer, format:int64— The meeting ID.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string, format:email or name— The email address of the user who downloaded the file. This value returns the operator name for external users.account_idstring— The account ID of the user who downloaded the file. This value returns blank for external users.operator_idstring— The user ID of the user who downloaded the file. This value returns blank for external users.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_account_id": "",
"chat_message_file": {
"file_id": "",
"file_name": "",
"file_size": 1,
"file_type": "",
"file_owner_id": ""
}
}
}
}Webinar.sharing_endedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant.sharing_details(required)object— Information about the webinar's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string if the source is **not** Dropbox.
user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.idstring— The participant's universally unique ID (UUID): * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The webinar's start time.topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Meeting.summary_trashedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who deleted the meeting summary.operator_id(required)string— The user ID of the user who deleted the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.sharing_startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [classic whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard). * `desktop` — A user's desktop. * `airplay` — A user's [AirPlay (Apple screen mirroring)](https://support.zoom.us/hc/en-us/articles/204726885-Sharing-screen-using-Apple-screen-mirroring-AirPlay-). * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty (`””`) value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty (`””`) value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty (`””`) value if the source is **not** Dropbox.
user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.idstring— The participant's universally unique ID (UUID): * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value.user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Webinar.registration_createdEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the webinar.status(required)string, possible values:"approved", "pending"— The registrant's registration approval status: * `approve` — Approved registrant. * `pending` — Registration approval pending.addressstring— The registrant's address.citystring— The registrant's city.commentsstring— The registrant's questions and comments.countrystring— The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).custom_questionsarray— Information about custom questions.Items: Any of: title(required)string— The title of the custom question.value(required)string— The custom question's response value. This has a limit of 128 characters.
industrystring— The registrant's industry.job_titlestring— The registrant's job title.last_namestring— The registrant's last name.no_of_employeesstring, possible values:"", "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000"— The registrant's number of employees: * `1-20` * `21-50` * `51-100` * `101-250` * `251-500` * `501-1,000` * `1,001-5,000` * `5,001-10,000` * `More than 10,000`orgstring— The registrant's organization.phonestring— The registrant's phone number.purchasing_time_framestring, possible values:"", "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe"— The registrant's purchasing time frame: * `Within a month` * `1-3 months` * `4-6 months` * `More than 6 months` * `No timeframe`role_in_purchase_processstring, possible values:"", "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved"— The registrant's role in the purchase process: * `Decision Maker` * `Evaluator/Recommender` * `Influencer` * `Not involved`statestring— The registrant's state or province.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
zipstring— The registrant's ZIP or postal code.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinar with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"address": "",
"city": "",
"country": "",
"zip": "",
"state": "",
"phone": "",
"industry": "",
"org": "",
"job_title": "",
"purchasing_time_frame": "",
"role_in_purchase_process": "",
"no_of_employees": "",
"comments": "",
"custom_questions": [
{
"title": "",
"value": ""
}
],
"status": "approved",
"join_url": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Meeting.chat_message_sentEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the chat message.chat_message(required)object— Information about the chat message.date_time(required)string, format:date-time— The date and time when the chat message was sent.message_content(required)string— The chat message's content.message_id(required)string— The chat message's UUID.recipient_context(required)string, possible values:"meeting", "breakout_room", "waiting_room"— The context where the recipient is located when the message is delivered. * `meeting` - The recipient is in the meeting. * `breakout_room` - The recipient is in a breakout room. * `waiting_room` - The recipient is in the waiting room.recipient_type(required)string, possible values:"everyone", "host", "guest", "group", "host_group"— The type of message recipient. * `everyone` - All meeting participants. * `host` - The meeting host. * `guest` - A meeting guest. * `group` - A group chat. * `host_group` - The meeting host and all co-hosts.sender_context(required)string, possible values:"meeting", "breakout_room", "waiting_room"— The context where the sender is located when the message is generated. * `meeting` - The sender is in a meeting. * `breakout_room` - The sender is in a breakout room. * `waiting_room` - The sender is in the waiting room.sender_name(required)string— The message sender's name.sender_session_id(required)string— The message sender's session ID.sender_type(required)string, possible values:"host", "guest"— The type of user that sent the message: * `host` — The meeting host. * `guest` — A meeting guest.file_idsarray— The live webinar chat file's UUID, in base64-encoded format.Items: stringrecipient_emailstring, format:email— The message recipient's email address. Optional only included if it is a private message.recipient_namestring— The message recipient's name.recipient_session_idstring— The message recipient's session ID.sender_emailstring, format:email— The message sender's email address.
id(required)integer, format:int64— The meeting ID.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.breakout_room_uuidstring— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"breakout_room_uuid": "",
"chat_message": {
"date_time": "",
"sender_session_id": "",
"sender_name": "",
"sender_email": "",
"sender_type": "host",
"sender_context": "meeting",
"recipient_session_id": "",
"recipient_name": "",
"recipient_email": "",
"recipient_type": "everyone",
"recipient_context": "meeting",
"message_id": "",
"message_content": "",
"file_ids": [
""
]
}
}
}
}Meeting.invitation_rejectedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who rejected the meeting.operator_id(required)string— The user ID of the user who rejected the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Meeting.participant_role_changedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant.date_time(required)string, format:date-time— The time at which the participant changed the [role](https://support.zoom.us/hc/en-us/articles/360040324512-Roles-in-a-meeting).email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.new_role(required)string, possible values:"host", "co-host", "attendee"— The participant's new role: * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.old_role(required)string, possible values:"host", "co-host", "attendee"— The participant's previous role: * `host` — Host. * `co-host` — Co-host. * `attendee` — Attendee.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (personal audio conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.idstring— The meeting ID.start_timestring— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"date_time": "",
"old_role": "host",
"new_role": "host"
}
}
}
}Meeting.permanently_deletedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who permanently deleted the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
operator(required)string, format:email— The email address of the user who permanently deleted the meeting.operator_id(required)string— The user ID of the user who permanently deleted the meeting.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all meetings. * `single` — The change was applied only to a single meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Recording.registration_createdEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host that recorded the meeting or webinar.object(required)object— Information about the recording registration.duration(required)integer— The scheduled meeting or webinar duration.host_id(required)string— The webinar or meeting host's user ID.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).registrant(required)object— Information about the recording registrant.address(required)string— The registrant's address.city(required)string— The registrant's city.comments(required)string— The registrant's questions and comments.country(required)string— The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.industry(required)string— The registrant's industry.job_title(required)string— The registrant's job title.last_name(required)string— The registrant's last name.no_of_employees(required)string, possible values:"", "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000"— The registrant's number of employees: * `1-20` * `21-50` * `51-100` * `101-250` * `251-500` * `501-1,000` * `1,001-5,000` * `5,001-10,000` * `More than 10,000`org(required)string— The registrant's organization.phone(required)string— The registrant's phone number.purchasing_time_frame(required)string, possible values:"", "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe"— The registrant's purchasing time frame: * `Within a month` * `1-3 months` * `4-6 months` * `More than 6 months` * `No timeframe`role_in_purchase_process(required)string, possible values:"", "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved"— The registrant's role in the purchase process: * `Decision Maker` * `Evaluator/Recommender` * `Influencer` * `Not involved`state(required)string— The registrant's state or province.status(required)string, possible values:"approved", "denied", "pending", "all", default:"all"— The registrant's status: * `approved` — Registrant is approved. * `denied` — Registrant is denied. * `pending` — Registrant is waiting for approval. * `all` — The default status code.zip(required)string— The registrant's ZIP or postal code.custom_questionsarray— Information about custom questions.Items: titlestring— The title of the custom question.valuestring— The custom question's response value. This has a limit of 128 characters.
idstring— The registrant's ID.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"registrant": {
"id": "",
"email": "",
"status": "all",
"first_name": "",
"last_name": "",
"address": "",
"city": "",
"country": "",
"zip": "",
"state": "",
"phone": "",
"industry": "",
"org": "",
"job_title": "",
"purchasing_time_frame": "",
"role_in_purchase_process": "",
"no_of_employees": "",
"comments": "",
"custom_questions": [
{
"title": "",
"value": ""
}
]
}
}
}
}Meeting.createdEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.creation_source(required)string, possible values:"other", "open_api", "web_portal"— The platform that the meeting was created through. * `other` - Created through another platform. * `open_api` - Created through Open API. * `web_portal` - Created through the web portal.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.join_url(required)string— The URL to join the meeting.settings(required)object— Information about the meeting's settings.alternative_hosts(required)string— A semicolon-separated list of the meeting's alternative hosts' email addresses or IDs.use_pmi(required)boolean— Whether the use of PMI is enabled.jbh_timeinteger, possible values:0, 5, 10, 15— If the value of the `join_before_host` field is `true`, this field indicates the time limits when a participant can join a meeting before the meeting's host. * `0` - Allow the participant to join the meeting at anytime. * `5` - Allow the participant to join 5 minutes before the meeting's start time. * `10` - Allow the participant to join 10 minutes before the meeting's start time. * `15` - Allow the participant to join 15 minutes before the meeting's start time.join_before_hostboolean— Whether participants can join the meeting before its host. This field is only used for scheduled meetings (`2`) or recurring meetings (`3` and `8`). This value defaults to `false`. If the [**Waiting Room** feature](https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room) is enabled, this setting is **disabled**.meeting_inviteesarray— A list of the meeting's invitees.Items: emailstring, format:email— The invitee's email address.
topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8, 10— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time. * `10` - A screen share only meeting.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.durationinteger— The scheduled meeting duration.statusstring, possible values:"available", "deleted"— The meeting occurrence status: * `available` * `deleted`
passwordstring— The password required to join the meeting.pmistring— The [Personal Meeting ID (PMI)](https://support.zoom.us/hc/en-us/articles/201362843-What-is-Personal-Meeting-ID-PMI-and-Personal-Link-).recurrenceobject— Information about [recurring meetings](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).end_date_timestring, format:date-time— The recurring meeting's final ending date and time before it is canceled, in UTC format.end_timesinteger— The number of times the recurring meeting will occur before it is canceled.monthly_dayinteger— The day of the month when the recurring monthly meeting occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month when a recurring meeting occurs. * `-1` - The last week of the month. * `1` - The first week. * `2` - The second week. * `3` - The third week. * `4` - The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week when the recurring monthly meeting is scheduled. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturdayrepeat_intervalinteger— The meeting's repeat interval. * For daily intervals, a max of `99` days. * For a weekly interval, a max of `50` weeks. * For monthly intervals, a max of `10` months.typeinteger, possible values:1, 2, 3— The type of recurring meeting. * `1` - Daily. * `2` - Weekly. * `3` - Monthly.weekly_daysstring— A comma-separated list of the days of the week when the recurring weekly meeting occurs. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturday
recurrence_event_idstring— The unique identifier of the recurring event that the occurrences belong to. Updating a recurring meeting with **This and following events** splits it into two recurring events, each with its own `recurrence_event_id`. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).start_timestring, format:date-time— The meeting's start time.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).tracking_fieldsarray— Information about the meeting's [tracking fields](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields).Items: fieldstring— The tracking field's label.valuestring— The tracking field's value.visibleboolean— Whether the tracking field is visible in the meeting scheduling options in the Zoom web portal. When the tracking field is disabled, the field can be only be set by users via API.
operator(required)string, format:email— The email address of the user who created the meeting.operator_id(required)string— The user ID of the user who created the meeting.operationstring, possible values:"all", "single", "range"— The type of operation performed on a recurring meeting. * `all` - The change was applied to all occurrences. * `single` - The change was applied to a single occurrence. * `range` - The change was applied to a range of occurrences while the other occurrences are unchanged. To enable this feature for your account, please [contact Zoom Support](https://support.zoom.us/hc/en-us).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"join_url": "",
"password": "",
"pmi": "",
"creation_source": "other",
"recurrence_event_id": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"use_pmi": true,
"alternative_hosts": "",
"meeting_invitees": [
{
"email": ""
}
],
"join_before_host": true,
"jbh_time": 0,
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"tracking_fields": [
{
"field": "",
"value": "",
"visible": true,
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Meeting.live_streaming_startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.live_streaming(required)object— Information about the live stream.date_time(required)string, format:date-time— The date and time the live stream started.service(required)string, possible values:"Facebook", "Workplace_by_Facebook", "YouTube", "Twitch", "Custom_Live_Streaming_Service"— The name of the live streaming service: * `Facebook` * `Workplace_by_Facebook` * `YouTube` * `Twitch` * `Custom_Live_Streaming_Service`custom_live_streaming_settingsobject— Information about the custom live stream.page_url(required)string— The live stream's page URL.stream_key(required)string— The live stream's key.stream_url(required)string— The live stream's URL.resolutionstring— The number of pixels in each dimension that the video camera can display.
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who updated the meeting.operator_id(required)string— The user ID of the user who updated the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"live_streaming": {
"service": "Facebook",
"custom_live_streaming_settings": {
"stream_url": "",
"stream_key": "",
"page_url": "",
"resolution": ""
},
"date_time": ""
}
}
}
}Meeting.participant_room_system_callout_acceptedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Webinar.registration_approvedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who approved the registration.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.join_url(required)string— The URL to join the webinar.last_namestring— The registrant's last name.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinar with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who approved the webinar registration.operator_id(required)string— The user ID of the user who approved the webinar registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"join_url": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Meeting.breakout_room_sharing_startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The main meeting host's account ID.object(required)object— Information about the meeting.breakout_room_uuid(required)string— The breakout room's universally unique identifier (UUID). Each breakout room instance generates a breakout room UUID.duration(required)integer— The main scheduled meeting duration.host_id(required)string— The main meeting host's user ID.id(required)string— The main meeting ID.participant(required)object— Information about the meeting participant.sharing_details(required)object— Information about the meeting's screenshare.content(required)string, possible values:"application", "whiteboard", "desktop", "airplay", "camera", "unknown"— The type of shared content: * `application` — An application. For example, a web browser. * `whiteboard` — The [Zoom Whiteboard](https://support.zoom.us/hc/en-us/articles/4410916881421). * `desktop` — A user's desktop. * `airplay` — A user's airplay. * `camera` — A user's camera. * `unknown` — An unrecognized application, such as a third party app.date_time(required)string, format:date-time— The screenshare's date and time.file_link(required)string— The Dropbox file's link. This field returns an empty string value if the file link is **not** from a Dropbox source.link_source(required)string, possible values:"", "deep_link", "in_meeting"— The Dropbox sharing method: * `deep_link` — A [deep link](https://en.wikipedia.org/wiki/Deep_linking). * `in_meeting` — A link shared via Zoom. * An empty string value if the link source is **not** a Dropbox link.source(required)string, possible values:"", "dropbox"— The source from which the file was shared: * `dropbox` — A Dropbox source. * An empty string value if the source is **not** Dropbox.
user_id(required)string— The participant's ID. This is a unique ID assigned to the participant upon joining the meeting and is only valid for that meeting.idstring— The participant's user ID. This is the same value used in the [**Users**](/api-reference/zoom-api/methods#tag/Users) APIs if the participant logged in to join the meeting.parent_user_idstring— The participant's main meeting user ID (`user_id`).user_namestring— The participant's username.
start_time(required)string— The main meeting's start time.topic(required)string— The main meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The main meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The main meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The main meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"breakout_room_uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"parent_user_id": "",
"user_name": "",
"id": "",
"sharing_details": {
"content": "application",
"link_source": "",
"file_link": "",
"date_time": "",
"source": ""
}
}
}
}
}Meeting.participant_bindEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.bind_user_id(required)string— The particpant's meeting user ID of participant the phone user bind to. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.phone_number(required)string— Phone number of participants who joined via PSTN.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.bind_participant_uuidstring— The participant's UUID of the user which this phone user binds to.date_timestring, format:date-time— The time when the participant is bond.emailstring, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.registrant_idstring— The registrant ID of the participants this phone user binds to. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.durationinteger— The scheduled meeting duration.idstring— The meeting ID.start_timestring— The meeting's start time.timezonestring— The meeting's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"bind_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"bind_participant_uuid": "",
"date_time": "",
"email": "",
"participant_user_id": "",
"registrant_id": "",
"phone_number": "8615250064084"
}
}
}
}Meeting.participant_feedbackEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who commits the feedback.object(required)object— Information about the meeting.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant.feedback(required)object— Information about the feedback.rating_quality(required)object— The feedback rating quality.satisfied(required)boolean— Whether the participant is satisfied.commentsstring— The participant's comments.feedback_detailsarray— The feedback details.Items: id(required)string— The feedback ID. * `1` — Poor video quality. * `2` — Poor audio quality. * `5` — Unable to present using share.zoom.us. * `7` — Unable to make phone call. * `8` — They could not hear us. * `9` — We could not hear them. * `10` — They could not see us. * `11` — We could not see them. * `12` — Could not present computer screen. * `999` — Others.name(required)string— The feedback name.
participant_user_id(required)string— The participant's universally unique ID (UUID). This value returns blank for users who aren't logged into Zoom.participant_uuid(required)string— The participant's meeting universally unique ID (UUID). This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting. This value will not be changed when the participant joins/leaves a breakout room.user_name(required)string— The participant's display name.zoom_room_idstring— The ID of the Zoom Room submitted the feedback. This field is only returned when the feedback is submitted by Zoom Rooms.zoom_room_platformstring— The platform of the Zoom Room submitted the feedback. This field is only returned when the feedback is submitted by Zoom Rooms.zoom_room_sender_emailstring— Zoom Rooms feedback sender email. This field is only returned when the feedback is submitted by Zoom Rooms.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"participant": {
"participant_uuid": "",
"participant_user_id": "",
"user_name": "",
"feedback": {
"rating_quality": {
"type": "2-point",
"quality": "GOOD"
},
"feedback_details": [
{
"id": "",
"name": ""
}
],
"comments": ""
},
"zoom_room_id": "",
"zoom_room_platform": "",
"zoom_room_sender_email": ""
}
}
}
}Recording.deletedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.object(required)object— Information about the webinar or meeting recording.account_id(required)string— The account ID of the user that completed the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_count(required)integer— The number of recording files deleted.recording_files(required)array— Information about the deleted recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}`. **Note:** We recommend that you send the access_token as a Bearer token in the Authorization header, for example: "Authorization": "Bearer <ACCESS_TOKEN>”.file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The file extension type of the recording file.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The type of the recording file.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "sign_interpretation", "production_sutdio"— The recording file type. * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`sign_interpretation` *`production_studio` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.play_urlstring— The URL at which the recording file can be opened and played.
share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.participant_audio_filesarray— Information about the participants' deleted audio files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The participant audio file's extension.file_name(required)string— The participant audio file's name.file_size(required)integer— The participant audio file's size, in bytes.file_type(required)string— The participant audio file's format.id(required)string— The participant audio file's ID.recording_end(required)string, format:date-time— The participant audio file's end time.recording_start(required)string, format:date-time— The participant audio file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the participant audio file can be opened and played.
timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who deleted the recording.operator_id(required)string— The user ID of the user who deleted the recording.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"account_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_size": 1,
"file_extension": "MP4",
"file_name": "",
"play_url": "",
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Recording.pausedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that started the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string, format:date-time— The date and time at which the recording started.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Meeting.participant_room_system_callout_ringingEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Recording.startedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that started the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string— The date and time at which the recording started.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}User.tsp_updatedEvent
- Type:
object
eventstring— The name of the event.event_tsinteger, format:int64— A timestamp at which the event occurred.payloadobjectaccount_idstring— The account ID of the user who updated the TSP.objectobject— Information about the updated user.emailstring, format:email— The user's email address.idstring— The user's ID.tsp_credentialsobject— Information about the updated user's TSP credentials.conference_codestring— The TSP conference code.dial_in_numbersarray— Information about the TSP dial-in numbers.Items: codestring— The country code.country_labelstring, possible values:"US_TSP_TB", "EU_TSP_TB"— The TSP country label. * `US_TSP_TB` * `EU_TSP_TB`numberstring— The dial-in phone number.typestring, possible values:"toll", "tollfree", "media_link"— The phone number's type. * `toll` - Toll number. * `tollfree` - Toll free number. * `media_link` - Media link.
leader_pinstring— The leader PIN.tsp_bridgestring— The TSP bridge zone.
old_objectobjectoperatorstring, format:email— The email address of the user who updated the TSP.operator_idstring— The user ID of the user who updated the TSP.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"email": "",
"tsp_credentials": {
"conference_code": "",
"leader_pin": "",
"tsp_bridge": "",
"dial_in_numbers": [
{
"code": "",
"number": "",
"type": "toll",
"country_label": "US_TSP_TB"
}
]
}
},
"old_object": null
}
}Meeting.invitation_timeoutEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the invited participant.email(required)string, format:email— The email address of the user who received the meeting invitation. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. For more information, read our [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) documentation.participant_user_id(required)string— The user ID of the user who received the meeting invitation.
topic(required)string— The meeting's topic.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
operator(required)string— The email address of the user who missed the meeting invitation.operator_id(required)string— The user ID of the user who missed the meeting invitation.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"participant": {
"participant_user_id": "",
"email": ""
}
}
}
}Meeting.participant_admittedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is not part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](/docs/api/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#email-address) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty (`””`) value.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's meeting universally unique ID (UUID). This value is assigned to a participant upon joining a meeting and is only valid for the duration of the meeting. This value will not be changed when the participant joins/leaves a breakout room.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](/docs/api/references/abbreviations/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"participant_user_id": "",
"phone_number": "",
"date_time": "",
"email": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Meeting.participant_room_system_callout_failedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
reason_type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14— reason type for failure: * `1` — Encryption_Fail. * `2` — Disconnected_By_Remote. * `3` — Retry. * `4` — Bad_Seq. * `5` — Call_Limit. * `6` — Not_Registered. * `7` — Timeout. * `8` — Bad_Addr. * `9` — Unreachable * `10` — Disconnect_By_Local * `11` — Server_Internal_Error * `12` — Exceed_Free_Port * `13` — Connect_Error * `14` — Proxy_Connect_Error * `0` — Other_Failed_Reason.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"reason_type": 0,
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Meeting.participant_data_connection_establishedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp for when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.data_connections(required)array— A list of data connection records established by the participant in the meeting.Items: command_connection_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the command connection.connection_type(required)string, possible values:"audio", "video", "screen_share"— The type of in-meeting data connection.data_socket_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the data socket connection.first_package_time_cost_ms(required)integer— The time, in milliseconds, from data socket establishment to receiving the first package.total_time_cost_ms(required)integer— The total time, in milliseconds, that it took to establish the data connection.
host_id(required)string— The meeting host's user ID.participant(required)object— Information about the meeting participant. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.join_time(required)string, format:date-time— The time when the participant joined the meeting.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting and is only valid for the duration of the meeting.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting and is only valid for the duration of that meeting.phone_numberstring— The phone number of the participant who joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.idstring— The meeting number.start_timestring— The meeting's start time.topicstring— The meeting's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"participant": {
"user_id": "",
"user_name": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8611111111111"
},
"data_connections": [
{
"connection_type": "audio",
"total_time_cost_ms": 1,
"command_connection_time_cost_ms": 1,
"data_socket_time_cost_ms": 1,
"first_package_time_cost_ms": 1
}
]
}
}
}Recording.resumedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that resumed the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_file(required)object— Information about the recording files.recording_end(required)string— The date and time at which the recording ended.recording_start(required)string— The date and time at which recording started.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"recording_file": {
"recording_start": "",
"recording_end": ""
}
}
}
}Meeting.participant_phone_callout_missedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's name to display in the meeting.phone_number(required)integer, format:int64— The user's phone number.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Meeting.summary_updatedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.edited_summary(required)object— Information about the edited meeting summary.next_stepsarray— The user-edited next steps.Items: string— The user-edited next step.summary_detailsstring— The user-edited summary details.summary_overviewstring— The user edited summary overview.
meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID. After a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.next_steps(required)array— The next steps.Items: string— The next step.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_details(required)array— The summary content details.Items: label(required)string— The summary label.summary(required)string— The summary content.
summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_last_modified_user_email(required)string— The user email of the user who last modified the meeting summary.summary_last_modified_user_id(required)string— The user ID of the user who last modified the meeting summary.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.summary_contentstring— The complete meeting summary in Markdown format. This unified field is used for all summaries. For compatibility, the legacy fields `summary_overview`, `summary_details`, `next_steps`, and `edited_summary` are still returned, but are deprecated and will not be supported in the future.summary_doc_urlstring— The URL to view the full summary document in Zoom Docs.summary_overviewstring— The summary overview.
operator(required)string— The email address of the user who updated the meeting summary.operator_id(required)string— The user ID of the user who updated the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_last_modified_user_id": "",
"summary_last_modified_user_email": "",
"summary_title": "",
"summary_content": "",
"summary_doc_url": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.participant_joinedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)string— The webinar ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the webinar by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.id(required)string— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.join_time(required)string, format:date-time— The date and time when the participant joined the webinar.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant upon joining a webinar and is only valid for the duration of the webinar.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value.participant_uuidstring— The participant's UUID for this specific webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. (A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026)).
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"participant_uuid": "",
"customer_key": "",
"phone_number": "8615250064084"
}
}
}
}Recording.renamedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that renamed the meeting or webinar recording.object(required)object— Information about meeting or webinar recording.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).topic(required)string— The updated recording title.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.
old_object(required)object— Information about the previous meeting or webinar recording's settings.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).topic(required)string— The previous recording title.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.
operator(required)string— The email address of the user that renamed the meeting or webinar recording.operator_id(required)string— The user Id of the user that renamed the meeting or webinar recording.time_stamp(required)number— A timestamp at which the user renamed the meeting or webinar recording.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"time_stamp": 1,
"object": {
"uuid": "",
"id": 1,
"topic": "",
"type": 1,
"host_id": ""
},
"old_object": {
"uuid": "",
"id": 1,
"topic": "",
"type": 1,
"host_id": ""
}
}
}Meeting.participant_room_system_callout_missedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}Webinar.createdEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.creation_source(required)string, possible values:"other", "open_api", "web_portal"— The platform through which the meeting was created. * `other` - Created through another platform. * `open_api` - Created through Open API. * `web_portal` - Created through the web portal.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.join_url(required)string— The URL to join the webinar.settings(required)object— Information about the webinar's settings.alternative_hosts(required)string— A semicolon-separated list of the webinar's alternative hosts' email addresses or IDs.use_pmi(required)boolean— Whether the use of PMI is enabled.
timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.durationinteger— The scheduled webinar duration.statusstring, possible values:"available", "deleted"— The webinar occurrence status: * `available` * `deleted`
passwordstring— The password required to join the webinar.recurrenceobject— Information about [recurring meetings](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).end_date_timestring, format:date-time— The recurring meeting's final ending date and time before it is canceled, in UTC format.end_timesinteger— The number of times the recurring meeting will occur before it is canceled.monthly_dayinteger— The day of the month on which the recurring monthly meeting occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month on which a recurring meeting occurs: * `-1` — The last week of the month. * `1` — The first week. * `2` — The second week. * `3` — The third week. * `4` — The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week on which the recurring monthly meeting is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturdayrepeat_intervalinteger— The meeting's repeat interval: * For daily intervals, a max of `90` days. * For a weekly interval, a max of `12` weeks. * For monthly intervals, a max of `3` months.typeinteger, possible values:1, 2, 3— The type of recurring meeting: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.weekly_daysstring— A comma-separated list of the days of the week on which the recurring weekly meeting occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday
start_timestring, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who created the webinar.operator_id(required)string— The user ID of the user who created the webinar.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all webinar. * `single` — The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"join_url": "",
"password": "",
"creation_source": "other",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"use_pmi": true,
"alternative_hosts": "",
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Recording.registration_deniedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the host that recorded the meeting or webinar.object(required)object— Information about the recording registration.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The webinar or meeting host's user ID.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).registrant(required)object— Information about the recording registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.last_name(required)string— The registrant's last name.idstring— The registrant's ID.
start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who denied the recording registration.operator_id(required)string— The user ID of the user who denied the recording registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"registrant": {
"id": "",
"email": "",
"first_name": "",
"last_name": ""
}
}
}
}Meeting.participant_phone_callout_failedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— The timestamp when the event occurred.payload(required)objectaccount_id(required)string— The meeting host's account ID.object(required)object— Information about the meeting.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.participant(required)object— Information about the invited participant.invitee_name(required)string— The user's display name in the meeting.phone_number(required)integer, format:int64— The user's phone number.
reason_type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14— The reason type for the failure: * `1` — Not_Allow_PSTN. * `2` — Block_Too_Frequent. * `3` — Block_By_No_Host. * `4` — PhoneNumber_Blocked. * `5` — Call_Count_Limit_InConf. * `6` — SipTrunk_Error. * `7` — Timeout. * `8` — PhoneNumber_Invalid. * `0` — Other_Failed_Reason.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"reason_type": 0,
"participant": {
"invitee_name": "",
"phone_number": 1
}
}
}
}Meeting.live_streaming_stoppedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.live_streaming(required)object— Information about the live stream.date_time(required)string, format:date-time— The date and time the live stream ended.service(required)string, possible values:"Facebook", "Workplace_by_Facebook", "YouTube", "Twitch", "Custom_Live_Streaming_Service"— The name of the live streaming service: * `Facebook` * `Workplace_by_Facebook` * `YouTube` * `Twitch` * `Custom_Live_Streaming_Service`custom_live_streaming_settingsobject— Information about the custom live stream.page_url(required)string— The live stream's page URL.stream_key(required)string— The live stream's key.stream_url(required)string— The live stream's URL.resolutionstring— The number of pixels in each dimension that the video camera can display.
start_time(required)string, format:date-time— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who updated the meeting.operator_id(required)string— The user ID of the user who updated the meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"live_streaming": {
"service": "Facebook",
"custom_live_streaming_settings": {
"stream_url": "",
"stream_key": "",
"page_url": "",
"resolution": ""
},
"date_time": ""
}
}
}
}Webinar.participant_data_connection_establishedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp for when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar.data_connections(required)array— A list of data connection records established by the participant in the webinar.Items: command_connection_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the command connection.connection_type(required)string, possible values:"audio", "video", "screen_share"— The type of in-webinar data connection.data_socket_time_cost_ms(required)integer— The time, in milliseconds, spent establishing the data socket connection.first_package_time_cost_ms(required)integer— The time, in milliseconds, from data socket establishment to receiving the first package.total_time_cost_ms(required)integer— The total time, in milliseconds, that it took to establish the data connection.
host_id(required)string— The webinar host's user ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, the `email` field returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the webinar by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.join_time(required)string, format:date-time— The time when the participant joined the webinar.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant when they join a webinar and is only valid for the duration of the webinar.user_name(required)string— The participant's display name.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific webinar and any breakout rooms created in this webinar. This value is assigned to a participant when they join a webinar and is only valid for the duration of that webinar.phone_numberstring— The phone number of the participant who joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).
type(required)integer, possible values:5, 6, 9— The webinar type: * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.idstring— The webinar number.start_timestring— The webinar's start time.topicstring— The webinar's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"participant": {
"user_id": "",
"user_name": "",
"participant_uuid": "",
"join_time": "",
"email": "",
"registrant_id": "",
"participant_user_id": "",
"customer_key": "",
"phone_number": "8611111111111"
},
"data_connections": [
{
"connection_type": "audio",
"total_time_cost_ms": 1,
"command_connection_time_cost_ms": 1,
"data_socket_time_cost_ms": 1,
"first_package_time_cost_ms": 1
}
]
}
}
}Webinar.registration_cancelledEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the webinar.object(required)object— Information about the webinar registration.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer— The webinar ID.registrant(required)object— Information about the webinar registrant.email(required)string, format:email— The registrant's email address.first_name(required)string— The registrant's first name.id(required)string— The registrant's ID.last_namestring— The registrant's last name.tracking_sourceobject— Information about the source tracking. See [Creating webinar registration tracking links](https://support.zoom.us/hc/en-us/articles/360000315683-Creating-webinar-registration-tracking-links) for details.id(required)string— Unique Identifier of the tracking source.source_name(required)string— Name of the source (platform) where the registration URL was shared.tracking_url(required)string— Tracking URL. The URL that was shared for the registration.
start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who canceled the webinar registration.operator_idstring— The user ID of the user who canceled the webinar registration.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
],
"registrant": {
"id": "",
"first_name": "",
"last_name": "",
"email": "",
"tracking_source": {
"id": "",
"source_name": "",
"tracking_url": ""
}
}
}
}
}Meeting.recoveredEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who recovered the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)integer, format:int64— The meeting ID.start_time(required)string, format:date-time— The meeting's start time.timezone(required)string— The meeting's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type: * `0` — A prescheduled meeting. * `1` — An instant meeting. * `2` — A scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` — A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` — A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.occurrencesarray— Information about recurring meetings with fixed times and their occurrences. This only returns when the meeting's `type` value is `8`.Items: Any of: occurrence_id(required)string— The meeting occurrence's ID.start_time(required)string, format:date-time— The meeting's start time.
operator(required)string, format:email— The email address of the user who recovered the meeting.operator_id(required)string— The user ID of the user who recovered the meeting.operationstring, possible values:"all", "single"— The type of operation performed: * `all` — The change was applied to all meetings. * `single` — The change was applied only to a single meeting.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"additionalProperty": "anything"
}
],
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.permanently_deletedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who permanently deleted the webinar.object(required)object— Information about the webinar.duration(required)integer— The scheduled webinar duration.host_id(required)string— The webinar host's user ID.id(required)integer, format:int64— The webinar ID.start_time(required)string, format:date-time— The webinar's start time.timezone(required)string— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topic(required)string— The webinar's topic.type(required)integer, possible values:5, 6, 9— The webinar type. * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.occurrencesarray— Information about recurring webinars with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.
operator(required)string, format:email— The email address of the user who permanently deleted the webinar.operator_id(required)string— The user ID of the user who permanently deleted the webinar.operationstring, possible values:"all", "single"— The type of operation performed. * `all` — The change was applied to all webinars. * `single` — The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"operation": "all",
"object": {
"uuid": "",
"id": 1,
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": ""
}
]
}
}
}Recording.completedEvent
- Type:
object
download_token(required)string— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation, and you can only download the file within 24 hours of receiving the event notification. Pass `download_token` as a bearer token in the authorization header of your HTTP request. ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ```.event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who completed the meeting or webinar recording.object(required)object— Information about the meeting or webinar recording.account_id(required)string— The account ID of the user who completed the meeting or webinar recording.duration(required)integer— The recording's duration.host_email(required)string, format:email— The host's email address.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting `meetingId` or webinar `webinarId`.password(required)string— The meeting's or webinar's password.recording_count(required)integer— The number of completed recording files.recording_files(required)array— Information about the completed recording files.Items: download_url(required)string— The URL to download the the recording. To download the recording file of a meeting or a webinar, use the `download_token` value to download the file. For example: `https://{{base-domain}}/rec/webhook_download/download/xxx--header 'Authorization: Bearer {{your-download_token-value}}`file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The file extension type of the recording file.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The type of the recording file.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time when recording ended.recording_start(required)string, format:date-time— The date and time when recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "sign_interpretation", "production_studio"— The recording file type. * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`sign_interpretation` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status. * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.file_pathstring— The file path to the on-premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL where the recording file can be opened and played.
share_url(required)string— The URL where approved users can view the recording.start_time(required)string, format:date-time— The meeting's or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar. If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.auto_deleteboolean— Auto-delete status of a meeting's [cloud recording](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-Recording). Prerequisite: To get the auto-delete status, the host of the recording must have the recording setting 'Delete cloud recordings after a specified number of days' enabled.auto_delete_datestring— The date on which the recording will be auto-deleted when auto_delete is true. Otherwise, no date will be returned.on_premboolean— Whether the recording is an [on-premise](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment) recording.participant_audio_filesarray— Information about the participants' audio files.Items: download_url(required)string— The URL to download the the recording. To download the recording file of a meeting or a webinar, use the `download_token` value to download the file. For example: `https://{{base-domain}}/rec/webhook_download/download/xxx--header 'Authorization: Bearer {{your-download_token-value}}`file_extension(required)string— The participant audio file's extension.file_name(required)string— The participant audio file's name.file_size(required)integer— The participant audio file's size, in bytes.file_type(required)string— The participant audio file's format.id(required)string— The participant audio file's ID.recording_end(required)string, format:date-time— The participant audio file's end time.recording_start(required)string, format:date-time— The participant audio file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status. * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the on-premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL to open and play the participant audio file.
recording_play_passcodestring— The cloud recording's password to be used in the URL. This recording's password can be directly spliced in `play_url` or `share_url` with `?pwd=` to access and play, such as in 'https://zoom.us/rec/share/**************?pwd=yNYIS408EJygs7rE5vVsJwXIz4-VW7MH'. See [Embedding meeting passcode in invite link](https://support.zoom.us/hc/en-us/articles/360060396571-Embedding-meeting-passcode-in-invite-link) for details. If you want to use this field, please contact Zoom support.timezonestring— The meeting's or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"account_id": "",
"topic": "",
"type": 1,
"start_time": "",
"password": "",
"timezone": "",
"host_email": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"on_prem": true,
"recording_play_passcode": "yNYIS408EJygs7rE5vVsJwXIz4-VW7MH",
"auto_delete": true,
"auto_delete_date": "",
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_size": 1,
"file_extension": "MP4",
"file_name": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Meeting.participant_put_in_waiting_roomEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the meeting.object(required)object— Information about the meeting.duration(required)integer— The scheduled meeting duration.host_id(required)string— The meeting host's user ID.id(required)string— The meeting ID.participant(required)object— Information about the meeting participant. If the participant is not part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](/docs/api/using-zoom-apis/#email-address-display-rules) for details.date_time(required)string, format:date-time— The time when the participant joined the meeting.email(required)string, format:email— The participant's email address. This response only returns if the participant joined the meeting by logging into Zoom. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.user_id(required)string— The participant's meeting user ID. This value is assigned to a participant when they join a meeting, and is only valid for the duration of the meeting.customer_keystring— The participant's SDK identifier. This value can be alphanumeric.idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_user_idstring— The participant's universally unique ID (UUID). * If the participant joins the meeting by logging into Zoom, this value is the `id` value in the [**Get a user**](/api-reference/zoom-api/methods#operation/user) API response. * If the participant joins the meeting **without** logging into Zoom, this returns an empty string value. This value returns blank for external users.participant_uuidstring— The participant's UUID for this specific meeting and any breakout rooms created in this meeting. This value is assigned to a participant when they join a meeting, and is only valid for the duration of that meeting.phone_numberstring— Phone number of participant joined via PSTN.registrant_idstring— The participant's registrant ID. A host or a user with administrative permissions can require [registration for Zoom meetings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
start_time(required)string— The meeting's start time.topic(required)string— The meeting's topic.type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The meeting type. * `0` - A prescheduled meeting. * `1` - An instant meeting. * `2` - A scheduled meeting. * `3` - A recurring meeting with no fixed time. * `4` - A [personal meeting room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-meeting) meeting. * `8` - A recurring meeting with a fixed time.uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.timezonestring— The meeting's [timezone](/docs/api/references/abbreviations/#timezones).
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"date_time": "",
"email": "",
"phone_number": "",
"participant_user_id": "",
"customer_key": "",
"registrant_id": ""
}
}
}
}Recording.trashedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who deleted the recording to the trash.object(required)object— Information about the webinar or meeting recording.account_id(required)string— The account ID of the user that completed the meeting or webinar recording.duration(required)integer— The meeting or webinar's scheduled duration.host_id(required)string— The ID of the user set as the host of the meeting or webinar.id(required)integer, format:int64— The ID of the recorded meeting (`meetingId`) or webinar (`webinarId`).recording_count(required)integer— The number of recording files deleted to the trash.share_url(required)string— The URL at which approved users can view the recording.start_time(required)string, format:date-time— The meeting or webinar's start time.topic(required)string— The meeting or webinar topic.total_size(required)integer— The recording file's total size, in bytes.type(required)integer, possible values:1, 2, 3, 4, 5, 6, 7, 8, 9, 99— The type of recorded meeting or webinar: If the recording is of a meeting: * `1` — Instant meeting. * `2` — Scheduled meeting. * `3` — A recurring meeting with no fixed time. * `4` — A meeting created via PMI (Personal Meeting ID). * `7` — A [Personal Audio Conference](https://support.zoom.us/hc/en-us/articles/204517069-Getting-Started-with-Personal-Audio-Conference) (PAC). * `8` - Recurring meeting with a fixed time. If the recording is of a webinar: * `5` — A webinar. * `6` — A recurring webinar without a fixed time. * `9` — A recurring webinar with a fixed time. If the recording is **not** from a meeting or webinar: * `99` — A recording uploaded via the [**Recordings**](https://zoom.us/recording) interface on the Zoom Web Portal.uuid(required)string— The universally unique identifier (UUID) of the recorded meeting or webinar instance.participant_audio_filesarray— Information about the trashed participant audio files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}` **Note:** This field does **not** return for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). Instead, this API will return the `file_path` field.file_extension(required)string— The participant audio file's extension.file_name(required)string— The participant audio file's name.file_size(required)integer— The participant audio file's size, in bytes.file_type(required)string— The participant audio file's format.id(required)string— The participant audio file's ID.recording_end(required)string, format:date-time— The participant audio file's end time.recording_start(required)string, format:date-time— The participant audio file's start time.status(required)string, possible values:"completed", "processing"— The participant audio file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_pathstring— The file path to the On-Premise account recording. **Note:** This API returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the `download_url` field.play_urlstring— The URL at which the participant audio file can be opened and played.
recording_filesarray— Information about the trashed recording files.Items: download_url(required)string— The URL at which to download the the recording. **JWT apps** To access a private or password-protected cloud recording of a user in your account, use a [Zoom JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL. `https://{{base-domain}}/recording/download/{{path-to-file-download}}?access_token={{JWT-token}}` **OAuth apps** If a user has authorized and installed your OAuth app that contains recording scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{OAuth-access-token}}`. **Note:** We recommend that you send the access_token as a Bearer token in the Authorization header, for example: "Authorization": "Bearer <ACCESS_TOKEN>”.file_extension(required)string, possible values:"MP4", "M4A", "TXT", "VTT", "CSV", "JSON", "JPG"— The recording file's extension.file_size(required)integer— The recording file's size, in bytes.file_type(required)string, possible values:"MP4", "M4A", "CHAT", "TRANSCRIPT", "CSV", "TB", "CC", "CHAT_MESSAGE", "SUMMARY", "TIMELINE"— The recording file's type.id(required)string— The recording file's ID.meeting_id(required)string— The meeting's ID.recording_end(required)string, format:date-time— The date and time at which recording ended.recording_start(required)string, format:date-time— The date and time at which recording started.recording_type(required)string, possible values:"shared_screen_with_speaker_view(CC)", "shared_screen_with_speaker_view", "shared_screen_with_gallery_view", "gallery_view", "shared_screen", "audio_only", "audio_transcript", "chat_file", "active_speaker", "host_video", "audio_only_each_participant", "cc_transcript", "closed_caption", "poll", "timeline", "thumbnail", "audio_interpretation", "summary", "summary_next_steps", "summary_smart_chapters", "production_sutdio"— The type of recording file: * `shared_screen_with_speaker_view(CC)` * `shared_screen_with_speaker_view` * `shared_screen_with_gallery_view` * `gallery_view` * `shared_screen` * `audio_only` * `audio_transcript` * `chat_file` * `active_speaker` * `host_video` * `audio_only_each_participant` * `cc_transcript` * `closed_caption` * `poll` * `timeline` * `thumbnail` * `audio_interpretation` * `summary` * `summary_next_steps` * `summary_smart_chapters` *`production_studio` For more information, read our [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) documentation.status(required)string, possible values:"completed", "processing"— The recording file's processing status: * `completed` — The processing of the file is complete. * `processing` — The file is processing.file_namestring— The recording file's name.play_urlstring— The URL at which the recording file can be opened and played.
timezonestring— The meeting or webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).
operator(required)string, format:email— The email address of the user who deleted the recording to the trash.operator_id(required)string— The user ID of the user who deleted the recording to the trash.
download_tokenstring— Use the generated token value with the `download_url` value to download the cloud recording via an [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app). The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either include the `download_token` as a query parameter or pass it as a Bearer token in the Authorization header of your HTTP request: **Using an Authorization header (Recommended)** ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {download_token} \ --header 'content-type: application/json' ``` **Using a query parameter** ``` {download_url}/?access_token={download_token} ``` For example: `https://zoom.us/recording/download/123456?access_token=abcdefgh`
Example:
{
"event": "",
"event_ts": 1,
"download_token": "",
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 1,
"start_time": "",
"timezone": "",
"duration": 1,
"share_url": "",
"total_size": 1,
"recording_count": 1,
"account_id": "",
"recording_files": [
{
"id": "",
"meeting_id": "",
"recording_start": "",
"recording_end": "",
"file_type": "MP4",
"file_extension": "MP4",
"file_name": "",
"file_size": 1,
"play_url": "",
"download_url": "",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view(CC)"
}
],
"participant_audio_files": [
{
"id": "",
"recording_start": "",
"recording_end": "",
"file_type": "",
"file_name": "",
"file_size": 1,
"file_extension": "",
"play_url": "",
"download_url": "",
"file_path": "",
"status": "completed"
}
]
}
}
}Meeting.summary_deletedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who hosted the meeting.object(required)object— Information about the meeting summary.meeting_end_time(required)string, format:date-time— The meeting's end date and time.meeting_host_email(required)string, format:email— The meeting host's email address.meeting_host_id(required)string— The ID of the user who is set as the meeting host.meeting_id(required)integer, format:int64— [Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) - the meeting's unique identifier in **long** format, represented as int64 data type in JSON. Also known as the meeting number.meeting_start_time(required)string, format:date-time— The meeting's start date and time.meeting_topic(required)string— Meeting topic.meeting_uuid(required)string— Unique meeting ID. Each meeting instance generates its own meeting UUID - after a meeting ends, a new UUID is generated for the next instance of the meeting. Retrieve a list of UUIDs from past meeting instances using the [**List past meeting instances**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/pastMeetings) API. [Double encode](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#meeting-id-and-uuid) your UUID when using it for API calls if the UUID begins with a `/` or contains `//` in it.summary_created_time(required)string, format:date-time— The date and time when the meeting summary was created.summary_end_time(required)string, format:date-time— The summary's end date and time.summary_last_modified_time(required)string, format:date-time— The date and time when the meeting summary was last modified.summary_start_time(required)string, format:date-time— The summary's start date and time.summary_title(required)string— The summary title.
operator(required)string— The email address of the user who permanently deleted the meeting summary.operator_id(required)string— The user ID of the user who permanently deleted the meeting summary.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meeting_host_id": "",
"meeting_host_email": "",
"meeting_uuid": "",
"meeting_id": 1,
"meeting_topic": "",
"meeting_start_time": "",
"meeting_end_time": "2020-07-15T23:30:19Z",
"summary_start_time": "",
"summary_end_time": "",
"summary_created_time": "",
"summary_last_modified_time": "",
"summary_title": "",
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Webinar.participant_bindEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who created the Webinar.object(required)object— Information about the webinar.host_id(required)string— The webinar host's user ID.participant(required)object— Information about the webinar participant. If the participant is **not** part of the host's account, `email` returns an empty string value, with some exceptions. See [Email address display rules](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#email-address-display-rules) for details.bind_user_id(required)string— The particpant's webinar user ID of participant the phone user bind to. This value is assigned to a participant when they join a webinar, and is only valid for the duration of the webinar.join_time(required)string, format:date-time— The time when the participant joined the webinar.phone_number(required)string— Phone number of participants who joined via PSTN.user_id(required)string— The participant's webinar user ID. This value is assigned to a participant when they join a webinar, and is only valid for the duration of the webinar.bind_participant_uuidstring— The participant's UUID of the user which this phone user binds to.idstring— The participant's universally unique ID (UUID). * If the participant joins the webinar by logging into Zoom, this value is the `id` value in the [**Get a user**](https://developers.zoom.us/docs/api/rest/reference/user/methods/#operation/user) API response. * If the participant joins the webinar **without** logging into Zoom, this returns an empty string value. This value returns blank for external users. **Note:** Use the `participant_user_id` value instead of this value. We will remove this response in a future release.participant_uuidstring— The participant's UUID for this specific webinar and any breakout rooms created in this webinar. This value is assigned to a participant when they join a webinar, and is only valid for the duration of that webinar.registrant_idstring— The registrant ID of the participants this phone user binds to. A host or a user with administrative permissions can require [registration for Zoom webinars](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0065026).user_namestring— The participant's display name.
type(required)integer, possible values:0, 1, 2, 3, 4, 7, 8— The webinar type. * `0` - A prescheduled webinar. * `1` - An instant webinar. * `2` - A scheduled webinar. * `3` - A recurring webinar with no fixed time. * `4` - A [personal webinar room](https://support.zoom.us/hc/en-us/articles/201362843). * `7` - A [PAC (Personal Audio Conference)](https://support.zoom.us/hc/en-us/articles/205172455-Hosting-a-Personal-Audio-Conference-PAC-webinar) webinar. * `8` - A recurring webinar with a fixed time.uuid(required)string— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.durationinteger— The scheduled webinar duration.idstring— The webinar ID.start_timestring— The webinar's start time.timezonestring— The webinar's [timezone](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).topicstring— The webinar's topic.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": "",
"uuid": "",
"host_id": "",
"topic": "",
"type": 0,
"start_time": "",
"timezone": "",
"duration": 1,
"participant": {
"user_id": "",
"bind_user_id": "",
"user_name": "",
"id": "",
"participant_uuid": "",
"bind_participant_uuid": "",
"join_time": "",
"registrant_id": "",
"phone_number": "8615250064084"
}
}
}
}Webinar.updatedEvent
- Type:
object
event(required)string— The event's name.event_ts(required)integer, format:int64— A timestamp when the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who updated the webinar.object(required)object— Information about the webinar.id(required)integer, format:int64— The webinar ID.agendastring— The webinar's agenda.durationinteger— The scheduled webinar duration.host_idstring— The webinar host's user ID.occurrencesarray— Information about recurring webinar with fixed times and their occurrences. This only returns when the webinar's `type` value is `9`.Items: Any of: occurrence_id(required)string— The webinar occurrence's ID.start_time(required)string, format:date-time— The webinar's start time.durationinteger— The scheduled webinar duration.statusstring, possible values:"available", "deleted"— The webinar occurrence status: * `available` * `deleted`
passwordstring— The password required to join the webinar.recurrenceobject— Information about [recurring webinars](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).end_date_timestring, format:date-time— The recurring webinar's final ending date and time before it is canceled, in UTC format.end_timesinteger, default:1— The number of times the recurring webinar will occur before it is canceled.monthly_dayinteger— The day of the month when the recurring monthly webinar occurs. The value ranges from 1 to 31.monthly_weekinteger, possible values:-1, 1, 2, 3, 4— The week of the month when a recurring webinar occurs. * `-1` - The last week of the month. * `1` - The first week. * `2` - The second week. * `3` - The third week. * `4` - The fourth week.monthly_week_dayinteger, possible values:1, 2, 3, 4, 5, 6, 7— The day of the week when the recurring monthly webinar is scheduled. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturdayrepeat_intervalinteger— The webinar's repeat interval. * For daily intervals, a maximum of `90` days. * For a weekly interval, a maximum of `12` weeks. * For monthly intervals, a maximum of `3` months.typeinteger, possible values:1, 2, 3— The recurring webinar type. * `1` - Daily. * `2` - Weekly. * `3` - Monthly.weekly_daysstring— A comma-separated list of the days of the week when the recurring weekly webinar occurs. * `1` - Sunday * `2` - Monday * `3` - Tuesday * `4` - Wednesday * `5` - Thursday * `6` - Friday * `7` - Saturday
registration_urlstring— The webinar's registration URL.settingsobject— Information about the updated webinar settings. This **only** returns updated webinar settings.allow_host_control_participant_mute_stateboolean— Whether to allow host and co-hosts to fully control the mute state of participants.approval_typeinteger, possible values:0, 1, 2— The [approval type](https://support.zoom.us/hc/en-us/articles/204619915-Scheduling-a-webinar-with-registration) for webinar registrants. * `0` - Automatically approve registrants. * `1` - Manually approve registrants. * `2` - Webinar registration not required.audiostring, possible values:"telephony", "voip", "both"— The available audio options for participants joining the webinar. * `telephony` - Telephony only. * `voip` - VoIP only. * `both` - Both Telephony and VoIP.authentication_domainsstring— A list of the allowed authenticated domains.authentication_namestring— The authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472).authentication_optionstring— The [authentication](https://support.zoom.us/hc/en-us/articles/4406604615693) option ID value.auto_recordingstring, possible values:"local", "cloud", "none"— The [automatic recording](https://support.zoom.us/hc/en-us/articles/202921119-Automatic-Recording) settings for the webinar. * `local` - Record and save to the local device. * `cloud` - Record and save to the cloud. * `none` - Automatic recording disabled.email_in_attendee_reportboolean— Whether to include guest's email addresses in webinars' attendee reports.enforce_loginboolean— Whether to only allow signed in users to join the webinar.host_videoboolean— Whether to start the webinar with the host's video on.language_interpretationobject— The webinar's [language interpretation settings](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064768). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** This feature is only available for certain Webinar add-on, Education, and Business and higher plans. If this feature is not enabled on the host's account, this setting will **not** be applied to the webinar. This is not supported for simulive webinars.enableboolean— Whether to enable [language interpretation](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064768) for the webinar.interpretersarray— Information about the webinar's language interpreters.Items: emailstring, format:email— The interpreter's email address.interpreter_languagesstring— A comma-separated list of the interpreter's languages. The string must contain exactly two languages. To get this value, use the `language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](https://developers.zoom.us/docs/api/users/#tag/users/GET/users/{userId}/settings) API response. **languages**: System-supported languages include `English`, `Chinese`, `Japanese`, `German`, `French`, `Russian`, `Portuguese`, `Spanish`, and `Korean`. **custom_languages**: User-defined languages added by the user. For example, an interpreter translating between English and French should use `English,French`.
meeting_authenticationboolean— Whether only authenticated users can join the webinar.panelists_videoboolean— Whether to turn panelists' video on when they join the webinar.practice_sessionboolean— Whether to enable the [**Enable Practice Session**](https://support.zoom.us/hc/en-us/articles/206316975-Webinar-Practice-Session) feature.registration_typeinteger, possible values:1, 2, 3— The webinar registration setting for recurring webinars: * `1` - Attendees register once and can attend any of the webinar occurrences. * `2` - Attendees must register for each occurrence to attend. * `3` - Attendees register once and can select one or more occurrences to attend.sign_language_interpretationobject— The webinar's [sign language interpretation settings](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar). Make sure to add the language in the web portal in order to use it in the API. See link for details. **Note:** If this feature is not enabled on the host's account, this setting will **not** be applied to the webinar.enableboolean— Whether to enable [sign language interpretation](https://support.zoom.us/hc/en-us/articles/9644962487309-Using-sign-language-interpretation-in-a-meeting-or-webinar) for the webinar.interpretersarray— Information about the webinar's sign language interpreters.Items: emailstring, format:email— The interpreter's email address.sign_languagestring— The interpreter's sign language. To get this value, use the `sign_language_interpretation` object's `languages` and `custom_languages` values in the [**Get user settings**](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods#operation/userSettings) API response.
start_timestring— The webinar's start time.timezonestring— The webinar's [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).topicstring— The webinar's topic.typeinteger, possible values:5, 6, 9— The webinar type. * `5` - A webinar. * `6` - A recurring webinar without a fixed time. * `9` - A recurring webinar with a fixed time.uuidstring— The webinar's universally unique identifier (UUID). Each webinar instance generates a webinar UUID.
old_object(required)objectoperator(required)string, format:email— The email address of the user who updated the webinar.operator_id(required)string— The user ID of the user who updated the webinar.time_stamp(required)integer, format:int64— The webinar's update timestamp, in milliseconds.scopestring, possible values:"single", "all"— The type of operation performed. * `all` - The change was applied to all webinars. * `single` - The change was applied only to a single webinar.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"scope": "single",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"topic": "",
"type": 5,
"start_time": "",
"duration": 1,
"timezone": "",
"password": "",
"agenda": "",
"registration_url": "",
"occurrences": [
{
"occurrence_id": "",
"start_time": "",
"duration": 1,
"status": "available",
"additionalProperty": "anything"
}
],
"settings": {
"host_video": true,
"panelists_video": true,
"practice_session": true,
"approval_type": 0,
"registration_type": 1,
"audio": "telephony",
"auto_recording": "local",
"enforce_login": true,
"meeting_authentication": true,
"authentication_option": "",
"authentication_name": "",
"authentication_domains": "",
"language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"interpreter_languages": ""
}
]
},
"sign_language_interpretation": {
"enable": true,
"interpreters": [
{
"email": "",
"sign_language": ""
}
]
},
"allow_host_control_participant_mute_state": true,
"email_in_attendee_report": true,
"additionalProperty": "anything"
},
"recurrence": {
"type": 1,
"repeat_interval": 1,
"weekly_days": "",
"monthly_day": 1,
"monthly_week_day": 1,
"end_times": 1,
"end_date_time": "",
"monthly_week": -1,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
},
"time_stamp": 1,
"old_object": null,
"additionalProperty": "anything"
},
"additionalProperty": "anything"
}Recording.batch_recoveredEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user that completed the meeting or webinar recording.operator(required)string, format:email— The email address of the user who recovered the recording.operator_id(required)string— The user ID of the user who recovered the recording.objectobject— Information about the meeting or webinar recording.meetings(required)arrayItems: meeting_uuidstring— The universally unique identifier (UUID) of the recorded meeting or webinar instance.recording_file_idsarray— The recording file's unique ID. If the current field value is NULL, it means to recover the whole Meeting Recording files.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"operator": "",
"operator_id": "",
"object": {
"meetings": [
{
"meeting_uuid": "",
"recording_file_ids": []
}
]
}
}
}Meeting.participant_room_system_callout_rejectedEvent
- Type:
object
event(required)string— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the meeting host.object(required)object— Information about the meeting.host_id(required)string— The user ID of the meeting host.id(required)integer, format:int64— The meeting ID.inviter_name(required)string— The user name of the event's trigger.message_id(required)string— The request unique identifier (UUID).participant(required)object— Information about the invited participant.call_type(required)string— The type of call out. Use a value of `h323` or `sip`.device_ip(required)string— The user's device IP address.
uuid(required)string— The meeting's universally unique identifier (UUID). Each meeting instance generates a meeting UUID.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"account_id": "",
"object": {
"id": 1,
"uuid": "",
"host_id": "",
"message_id": "",
"inviter_name": "",
"participant": {
"call_type": "",
"device_ip": ""
}
}
}
}