Events

  • OpenAPI Version: 3.1.1
  • API Version: 2

The Webinars Plus & Events APIs let developers integrate Zoom Webinars Plus & Events to create, manage, and customize virtual event experiences in their apps and services.

Servers

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

Operations

List event attendee actions

  • Method: GET
  • Path: /zoom_events/events/{eventId}/attendee_action
  • Tags: Attendee Actions

Retrieves the attendee actions performed by the host for an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_attendee_actions:read,zoom_events_attendee_actions:read:admin

Granular Scopes: zoom_events:read:list_attendee_actions,zoom_events:read:list_attendee_actions:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Attendee check-in Information.
Content-Type: application/json
  • attendees

    array — The list of event attendee actions.

    Items:

    • action

      string, possible values: "check-in" — The action name.

    • email

      string — The email address of the checked-in attendee.

    • source

      string — The source of the action. Any information that can be used for tracking the source of this action.

  • next_page_token

    string — The next page token.

  • total_records

    number — The total number of records in the response.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "attendees": [
    {
      "email": "email@zoom.us",
      "source": "Console-1",
      "action": "Check-in"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update event attendee actions

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/attendee_action
  • Tags: Attendee Actions

Retrieves attendee onsite action for an event. You can perform actions such as onsite check-in for a single attendee or up to 300 attendees in a batch operation. In the case of a batch operation, the API response can be a partial success. Any errors are returned in the errors object.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_attendee_actions:write,zoom_events_attendee_actions:write:admin

Granular Scopes: zoom_events:update:batch_attendee_actions,zoom_events:update:batch_attendee_actions:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • attendees

    array

    Items:

    • action (required)

      string, possible values: "check-in" — The action name.

    • email (required)

      string — The email address of the attendee.

  • source

    string — The source of the action. Any information that can be used for tracking the source of this action.

Example:

{
  "attendees": [
    {
      "email": "email@zoom.us",
      "action": "check-in"
    }
  ],
  "source": "console-1"
}

Responses

Status: 201 **HTTP Status Code:** `201` Attendee check-in Information.
Content-Type: application/json
  • errors

    array

    Items:

    • email

      string — The email address of the failed checked-in attendee.

    • message

      string — Error message.

Example:

{
  "errors": [
    {
      "email": "email@zoom.us",
      "message": "User doesn't have an on-site ticket"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2003` <br> Event Not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List session attendee actions

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/attendee_action
  • Tags: Attendee Actions

Retrieves the attendee actions performed by the host for an event session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_attendee_actions:read,zoom_events_attendee_actions:read:admin

Granular Scopes: zoom_events:read:list_session_attendee_actions,zoom_events:read:list_session_attendee_actions:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Attendee check-in Information.
Content-Type: application/json
  • attendees

    array — The list of session attendee actions.

    Items:

    • action

      string, possible values: "check-in" — The action name.

    • email

      string — The email address of the checked-in attendee.

    • source

      string — The source of the action. Any information that can be used for tracking the source of this action.

  • next_page_token

    string — The next page token.

  • total_records

    number — The total number of records in the response.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "attendees": [
    {
      "email": "email@zoom.us",
      "source": "Console-1",
      "action": "Check-in"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update session attendee actions

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/attendee_action
  • Tags: Attendee Actions

Performs attendee onsite action for an event session. You can perform actions such as onsite check-in for a single attendee or up to 300 attendees in a batch operation. In the case of a batch operation, the API response can be a partial success. Any errors are returned in the errors object.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_attendee_actions:write,zoom_events_attendee_actions:write:admin

Granular Scopes: zoom_events:update:batch_session_attendee_actions,zoom_events:update:batch_session_attendee_actions:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • attendees

    array

    Items:

    • action (required)

      string, possible values: "check-in" — The action name.

    • email (required)

      string — The email address of the attendee.

  • source

    string — The source of the action. Any information that can be used for tracking the source of this action.

Example:

{
  "attendees": [
    {
      "email": "email@zoom.us",
      "action": "Check-in"
    }
  ],
  "source": "Console-1"
}

Responses

Status: 201 **HTTP Status Code:** `201` Attendee check-in Information.
Content-Type: application/json
  • errors

    array

    Items:

    • email

      string — The email address of the failed checked-in attendee.

    • message

      string — The error message.

Example:

{
  "errors": [
    {
      "email": "email@zoom.us",
      "message": "User doesn't have an on-site ticket."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2003` <br> Event not found. <br> **Error Code:** `2005` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List coeditors

  • Method: GET
  • Path: /zoom_events/events/{eventId}/coeditors
  • Tags: Co Editors

Retrieves the list of co-editors and their edit permissions for an event. Co-editors can make changes to the event details. Co-editors have view permission to all sections of the event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_coeditors:read,zoom_events_coeditors:read:admin

Granular Scopes: zoom_events:read:list_coeditors,zoom_events:read:list_coeditors:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of co-editors returned.
Content-Type: application/json
  • coeditors

    array — Co-editors

    Items:

    • email

      string — The co-editor's email address.

    • permission_groups

      array — Permission Groups

      Items:

      string, possible values: "Publish", "EventConfiguration", "EventBranding", "Registration & Join", "Venue", "EventExperience", "EventPlanning", "SpecialRole", "PostEvent", "Analytics", "Email", "Integrations" — The permissions given for the co-editor to edit particular sections of the event: * `Publish` Event publish access * `EventConfiguration` Event Configuration page * `EventBranding` Event Branding page * `Registration & Join` Registration & Join page * `Venue` Event Experience page * `EventExperience` Event Experience page * `EventPlanning` Event Content page * `SpecialRole` Special Roles page * `PostEvent` Post Event page * `Analytics` Analytics page * `Email` Communications page * `Integrations` Integrations page

  • total_records

    number — The total number of records in the response.

Example:

{
  "total_records": 1,
  "coeditors": [
    {
      "email": "coeditor@example.com",
      "permission_groups": [
        "EventConfiguration"
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add or remove event co-editors

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/coeditors
  • Tags: Co Editors

Adds or removes event co-editor actions.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_coeditor:write,zoom_events_coeditor:write:admin

Granular Scopes: zoom_events:write:coeditor,zoom_events:write:coeditor:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • coeditors

    array — Co-Editor information.

    Items:

    • email

      string — The co-editor's email address.

    • permission_groups

      array — Permission Groups.

      Items:

      string, possible values: "Publish", "EventConfiguration", "EventBranding", "Registration & Join", "Venue", "EventExperience", "EventPlanning", "SpecialRole", "PostEvent", "Analytics", "Email", "Integrations" — The permissions given for the co-editor to edit particular sections of the event: * `Publish` Event publish access * `EventConfiguration` Event Configuration page * `EventBranding` Event Branding page * `Registration & Join` Registration & Join page * `Venue` Event Experience page * `EventExperience` Event Experience page * `EventPlanning` Event Content page * `SpecialRole` Special Roles page * `PostEvent` Post Event page * `Analytics` Analytics page * `Email` Communications page * `Integrations` Integrations page

  • operation

    string, possible values: "add", "update", "delete" — The co-editor actions for the event . *`add` &mdash; add co-editor the event. \n *`update` Update event co-editor permissions *`delete` delete co-editors from the event.

Example:

{
  "operation": "add",
  "coeditors": [
    {
      "email": "coeditor@example.com",
      "permission_groups": [
        "EventConfiguration"
      ]
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` Updates event co-editors.
Content-Type: application/json
  • errors

    array

    Items:

    • email

      string — The email address of the failed co-editor.

    • message

      string — Error message.

Example:

{
  "errors": [
    {
      "email": "email@zoom.us",
      "message": "User not elgible for co-editor."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List event email types

  • Method: GET
  • Path: /zoom_events/events/{eventId}/email_types
  • Tags: Emails

Get the list of email types defined for an event.

Scopes: zoom_events_email:read,zoom_events_email:read:admin

Granular Scopes: zoom_events:read:list_email_types,zoom_events:read:list_email_types:admin

Rate Limit Label: LIGHT

Responses

Status: 200 Email types
Content-Type: application/json
  • email_types

    array — Email types array.

    Items:

    • email_type

      string — The email type name.

    • email_type_id

      string — The email type ID.

    • status

      string, possible values: "scheduled", "ongoing", "sent", "deactivated" — The email delivery status. * `scheduled - Scheduled` * `ongoing - ongoing` * `sent - sent - done` * `deactivated - this email is deactivated`

    • trigger_date

      string, format: date-time — The trigger date-time of the email.

    • trigger_overview

      string — The email trigger information.

  • next_page_token

    string — The next page token paginates through a large set results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 15,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "email_types": [
    {
      "email_type": "Free ticket confirmation",
      "email_type_id": "SLar6n5ATsWSqZ_EZv_9jw",
      "trigger_overview": "Sent when user is registered",
      "trigger_date": "2025-08-24T22:30:00Z",
      "status": "scheduled"
    }
  ]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List event emails sent status

  • Method: GET
  • Path: /zoom_events/events/{eventId}/email_types/{emailTypeId}/send_status
  • Tags: Emails

Get the list of email sent status for an event email type.

Scopes: zoom_events_email:read,zoom_events_email:read:admin

Granular Scopes: zoom_events:read:list_emails_status,zoom_events:read:list_emails_status:admin

Rate Limit Label: LIGHT

Responses

Status: 200 Email send details.
Content-Type: application/json
  • emails

    array — Array of emails.

    Items:

    • email

      string — The email address of the recipient.

    • failure_reason

      string, possible values: "bounced", "system_error", "blocked", "rate_limited", "unsubscribed" — The email failure reason. * `bounced` - The email was bounced * `system_error` - Network error - Please try sending again * `blocked` - This email was blocked and hence not sent * `rate_limited` - Daily email limit met * `unsubscribed` - This email was unsubscribed from email communications

    • name

      string — The recipient name.

    • sent_date

      string, format: date-time — The actual sent date-time of the email.

    • status

      string, possible values: "scheduled", "pending", "delivered", "failed", "missed_schedule" — The email delivery status. * `scheduled` - Scheduled to send * `pending` - Pending or ready to send * `delivered` - Email sent successfully * `failed` - Email delivery failed * `missed_schedule` - Missed the original schedule date-time

  • next_page_token

    string — The next page token paginates through a large set of results. The next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "emails": [
    {
      "name": "John Doe",
      "email": "john.doe@test.com",
      "status": "delivered",
      "failure_reason": "bounced",
      "sent_date": "2025-08-24T22:30:00Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List event access links

  • Method: GET
  • Path: /zoom_events/events/{eventId}/access_links
  • Tags: Event Access

Retrieves a list of all the event's access links associated with the event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_access_links:read:admin,zoom_events_access_links:read

Granular Scopes: zoom_events:read:list_access_links,zoom_events:read:list_access_links:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of events access links.
Content-Type: application/json
  • access_links

    array — The list of event's access links.

    Items:

    • access_link_id

      string — The event access link ID.

    • allow_domain_list

      array — The registration restricted to these specific domains. This array returns a maximum of 50 domains.

      Items:

      string

    • authentication_method

      string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "bypass_auth", "accelerated_auth" — The event authentication method during registration or during join, depending on the access link type: * `zoom_account` Zoom account holder * `zoom_account_otp` Sign in with Zoom account or with an email OTP * `corporate_idp` Sign in to external Single Sign-On (SSO) * `bypass_auth` Bypass authentication * `accelerated_auth` Authentication through vanity url

    • email_restrict_list

      array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

      Items:

      string

    • idp_name

      string — The IDP Name configured for the account.

    • is_default

      boolean — The default link ensures compatibility with the event links that are used throughout the attendee experience. These existing event links will operate as a registration link or group join link based upon the default setting.. It will be set to false by default.

    • name

      string — The name of the access link.

    • recurring_registration_option

      string, possible values: "all_sessions", "single_session", "multiple_sessions" — The recurring event registration type. This is applicable only for recurring events. * `all_sessions` One registration for all the sessions. * `single_session` Registration only for one session at a time. * `multiple_sessions` Registration allowed one or more sessions.

    • security_at_join

      object — The security at join.

      • email_authentication

        boolean — Attendees will be required to authenticate with the email that was used at registration when joining.

      • security_code_verification

        boolean — Require additional authentication through a security code.

    • ticket_type_id

      string — Ticket Type ID. This establishes the access permissions of the user within the event.

    • type

      string, possible values: "registration", "group-join" — The type of access link of the event. * `registration` - Attendees will be required to authenticate with the email that was used at registration when joining. * `group-join` - The attendee group specified by the chosen authentication will join without registration.

    • url

      string — The event access link.

Example:

{
  "access_links": [
    {
      "access_link_id": "234kjhg23kl4jhlaksjdh3",
      "name": "Event Access Link 1",
      "type": "registration",
      "is_default": true,
      "url": "https://gobranding.zipow.com/ev/Ar7HuZc3rtKwaVqLz0QdBYN-2jTOMeGGgLe-G7JzOUQZTIBOpBaH~Aq9NeHNgGwwg2eyFH7eEtP4bXRXiiYCM8pDiTuTbrigbqJ1uK2K6Ga-Ghg",
      "authentication_method": "bypass_auth",
      "idp_name": "okta",
      "allow_domain_list": [
        "zoom.us"
      ],
      "email_restrict_list": [
        "example1@email.com"
      ],
      "security_at_join": {
        "email_authentication": true,
        "security_code_verification": true
      },
      "ticket_type_id": "234kjhg23kl4jhlaksjdh3",
      "recurring_registration_option": "all_sessions"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create event access link

  • Method: POST
  • Path: /zoom_events/events/{eventId}/access_links
  • Tags: Event Access

Creates an access link for an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_access_links:write,zoom_events_access_links:write:admin

Granular Scopes: zoom_events:write:access_links,zoom_events:write:access_links:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • authentication_method (required)

    string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "bypass_auth", "accelerated_auth" — The event authentication method during registration or during join, depending on the access link type. * `zoom_account` - Zoom account holder. * `zoom_account_otp` - Sign in with Zoom account or with an email OTP. * `corporate_idp` - Sign in to external single sign-on (SSO). Configure the Zoom account with a valid one SSO configuration. Accounts with multiple identity providers (IDP) are not supported using the API. * `bypass_auth` - Bypass authentication. * `accelerated_auth` - Authentication through vanity URL.

  • name (required)

    string — The access link's name.

  • type (required)

    string, possible values: "registration", "group-join" — The type of access link of the event. * `registration` - Attendees will be required to authenticate with the email that was used at registration when joining. * `group-join` - The attendee group specified by the chosen authentication will join without registration.

  • allow_domain_list

    array — The registration restricted to these specific domains. This array returns a maximum of 50 domains.

    Items:

    string

  • email_restrict_list

    array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

    Items:

    string

  • idp_name

    string — The IDP Name configured for the account. If the authentication type is corporate IDP and Zoom Accounts configured with more than one IDP provider this field is required.

  • is_default

    boolean — The default link ensures compatibility with the event links that are used throughout the attendee experience. These existing event links will operate as a registration link or group join link based upon the default setting. It will be set to false by default. Only one link is set to default, at any time.

  • recurring_registration_option

    string, possible values: "all_sessions", "single_session", "multiple_sessions" — The recurring event registration type. This is applicable only for recurring events. * `all_sessions` - One registration for all the sessions. * `single_session` - Registration only for one session at a time. * `multiple_sessions` - Registration allowed one or more sessions.

  • security_at_join

    object — Security at the time of joining.

    • email_authentication

      boolean — This field applies only to registration link type. Attendees will be required to authenticate with the email that was used at registration when joining.

    • security_code_verification

      boolean — Require additional authentication through a security code.

  • ticket_type_id

    string — The ticket type ID. This field applies only to group-join link type. This establishes the access permissions of the user within the event.

Example:

{
  "name": "Event Access Link 1",
  "type": "registration",
  "is_default": false,
  "authentication_method": "bypass_auth",
  "idp_name": "okta",
  "allow_domain_list": [
    "zoom.us"
  ],
  "email_restrict_list": [
    "example1@email.com"
  ],
  "security_at_join": {
    "email_authentication": true,
    "security_code_verification": true
  },
  "ticket_type_id": "PTYwAknYQXaDStOP7O3ExA",
  "recurring_registration_option": "all_sessions"
}

Responses

Status: 201 **HTTP Status Code:** `201` <br> Event access link created successfully.
Content-Type: application/json
  • access_link_id

    string — The event access link ID.

  • allow_domain_list

    array — The registration restricted to these specific domains. This array returns a maximum of 50 domains.

    Items:

    string

  • authentication_method

    string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "bypass_auth", "accelerated_auth" — The event authentication method during registration or during join, depending on the access link type. * `zoom_account` - Zoom account holder. * `zoom_account_otp` - Sign in with Zoom account or with an email OTP. * `corporate_idp` - Sign in to external single sign-on (SSO). * `bypass_auth` - Bypass authentication. * `accelerated_auth` - Authentication through vanity URL.

  • email_restrict_list

    array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

    Items:

    string

  • idp_name

    string — The IDP Name configured for the account. If the authentication type is corporate IDP and Zoom Accounts configured with more than one IDP provider this field is required.

  • is_default

    boolean — The default link ensures compatibility with the event links that are used throughout the attendee experience. These existing event links will operate as a registration link or group join link based upon the default setting. It will be set to false by default.

  • name

    string — The name of the access link.

  • recurring_registration_option

    string, possible values: "all_sessions", "single_session", "multiple_sessions" — The recurring event registration type. This is applicable only for recurring events. * `all_sessions` - One registration for all the sessions. * `single_session` - Registration only for one session at a time. * `multiple_sessions` - Registration allowed one or more sessions.

  • security_at_join

    object — Security at the time of joining.

    • email_authentication

      boolean — This field applies only to registration link type. Attendees will be required to authenticate with the email that was used at registration when joining.

    • security_code_verification

      boolean — Require additional authentication through a security code.

  • ticket_type_id

    string — The ticket type ID. This field applies only to group-join link type. This establishes the access permissions of the user within the event.

  • type

    string, possible values: "registration", "group-join" — The type of access link of the event. * `registration` - Attendees will be required to authenticate with the email that was used at registration when joining. * `group-join` - The attendee group specified by the chosen authentication will join without registration.

Example:

{
  "access_link_id": "234kjhg23kl4jhlaksjdh3",
  "name": "Event Access Link 1",
  "type": "registration",
  "is_default": true,
  "authentication_method": "bypass_auth",
  "idp_name": "okta",
  "allow_domain_list": [
    "zoom.us"
  ],
  "email_restrict_list": [
    "example1@example.com"
  ],
  "security_at_join": {
    "email_authentication": true,
    "security_code_verification": true
  },
  "ticket_type_id": "PTYwAknYQXaDStOP7O3ExA",
  "recurring_registration_option": "all_sessions"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `261202` <br> The ticket type could not be found. <br> **Error Code:** `261203` <br> Please ensure that each join link has a unique name.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get event access link

  • Method: GET
  • Path: /zoom_events/events/{eventId}/access_links/{accessLinkId}
  • Tags: Event Access

Retrieves event access link information.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_access_links:read,zoom_events_access_links:read:admin

Granular Scopes: zoom_events:read:access_links,zoom_events:read:access_links:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Requested session details.
Content-Type: application/json
  • access_link_id

    string — The event access link ID.

  • allow_domain_list

    array — The registration restricted to these specific domains. This array returns a maximum of 50 domains.

    Items:

    string

  • authentication_method

    string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "bypass_auth", "accelerated_auth" — The event authentication method during registration or during join, depending on the access link type. * `zoom_account` - Zoom account holder. * `zoom_account_otp` - Sign in with Zoom account or with an email OTP. * `corporate_idp` - Sign in to external single sign-on (SSO). * `bypass_auth` - Bypass authentication. * `accelerated_auth` - Authentication through vanity URL.

  • email_restrict_list

    array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

    Items:

    string

  • idp_name

    string — The IDP Name configured for the account.

  • is_default

    boolean — The default link ensures compatibility with the event links that are used throughout the attendee experience. These existing event links will operate as a registration link or group join link based upon the default setting. It will be set to false by default.

  • name

    string — The name of the access link.

  • recurring_registration_option

    string, possible values: "all_sessions", "single_session", "multiple_sessions" — The recurring event registration type. This is applicable only for recurring events. * `all_sessions` One registration for all the sessions. * `single_session` Registration only for one session at a time. * `multiple_sessions` Registration allowed one or more sessions.

  • security_at_join

    object — Security at the time of joining.

    • email_authentication

      boolean — This field applies only to registration link type. Attendees will be required to authenticate with the email that was used at registration when joining.

    • security_code_verification

      boolean — Require additional authentication through a security code.

  • ticket_type_id

    string — The ticket type ID. This field applies only to group-join link type. This establishes the access permissions of the user within the event.

  • type

    string, possible values: "registration", "group-join" — The type of access link of the event. *`registration` - Attendees will be required to authenticate with the email that was used at registration when joining. *`group-join` - The attendee group specified by the chosen authentication will join without registration.

Example:

{
  "access_link_id": "234kjhg23kl4jhlaksjdh3",
  "name": "Event Access Link 1",
  "type": "registration",
  "is_default": true,
  "authentication_method": "bypass_auth",
  "idp_name": "okta",
  "allow_domain_list": [
    "zoom.us"
  ],
  "email_restrict_list": [
    "example1@example.com"
  ],
  "security_at_join": {
    "email_authentication": true,
    "security_code_verification": true
  },
  "ticket_type_id": "PTYwAknYQXaDStOP7O3ExA",
  "recurring_registration_option": "all_sessions"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `261201` <br> Event access link not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete event access link

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/access_links/{accessLinkId}
  • Tags: Event Access

Deletes an event access link.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_access_links:write,zoom_events_access_links:write:admin

Granular Scopes: zoom_events:delete:access_links,zoom_events:delete:access_links:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Event access deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `261201` <br> Event access link not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update event access

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/access_links/{accessLinkId}
  • Tags: Event Access

Updates the event access for an event ID.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_access_links:write,zoom_events_access_links:write:admin

Granular Scopes: zoom_events:update:access_links,zoom_events:update:access_links:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • allow_domain_list

    array — The registration restricted to these specific domains. This array returns a maximum of 50 domains.

    Items:

    string

  • authentication_method

    string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "bypass_auth", "accelerated_auth" — The event authentication method during registration or during join, depending on the access link type. * `zoom_account` - Zoom account holder. * `zoom_account_otp` - Sign in with Zoom account or with an email OTP. * `corporate_idp` - Sign in to external single sign-on (SSO). Configure the Zoom account with a valid one SSO configuration. Accounts with multiple identity providers (IDP) are not supported using the API. * `bypass_auth` - Bypass authentication. * `accelerated_auth` - Authentication through vanity URL.

  • email_restrict_list

    array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

    Items:

    string

  • idp_name

    string — The IDP Name configured for the account. If the authentication type is corporate IDP and Zoom Accounts configured with more than one IDP provider this field is required.

  • is_default

    boolean — The default link ensures compatibility with the event links that are used throughout the attendee experience. These existing event links will operate as a registration link or group join link based upon the default setting. It will be set to false by default. Only one link is set to default, at any time. On;y `true` is considered for update.

  • name

    string — The name of the access link.

  • recurring_registration_option

    string, possible values: "all_sessions", "single_session", "multiple_sessions" — The recurring event registration type. This is applicable only for recurring events. * `all_sessions` One registration for all the sessions. * `single_session` Registration only for one session at a time. * `multiple_sessions` Registration allowed one or more sessions.

  • security_at_join

    object — The security at the time of joining.

    • email_authentication

      boolean — This field applies only to registration link type. Attendees will be required to authenticate with the email that was used at registration when joining.

    • security_code_verification

      boolean — This field requires additional authentication through a security code.

  • ticket_type_id

    string — The ticket type ID. This field applies only to group-join link type. This establishes the access permissions of the user within the event.

Example:

{
  "name": "Event Access Link 1",
  "is_default": true,
  "authentication_method": "bypass_auth",
  "idp_name": "okta",
  "allow_domain_list": [
    "zoom.us"
  ],
  "email_restrict_list": [
    "example1@email.com"
  ],
  "security_at_join": {
    "email_authentication": true,
    "security_code_verification": true
  },
  "ticket_type_id": "PTYwAknYQXaDStOP7O3ExA",
  "recurring_registration_option": "all_sessions"
}

Responses

Status: 204 **HTTP Status Code:** `204` Event access link updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `261202` <br> The ticket type could not be found. <br> **Error Code:** `261203` <br> Please ensure that each join link has a unique name.. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `261201` <br> Event access link not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List events

  • Method: GET
  • Path: /zoom_events/events
  • Tags: Events

Retrieves all events associated with the user.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_basic:read,zoom_events_basic:read:admin

Granular Scopes: zoom_events:read:list_events,zoom_events:read:list_events:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of requested events.
Content-Type: application/json
  • events

    array

    Items:

    • access_level

      string — The type of [access level](https://support.zoom.us/hc/en-us/articles/13471207223437-Managing-the-Event-Access-tab): * `PUBLIC` - Public events * `PRIVATE_UNRESTRICTED` - Private and unrestricted. * `PRIVATE_RESTRICTED` - Private and restricted.

    • attendance_type

      string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees

    • blocked_countries

      array

      Items:

      string — The [country's code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists/#countries).

    • calendar

      array — The start and end time of the calendar invitations in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

      Items:

      • end_time

        string, format: date-time

      • start_time

        string, format: date-time

    • categories

      array — The category of the event. **Example:** * Education and Family. * Business and Networking. * Entertainment and Visual Arts. * Food and Drinks.

      Items:

      string

    • contact_email

      string — The contact person's email address for the event.

    • contact_name

      string — The contact person's name for the event.

    • description

      string — The description of the event.

    • end_time

      string, format: date-time — The end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

    • event_id

      string — The ID of the event.

    • event_type

      string — The event types as enum: * `CONFERENCE` - Multi session event * `SIMPLE_EVENT` - Single session event * `RECURRING` - Recurring session event

    • event_url

      string — The defaul event access link.

    • hub_id

      string — The ID of the event hub.

    • lobby_end_time

      string, format: date-time — The end time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

    • lobby_start_time

      string, format: date-time — The start time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

    • meeting_type

      string — The type of meeting (for single session and recurring session events): * `MEETING` - Meeting * `WEBINAR` - Webinar.

    • name

      string — The name of the event.

    • physical_location

      string — The physical location of the event. This field is applicable for Hybrid and in-person events only.

    • recurrence

      object — Information about [recurring sessions](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).

      • duration

        integer — Session duration in minutes.

      • end_date_time

        string, format: date-time — The recurring session's final ending date and time before it is canceled, in UTC format.

      • end_times

        integer — The number of times the recurring session will occur before it is canceled.

      • monthly_days

        integer — The day of the month on which the recurring monthly session occurs. The value ranges from 1 to 31.

      • monthly_week

        integer, possible values: -1, 1, 2, 3, 4 — The week of the month on which a recurring session 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_day

        integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week on which the recurring monthly session is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

      • repeat_interval

        integer — The session'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.

      • type

        integer, possible values: 1, 2, 3 — The type of recurring session: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.

      • weekly_days

        string — A comma-separated list of the days of the week on which the recurring weekly session occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

    • start_time

      string, format: date-time — The start time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

    • status

      string — The event status: Options: * `PUBLISHED` - Published event * `DRAFT` - Draft event

    • tagline

      string — This field displays under the event detail page image.

    • tags

      array — The tags for the event.

      Items:

      string

    • timezone

      string — The timezone of the event.

  • next_page_token

    string — The next page token paginates through a large set results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "events": [
    {
      "event_id": "234kj2h34kljgh23lkhj3",
      "name": "OpenAPI Conference Name",
      "description": "This event was created with the OpenAPI",
      "timezone": "America/Indianapolis",
      "event_type": "CONFERENCE",
      "recurrence": {
        "type": 1,
        "repeat_interval": 1,
        "weekly_days": "",
        "monthly_days": 1,
        "monthly_week_day": 1,
        "end_times": 1,
        "end_date_time": "",
        "monthly_week": -1,
        "duration": 1
      },
      "access_level": "PRIVATE_RESTRICTED",
      "meeting_type": "MEETING",
      "categories": [
        "Food and Drinks"
      ],
      "tags": [
        "Event tag1"
      ],
      "calendar": [
        {
          "start_time": "2022-06-03T20:51:00Z",
          "end_time": "2022-06-03T20:51:00Z"
        }
      ],
      "status": "PUBLISHED",
      "hub_id": "23asdfasdf3asdf",
      "start_time": "2022-06-03T20:51:00Z",
      "end_time": "2022-06-03T20:51:00Z",
      "contact_name": "user contact name",
      "contact_email": "user@zoom.us",
      "lobby_start_time": "2022-06-03T20:51:00Z",
      "lobby_end_time": "2022-06-03T20:51:00Z",
      "event_url": "www.example.com/zoomEvents",
      "blocked_countries": [
        "US"
      ],
      "attendance_type": "hybrid",
      "physical_location": "801 Mt Vernon Pl NW, Washington, DC 20001",
      "tagline": "Unlocking Innovation: Join Us for the Day of Insipiration and Insight!"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create an event

  • Method: POST
  • Path: /zoom_events/events
  • Tags: Events

Creates an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_basic:write,zoom_events_basic:write:admin

Granular Scopes: zoom_events:write:event,zoom_events:write:event:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • access_level (required)

    string — *`PRIVATE_UNRESTRICTED` - Private and unrestricted. *`PRIVATE_RESTRICTED` - Private and restricted.

  • attendance_type (required)

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `VIRTUAL` - virtual attendees only. * `IN-PERSON` - in-person attendees only. * `HYBRID` - both in-person and virtual attendees.

  • description (required)

    string — The description of the event.

  • event_type (required)

    string, possible values: "SIMPLE_EVENT", "CONFERENCE", "RECURRING" — The event types as enum: *`CONFERENCE` - Multi session events. *`SIMPLE_EVENT` - Single session event. *`RECURRING` - Recurring sessions event.

  • hub_id (required)

    string — The ID of the event hub.

  • name (required)

    string — The name of the event.

  • timezone (required)

    string — The timezone of the event. For a list of supported timezones and their formats, see our [timezone list](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).

  • blocked_countries

    array — Attendees from the countries listed here will not be allowed to register to the event.

    Items:

    string — The [country's code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists/#countries).

  • calendar

    array — The start and end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

    Items:

    • end_time (required)

      string, format: date-time — The start time of the event in UTC.

    • start_time (required)

      string, format: date-time — The start time of the event in UTC.

  • categories

    array, possible values: "Education & Family", "Business & Networking", "Entertainment & Visual Arts", "Food & Drink", "Fitness & Health", "Home & Lifestyle", "Community & Spirituality", "Other" — The category of the event. * Education & Family. * Business & Networking. * Entertainment & Visual Arts. * Food & Drinks. * Fitness & Health. * Home & Lifestyle * Community & Spirituality. * Other

    Items:

    string

  • contact_name

    string — The contact person's name for the event.

  • end_time

    string, format: date-time — The end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ` this is a read only field.

  • lobby_end_time

    string, format: date-time — The end time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • lobby_start_time

    string, format: date-time — The start time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • meeting_type

    string — This value is required only for a single session event. *`MEETING` - Meeting. *`WEBINAR` - Webinar.

  • physical_location

    string — The physical location of the event. This field is applicable for hybrid and in-person events only.

  • recurrence

    object — Information about [recurring sessions](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).

    • duration

      integer — Session duration in minutes.

    • end_date_time

      string, format: date-time — The recurring session's final ending date and time before it is canceled, in UTC format.

    • end_times

      integer — The number of times the recurring session will occur before it is canceled.

    • monthly_days

      array

      Items:

      integer — The day of the month on which the recurring monthly session occurs. The value ranges from 1 to 31.

    • monthly_week

      integer, possible values: -1, 1, 2, 3, 4 — The week of the month on which a recurring session 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_day

      integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week on which the recurring monthly session is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

    • repeat_interval

      integer — The session'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.

    • type

      integer, possible values: 1, 2, 3 — The type of recurring session: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.

    • weekly_days

      array

      Items:

      integer, possible values: 1, 2, 3, 4, 5, 6, 7 — A list of the days of the week on which the recurring weekly session occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

  • start_time

    string, format: date-time — The start time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ` this is read only field.

  • tagline

    string — This field displays under the event detail page image.

  • tags

    array — The tags for the event.

    Items:

    string

Example:

{
  "name": "OpenAPI Conference Name",
  "description": "This event was created with the OpenAPI.",
  "timezone": "America/Indianapolis",
  "event_type": "CONFERENCE",
  "recurrence": {
    "type": 1,
    "repeat_interval": 1,
    "weekly_days": [
      1
    ],
    "monthly_days": [
      1
    ],
    "monthly_week_day": 1,
    "end_times": 7,
    "end_date_time": "2022-04-02T15:59:00Z",
    "monthly_week": 1,
    "duration": 15
  },
  "access_level": "PRIVATE_RESTRICTED",
  "meeting_type": "MEETING",
  "categories": "Education & Family",
  "tags": [
    "Event tag1"
  ],
  "calendar": [
    {
      "start_time": "2024-07-28T13:00:00Z",
      "end_time": "2024-07-30T13:00:00Z"
    }
  ],
  "hub_id": "23asdfasdf3asdf",
  "contact_name": "user contact name",
  "lobby_start_time": "2022-06-03T20:51:00Z",
  "lobby_end_time": "2022-06-03T20:51:00Z",
  "blocked_countries": [
    "US"
  ],
  "attendance_type": "hybrid",
  "tagline": "Unlocking Innovation: Join Us for the Day of Insipiration and Insight!"
}

Responses

Status: 201 **HTTP Status Code:** `201` Successfully created an event.
Content-Type: application/json
  • access_level

    string — * `PRIVATE_UNRESTRICTED` - Private and unrestricted. * `PRIVATE_RESTRICTED` - Private and restricted.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. *`VIRTUAL` - virtual attendees only. *`IN-PERSON` - in-person attendees only. *`HYBRID` - both in-person and virtual attendees.

  • blocked_countries

    array

    Items:

    string — The [country's code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists/#countries).

  • calendar

    array — The start and end time of the calendar invitations in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

    Items:

    • end_time

      string, format: date-time

    • start_time

      string, format: date-time

  • categories

    array — The category of the event. **Example:** * Education and Family. * Business and Networking. * Entertainment and Visual Arts. * Food and Drinks.

    Items:

    string

  • contact_name

    string — The contact person's name for the event.

  • description

    string — The description of the event.

  • end_time

    string, format: date-time — The end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • event_id

    string — The ID of the event.

  • event_type

    string — The event types as enum: *`CONFERENCE` - Multi session event. *`SIMPLE_EVENT` - Single session event.

  • event_url

    string — The default event access link.

  • hub_id

    string — The ID of the event hub.

  • lobby_end_time

    string, format: date-time — The end time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • lobby_start_time

    string, format: date-time — The start time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • meeting_type

    string — *This value is required only for single session Event `MEETING` - Meeting. * `WEBINAR` - Webinar.

  • name

    string — The name of the event.

  • physical_location

    string — The physical location of the event. This field is applicable for hybrid and in-person events only.

  • recurrence

    object — Information about [recurring sessions](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).

    • duration

      integer — Session duration in minutes.

    • end_date_time

      string, format: date-time — The recurring session's final ending date and time before it is canceled, in UTC format.

    • end_times

      integer — The number of times the recurring session will occur before it is canceled.

    • monthly_days

      array

      Items:

      integer — The day of the month on which the recurring monthly session occurs. The value ranges from 1 to 31.

    • monthly_week

      integer, possible values: -1, 1, 2, 3, 4 — The week of the month on which a recurring session 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_day

      integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week on which the recurring monthly session is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

    • repeat_interval

      integer — The session'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.

    • type

      integer, possible values: 1, 2, 3 — The type of recurring session: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.

    • weekly_days

      array

      Items:

      integer, possible values: 1, 2, 3, 4, 5, 6, 7 — A list of the days of the week on which the recurring weekly session occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

  • start_time

    string, format: date-time — The start time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • status

    string — The event status options: * `PUBLISHED` - Published event. * `DRAFT` - Draft event.

  • tagline

    string — This field displays under the event detail page image.

  • tags

    array — The tags for the event.

    Items:

    string

  • timezone

    string — The timezone of the event.

Example:

{
  "event_id": "234kj2h34kljgh23lkhj3",
  "name": "OpenAPI Conference Name",
  "description": "This event was created with the OpenAPI",
  "timezone": "America/Indianapolis",
  "event_type": "CONFERENCE",
  "recurrence": {
    "type": 1,
    "repeat_interval": 1,
    "weekly_days": [
      1
    ],
    "monthly_days": [
      1
    ],
    "monthly_week_day": 1,
    "end_times": 1,
    "end_date_time": "",
    "monthly_week": -1,
    "duration": 1
  },
  "access_level": "PRIVATE_RESTRICTED",
  "meeting_type": "MEETING",
  "categories": [
    "Food and Drinks"
  ],
  "tags": [
    "Event tag1"
  ],
  "calendar": [
    {
      "start_time": "2024-07-28T13:00:00Z",
      "end_time": "2024-07-30T13:00:00Z"
    }
  ],
  "status": "PUBLISHED",
  "hub_id": "23asdfasdf3asdf",
  "start_time": "2022-06-03T20:51:00Z",
  "end_time": "2022-06-03T20:51:00Z",
  "contact_name": "user contact name",
  "lobby_start_time": "2022-06-03T20:51:00Z",
  "lobby_end_time": "2022-06-03T20:51:00Z",
  "event_url": "www.example.com/zoomEvents",
  "blocked_countries": [
    "US"
  ],
  "attendance_type": "hybrid",
  "tagline": "Unlocking Innovation: Join Us for the Day of Insipiration and Insight!"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26202` <br> Event schedule cannot be more than 6 days. <br> **Error Code:** `26203` <br> Event end_time must be after event start_time. <br> **Error Code:** `26204` <br> Calender must contains start_time and end_time. <br> **Error Code:** `260207` <br> Hub is not supported for conference type events. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `26201` <br> No permission to create the event under the hub ID. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get an event

  • Method: GET
  • Path: /zoom_events/events/{eventId}
  • Tags: Events

Returns information on a specified event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_basic:read,zoom_events_basic:read:admin

Granular Scopes: zoom_events:read:event,zoom_events:read:event:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Event returned.
Content-Type: application/json
  • access_level

    string — The type of [access level](https://support.zoom.us/hc/en-us/articles/13471207223437-Managing-the-Event-Access-tab): * `PUBLIC` - Public events. * `PRIVATE_UNRESTRICTED` - Private and unrestricted. * `PRIVATE_RESTRICTED` - Private and restricted.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `VIRTUAL` - virtual attendees only. * `IN-PERSON` - in-person attendees only. * `HYBRID` - both in-person and virtual attendees.

  • blocked_countries

    array

    Items:

    string — The [country's code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists/#countries).

  • calendar

    array — The start and end time of the calendar invitations in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

    Items:

    • end_time

      string, format: date-time

    • start_time

      string, format: date-time

  • categories

    array — The category of the event. **Example:** * Education and Family. * Business and Networking. * Entertainment and Visual Arts. * Food and Drinks.

    Items:

    string

  • contact_email

    string — The contact person's email address for the event.

  • contact_name

    string — The contact person's name for the event.

  • description

    string — The description of the event.

  • end_time

    string, format: date-time — The end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • event_id

    string — The ID of the event.

  • event_type

    string — The event types as enum: * `CONFERENCE` - Multi session event. * `SIMPLE_EVENT` - Single session event. * `RECURRING` - Recurring session event.

  • event_url

    string — The default event access link.

  • host_id

    string — The event host(creator)'s user ID.

  • hub_id

    string — The ID of the event hub.

  • lobby_end_time

    string, format: date-time — The end time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • lobby_start_time

    string, format: date-time — The start time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • meeting_type

    string — The type of meeting (for single session and recurring session events): * `MEETING` - Meeting. * `WEBINAR` - Webinar.

  • name

    string — The name of the event.

  • physical_location

    string — The physical location of the event. This field is applicable for hybrid and in-person events only.

  • recurrence

    object — Information about [recurring sessions](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).

    • duration

      integer — Session duration in minutes.

    • end_date_time

      string, format: date-time — The recurring session's final ending date and time before it is canceled, in UTC format.

    • end_times

      integer — The number of times the recurring session will occur before it is canceled.

    • monthly_days

      integer — The day of the month on which the recurring monthly session occurs. The value ranges from 1 to 31.

    • monthly_week

      integer, possible values: -1, 1, 2, 3, 4 — The week of the month on which a recurring session 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_day

      integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week on which the recurring monthly session is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

    • repeat_interval

      integer — The session'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.

    • type

      integer, possible values: 1, 2, 3 — The type of recurring session: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.

    • weekly_days

      string — A comma-separated list of the days of the week on which the recurring weekly session occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

  • start_time

    string, format: date-time — The start time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • status

    string — The event status options: * `PUBLISHED` - Published event. * `DRAFT` - Draft event.

  • tagline

    string — This field displays under the event detail page image.

  • tags

    array — The tags for the event.

    Items:

    string

  • timezone

    string — The timezone of the event.

Example:

{
  "event_id": "234kj2h34kljgh23lkhj3",
  "name": "OpenAPI Conference Name",
  "description": "This event was created with the OpenAPI.",
  "timezone": "America/Indianapolis",
  "event_type": "CONFERENCE",
  "recurrence": {
    "type": 1,
    "repeat_interval": 1,
    "weekly_days": "",
    "monthly_days": 1,
    "monthly_week_day": 1,
    "end_times": 1,
    "end_date_time": "",
    "monthly_week": -1,
    "duration": 1
  },
  "access_level": "PRIVATE_RESTRICTED",
  "meeting_type": "MEETING",
  "categories": [
    "Food and Drinks"
  ],
  "tags": [
    "Event tag1"
  ],
  "calendar": [
    {
      "start_time": "2022-06-03T20:51:00Z",
      "end_time": "2022-06-03T20:51:00Z"
    }
  ],
  "status": "PUBLISHED",
  "hub_id": "23asdfasdf3asdf",
  "host_id": "XMgGb1i6Qlah8mn3e5GYMX",
  "start_time": "2022-06-03T20:51:00Z",
  "end_time": "2022-06-03T20:51:00Z",
  "contact_name": "user contact name",
  "contact_email": "user@zoom.us",
  "lobby_start_time": "2022-06-03T20:51:00Z",
  "lobby_end_time": "2022-06-03T20:51:00Z",
  "event_url": "www.example.com/zoomEvents",
  "blocked_countries": [
    "US"
  ],
  "attendance_type": "hybrid",
  "tagline": "Unlocking Innovation: Join Us for the Day of Insipiration and Insight!"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an event

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}
  • Tags: Events

Delete a draft event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_basic:write,zoom_events_basic:write:admin

Granular Scopes: zoom_events:delete:event,zoom_events:delete:event:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Event deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an event

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}
  • Tags: Events

Updates an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_basic:write,zoom_events_basic:write:admin

Granular Scopes: zoom_events:update:event,zoom_events:update:event:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • access_level

    string — The type of access level: * `PRIVATE_UNRESTRICTED` &mdash; Private and unrestricted. * `PRIVATE_RESTRICTED` &mdash; Private and restricted.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event: * `VIRTUAL` &mdash; virtual attendees only. * `IN-PERSON` &mdash; in-person attendees only. * `HYBRID` &mdash; both in-person and virtual attendees.

  • blocked_countries

    array

    Items:

    string — The blocked countries for the event. [country's code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists/#countries).

  • calendar

    array — The start and end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

    Items:

    • end_time

      string, format: date-time — The start time of the event in UTC.

    • start_time

      string, format: date-time — The start time of the event in UTC.

  • categories

    array — The category of the event. **Example:** * Education and Family. * Business and Networking. * Entertainment and Visual Arts. * Food and Drinks.

    Items:

    string

  • contact_name

    string — The contact name for the event.

  • description

    string — The description of the event.

  • end_time

    string, format: date-time — The end time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ` this is a read only field.

  • event_type

    string, possible values: "SIMPLE_EVENT", "CONFERENCE", "RECURRING" — The event types as enum: * `CONFERENCE` &mdash; Multi session events. * `SIMPLE_EVENT` &mdash; Single session event. * `RECURRING` &mdash; Recurring Sessions event.

  • hub_id

    string — The ID of the Event Hub.

  • lobby_end_time

    string, format: date-time — The end time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • lobby_start_time

    string, format: date-time — The start time of the lobby in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • meeting_type

    string — *This value is required only for single session event: `MEETING`. * `WEBINAR` - Webinar. Use session API to update the meeting type.

  • name

    string — The name of the event.

  • physical_location

    string — The physical location of the event. This field is applicable for hybrid and in-person events only.

  • recurrence

    object — The information about [recurring sessions](https://marketplace.zoom.us/docs/api-reference/other-references/recurrence-object-definitions).

    • duration

      integer — Session duration in minutes.

    • end_date_time

      string, format: date-time — The recurring session's final ending date and time before it is canceled, in UTC format.

    • end_times

      integer — The number of times the recurring session will occur before it is canceled.

    • monthly_days

      integer — The day of the month on which the recurring monthly session occurs. The value ranges from 1 to 31.

    • monthly_week

      integer, possible values: -1, 1, 2, 3, 4 — The week of the month on which a recurring session 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_day

      integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week on which the recurring monthly session is scheduled: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

    • repeat_interval

      integer — The session'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.

    • type

      integer, possible values: 1, 2, 3 — The type of recurring session: * `1` — Daily. * `2` — Weekly. * `3` — Monthly.

    • weekly_days

      string — A comma-separated list of the days of the week on which the recurring weekly session occurs: * `1` — Sunday * `2` — Monday * `3` — Tuesday * `4` — Wednesday * `5` — Thursday * `6` — Friday * `7` — Saturday

  • start_time

    string, format: date-time — The start time of the event in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ` this is a read only field.

  • tagline

    string — This field displays under the event detail page image.

  • tags

    array — The tags for the event.

    Items:

    string

  • timezone

    string — The timezone of the event. For a list of supported timezones and their formats, see our [timezone list](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).

Example:

{
  "name": "OpenAPI Conference Name",
  "description": "This event was created with the OpenAPI",
  "timezone": "America/Indianapolis",
  "event_type": "CONFERENCE",
  "recurrence": {
    "type": 3,
    "repeat_interval": 2,
    "weekly_days": "2",
    "monthly_days": 3,
    "monthly_week_day": 1,
    "end_times": 3,
    "end_date_time": "2022-06-03T20:51:00Z",
    "monthly_week": 3,
    "duration": 30
  },
  "access_level": "PRIVATE_RESTRICTED",
  "categories": [
    "Food and Drinks"
  ],
  "tags": [
    "Event tag1"
  ],
  "calendar": [
    {
      "start_time": "2022-06-28T20:00:00Z",
      "end_time": "2022-06-30T20:00:00Z"
    }
  ],
  "hub_id": "23asdfasdf3asdf",
  "contact_name": "user contact name",
  "lobby_start_time": "2022-06-03T20:51:00Z",
  "lobby_end_time": "2022-06-03T20:51:00Z",
  "blocked_countries": [
    "US"
  ],
  "attendance_type": "hybrid",
  "tagline": "Unlocking Innovation: Join Us for the Day of Insipiration and Insight!"
}

Responses

Status: 204 **HTTP Status Code:** `204` Event updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request. **Error Code:** `260210` <br> Past and cancelled events not editable. <br> **Error Code:** `260210` <br> Past and cancelled events not editable. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Event actions

  • Method: POST
  • Path: /zoom_events/events/{eventId}/event_actions
  • Tags: Events

Updates the event actions that the host performs for an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_basic:write,zoom_events_basic:write:admin

Granular Scopes: zoom_events:write:event,zoom_events:write:event:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • cancel_message

    string — The cancellation message. This field is mandatory if the event has any registrants.

  • duplicate_event

    object — This field contains duplicated event configuration. It is only required when the operation is duplicate.

  • operation

    string, possible values: "publish", "duplicate", "cancel" — The host actions for the event. * `Publish` &mdash; Publish the event. * `Duplicate` &mdash; Duplicate existing event. * `Cancel` &mdash; Cancel the published event.

Example:

{
  "operation": "publish",
  "cancel_message": "This event is canceled due to conflict with other events.",
  "duplicate_event": {
    "name": "OpenAPI Conference Name",
    "start_time": "2024-07-28T13:00:00Z",
    "timezone": "America/Indianapolis"
  }
}

Responses

Status: 201 The event operation processed successfully.
Content-Type: application/json
  • event_id

    string — The ID of the event will return a new duplicated event ID, if the operation is a duplicate event.

  • status

    string, possible values: "duplicated", "published", "cancelled" — Status of the event operation. *`Duplicated` &mdash; Duplicated the event from source event. *`Published` &mdash; Event successfully published. *`Cancelled` &mdash; Event successfully cancelled.

Example:

{
  "status": "Duplicated",
  "event_id": "kNqLPC6hSFiZ9NpgjA549w"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1001` <br> Invalid event ID. <br> **Error Code:** `1002` <br> Invalid duplicated event name. <br> **Error Code:** `1002` <br> Invalid duplicated event start time. <br> **Error Code:** `1003` <br> Invalid duplicate event timezone. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List exhibitors

  • Method: GET
  • Path: /zoom_events/events/{eventId}/exhibitors
  • Tags: Exhibitors

Lists all exhibitors associated with an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_exhibitors:read:admin,zoom_events_exhibitors:read

Granular Scopes: zoom_events:read:list_exhibitors,zoom_events:read:list_exhibitors:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` A list of exhibitors.
Content-Type: application/json
  • exhibitors

    array — The list of exhibitors for the event.

    Items:

    • associated_sessions

      array — The sessions associated with the exhibitor or sponsor. The value is an array of sessionIds.

      Items:

      string

    • contact_email

      string — The contact's email address.

    • contact_name

      string — The contact's full name.

    • description

      string — The exhibitor's description.

    • exhibitor_id

      string — The exhibitors's ID.

    • facebook_url

      string — The link to the Facebook page.

    • instagram_url

      string — The link to the Instagram profile.

    • is_sponsor

      boolean — The sponsorer's flag. It will be set to true by default.

    • linkedin_url

      string — The link to the LinkedIn profile.

    • name

      string — The exhibitors's name.

    • privacy_policy

      string — The privacy policy link.

    • tier_id

      string — The sponsor tier ID for a particular event. This field only applies to a sponsor.

    • twitter_url

      string — The link to the Twitter profile.

    • website

      string — The website URL.

    • youtube_url

      string — The link to the YouTube profile.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "exhibitors": [
    {
      "exhibitor_id": "kNqLPC6hSFiZ9NpgjA549w",
      "name": "Fletchie Doe",
      "is_sponsor": true,
      "tier_id": "4fgRIOXjQGmoH6raAzJf8g",
      "description": "",
      "associated_sessions": [
        "[QnjbUW7ORu2sjvjNfjf_zQ, iERy5vUPRW259kk9l0zNbQ]"
      ],
      "contact_name": "John Doe",
      "contact_email": "abc.def@email.com",
      "website": "https://mywebsite.com/example",
      "privacy_policy": "https://mywebsite.com/example",
      "linkedin_url": "https://linkedin.com/example",
      "twitter_url": "https://twitter.com/example",
      "youtube_url": "https://youtube.com/example",
      "instagram_url": "https://instagram.com/profile",
      "facebook_url": "https://facebook.com/profile"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> Operation is not supported for this event type. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3011` <br> User is not a host. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Create an exhibitor

  • Method: POST
  • Path: /zoom_events/events/{eventId}/exhibitors
  • Tags: Exhibitors

Creates an exhibitor for a multi-session and conference-type event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_exhibitors:write,zoom_events_exhibitors:write:admin

Granular Scopes: zoom_events:write:exhibitor,zoom_events:write:exhibitor:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • contact_email (required)

    string — The contact's email address.

  • contact_name (required)

    string — The contact's full name.

  • is_sponsor (required)

    boolean — The sponsorer's flag. It will be set to true by default.

  • name (required)

    string — The exhibitors's name.

  • tier_id (required)

    string — The sponsor tier ID for a particular event. This field only applies to a sponsor.

  • associated_sessions

    array — The sessions associated with the exhibitor or sponsor. The value is an array of `sessionIds`.

    Items:

    string

  • description

    string — The exhibitor's description.

  • facebook_url

    string — The link to the Facebook page.

  • instagram_url

    string — The link to the Instagram profile.

  • linkedin_url

    string — The link to the LinkedIn profile.

  • privacy_policy

    string — The privacy policy link.

  • twitter_url

    string — The link to the Twitter profile.

  • website

    string — The website's URL.

  • youtube_url

    string — The link to the YouTube profile.

Example:

{
  "name": "Fletchie Doe",
  "is_sponsor": true,
  "tier_id": "4fgRIOXjQGmoH6raAzJf8g",
  "description": "",
  "associated_sessions": [
    "[QnjbUW7ORu2sjvjNfjf_zQ, iERy5vUPRW259kk9l0zNbQ]"
  ],
  "contact_name": "John Doe",
  "contact_email": "abc.def@email.com",
  "website": "https://mywebsite.com/example",
  "privacy_policy": "https://mywebsite.com/example",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "instagram_url": "https://instagram.com/profile",
  "facebook_url": "https://facebook.com/profile"
}

Responses

Status: 201 **HTTP Status Code:** `201` Speakers returned.
Content-Type: application/json
  • associated_sessions

    array — The sessions associated with the exhibitor or sponsor. The value is an array of sessionIds.

    Items:

    string

  • contact_email

    string — The contact's email address.

  • contact_name

    string — The contact's full name.

  • description

    string — The exhibitor's description.

  • exhibitor_id

    string — The exhibitors's ID.

  • facebook_url

    string — The link to the Facebook page.

  • instagram_url

    string — The link to the Instagram profile.

  • is_sponsor

    boolean — The sponsorer's flag. It will be set to true by default.

  • linkedin_url

    string — The link to the LinkedIn profile.

  • name

    string — The exhibitors's name.

  • privacy_policy

    string — The privacy policy link.

  • tier_id

    string — The sponsor tier ID for a particular event. This field only applies to a sponsor.

  • twitter_url

    string — The link to the Twitter profile.

  • website

    string — The website's URL.

  • youtube_url

    string — The link to the YouTube profile.

Example:

{
  "exhibitor_id": "kNqLPC6hSFiZ9NpgjA549w",
  "name": "John Doe",
  "is_sponsor": true,
  "tier_id": "4fgRIOXjQGmoH6raAzJf8g",
  "description": "",
  "associated_sessions": [
    "[QnjbUW7ORu2sjvjNfjf_zQ, iERy5vUPRW259kk9l0zNbQ]"
  ],
  "contact_name": "John Doe",
  "contact_email": "abc.def@email.com",
  "website": "https://mywebsite.com/example",
  "privacy_policy": "https://mywebsite.com/example",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "instagram_url": "https://instagram.com/profile",
  "facebook_url": "https://facebook.com/profile"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> Operation is not supported for this event type. <br> **Error Code:** `1020` <br> Exhibitor ID is invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3011` <br> User is not a host. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2006` <br> Exhibitor not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get an exhibitor

  • Method: GET
  • Path: /zoom_events/events/{eventId}/exhibitors/{exhibitorId}
  • Tags: Exhibitors

Returns the exhibitor information of a specified event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_exhibitors:read,zoom_events_exhibitors:read:admin

Granular Scopes: zoom_events:read:exhibitor,zoom_events:read:exhibitor:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Event returned.
Content-Type: application/json
  • associated_sessions

    array — The sessions associated with the exhibitor or sponsor. The value is an array of `sessionIds`.

    Items:

    string

  • contact_email

    string — The contact's email address.

  • contact_name

    string — The contact's full name.

  • description

    string — The exhibitor's description.

  • exhibitor_id

    string — The exhibitors's ID.

  • facebook_url

    string — The link to the Facebook page.

  • instagram_url

    string — The link to the Instagram profile.

  • is_sponsor

    boolean — A sponsorer's flag. It will be set to true by default.

  • linkedin_url

    string — The link to the LinkedIn profile.

  • name

    string — The exhibitors's name.

  • privacy_policy

    string — The privacy policy link.

  • tier_id

    string — The sponsor tier ID for a particular event. This field only applies to a sponsor.

  • twitter_url

    string — The link to the Twitter profile.

  • website

    string — The website's URL.

  • youtube_url

    string — The link to the YouTube profile.

Example:

{
  "exhibitor_id": "kNqLPC6hSFiZ9NpgjA549w",
  "name": "Fletchie Doe",
  "is_sponsor": true,
  "tier_id": "4fgRIOXjQGmoH6raAzJf8g",
  "description": "",
  "associated_sessions": [
    "[QnjbUW7ORu2sjvjNfjf_zQ, iERy5vUPRW259kk9l0zNbQ]"
  ],
  "contact_name": "John Doe",
  "contact_email": "abc.def@email.com",
  "website": "https://mywebsite.com/example",
  "privacy_policy": "https://mywebsite.com/example",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "instagram_url": "https://instagram.com/profile",
  "facebook_url": "https://facebook.com/profile"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> Operation is not supported for this event type. <br> **Error Code:** `1020` <br> Exhibitor ID is invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3011` <br> User is not a host. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2006` <br> Exhibitor not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Delete an exhibitor

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/exhibitors/{exhibitorId}
  • Tags: Exhibitors

Deletes an exhibitor.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_exhibitors:write,zoom_events_exhibitors:write:admin

Granular Scopes: zoom_events:delete:exhibitor,zoom_events:delete:exhibitor:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Exhibitor deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> Operation is not supported for this event type. <br> **Error Code:** `1020` <br> Exhibitor ID is invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3011` <br> User is not a host. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2006` <br> Exhibitor not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update exhibitor for an event

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/exhibitors/{exhibitorId}
  • Tags: Exhibitors

Updates the exhibitor for an event ID. This operation is only allowed for a multi-session event type.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_exhibitors:write,zoom_events_exhibitors:write:admin

Granular Scopes: zoom_events:update:exhibitor,zoom_events:update:exhibitor:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • associated_sessions

    array — The sessions associated the exhibitor or sponsorer. The value is an array of `sessionIds`.

    Items:

    string

  • contact_email

    string — The contact email address.

  • contact_name

    string — The full name of the contact.

  • description

    string — The exhibitor's description.

  • facebook_url

    string — The link to the Facebook page.

  • instagram_url

    string — The link to the Instagram profile.

  • is_sponsor

    boolean — The sponsor's flag. It will be set to true by default.

  • linkedin_url

    string — The link to the LinkedIn profile.

  • name

    string — The exhibitors's name.

  • privacy_policy

    string — The privacy policy link.

  • sponsor_tier

    string — The sponsor tier ID for a particular event. This field only applies to sponsor.

  • twitter_url

    string — The link to the Twitter profile.

  • website

    string — The website URL.

  • youtube_url

    string — The link to the YouTube profile.

Example:

{
  "name": "Exhibitor name",
  "is_sponsor": true,
  "sponsor_tier": "4fgRIOXjQGmoH6raAzJf8g",
  "description": "",
  "associated_sessions": [
    "[QnjbUW7ORu2sjvjNfjf_zQ,iERy5vUPRW259kk9l0zNbQ]"
  ],
  "contact_name": "John Doe",
  "contact_email": "abc.def@email.com",
  "website": "https://mywebsite.com/example",
  "privacy_policy": "https://mywebsite.com/example",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "instagram_url": "https://instagram.com/profile",
  "facebook_url": "https://facebook.com/profile"
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated the exhibitor.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> Operation is not supported for this event type. <br> **Error Code:** `1020` <br> Exhibitor ID is invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3011` <br> User is not a host. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2006` <br> Exhibitor not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List sponsor tiers

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sponsor_tiers
  • Tags: Exhibitors

Lists all sponsor tiers associated with an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_exhibitors:read:admin,zoom_events_exhibitors:read

Granular Scopes: zoom_events:read:list_sponsor_tiers,zoom_events:read:list_sponsor_tiers:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` A list of sponsor_tiers.
Content-Type: application/json
  • sponsor_tiers

    array — The list of sponsor tiers for the event.

    Items:

    • description

      string — The sponsor tier description.

    • name

      string — The sponsor tier name after update.

    • tier_id

      string — The sponsor tier ID.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "sponsor_tiers": [
    {
      "tier_id": "CvY9Azb0QwGid19eI1IlyQ",
      "name": "Updated Sponsor Tier name",
      "description": "Platinum Sponsor Tier"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> Operation is not supported for this event type. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3011` <br> User is not a host. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Upload events file

  • Method: POST
  • Path: /zoom_events/files
  • Tags: Files

Uploads files to Zoom Webinars Plus & Events. Use this API to upload video recordings and supporting assets for Zoom Events Video Management (ZE VOD). When file_type=recording, the file is uploaded as a video in a single step and a video_id is returned. For other file_type values, the API uploads supporting files (e.g., captions, thumbnails, metadata) and returns a file_id. These files must be attached to a video in a second step using the Update Video Metadata API.

Note:

  • These file upload Open APIs are currently limited to supporting video recordings and their associated metadata files only (supported formats: .vtt, .jpeg/jpg, .png, .pdf, .txt, .ppt, .doc, .csv, xls). They do not support the ZE content library or other file upload use cases on the ZE platform at this time, though support for additional use cases may be added in the future.

  • Base URL: https://fileapi.zoom.us/v2/.

  • The caller must support HTTP 30x redirects.

  • The caller must retain the Authorization header when redirected to a different hostname.

  • Supported video formats: .mp4, .webm.

  • Supported transcription/captioning file formats: .vtt.

  • When your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_file:write,zoom_events_file:write:admin

Granular Scopes: zoom_events:write:file_upload,zoom_events:write:file_upload:admin

Request Body

Content-Type: multipart/form-data
  • file (required)

    string — The upload file, in binary format. You can only send a maximum of two gigabytes.

  • file_type

    string, possible values: "recording", "video", "other" — Specifies the category of file being uploaded. If no value is provided then it defaults to `recording` type. * `recording` — Recording video content file used for on-demand video channels content in Zoom Events video management feature (e.g., .mp4, .webm). * `video` — Regular video file used in contexts such as speaker biography or event logo etc (e.g., .mp4, .mov, .mkv). * `other` - Any other uncategorized file type (catch-all).

  • hub_id

    string — The hub ID. This is needed when uploading `recording` video files for Zoom Events video management feature (ZE VOD)

Example:

{
  "file": "wetrqwetqwertsadfasdgsfdgdfgsdfgsdfgdsf...",
  "hub_id": "kUoe5oPTRvGTbcfJmNwsnw",
  "file_type": "recording"
}

Responses

Status: 201 **HTTP Status Code:** `201` File successfully uploaded.
Content-Type: application/json
  • file_id

    string — The unique identifier for the uploaded file. This is a temporary ID, valid for 7 days from the time of upload. It is primarily used as a reference in other APIs, such as the Video Metadata API, where a file_id is required to associate files (e.g., thumbnails, transcripts, or resources) with a video.

  • video_id

    string — Video recording ID. If the uploaded file is of type `recording` then this field is returned.

Example:

{
  "file_id": "xBvggqyjQUal6TecwMlYwE",
  "video_id": "xBvggqyjQUal6TecwMlYwE"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Upload events multipart files

  • Method: POST
  • Path: /zoom_events/files/multipart
  • Tags: Files

Uploads a multipart file.

Note:

  • The base URL for this API is https://fileapi.zoom.us/v2/.
  • The caller must support HTTP 30x redirects.
  • The caller must retain the authorization header when redirected to a different hostname.
  • Once initiated, the multipart upload must complete within 7 days.
  • In general, when your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_file:write:admin,zoom_events_file:write

Granular Scopes: zoom_events:write:file_upload,zoom_events:write:file_upload:admin

Request Body

Content-Type: multipart/form-data
  • file (required)

    string — The upload file, in binary format. Each part must be at most 100 MB in size, and at least 5 MB in size, except the last part.

Example:

{
  "file": "Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVm14YU0xWnNXbUZrUjA1R1UyMTRVMkpIZHpGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0xNFlVMHhXbk5YYlVacVZtdGFNRlZ0ZUZOVWJVcEdZMFZ3VjJKVVJYZFpWRVpyVTBaT2NscEhjRk5XUjNob1ZtMXdUMVV4U1hoalJscFlZbFZhY2xWcVFURlNNVlY1VFZSU1ZrMXJjRWxhU0hCSFZqRmFSbUl6WkZkaGExcG9WakJhVDJOdFJraGhSazVzWWxob1dGWnRNWGRVTVZGM1RVaG9hbEpzY0ZsWmJGWmhZMnhXY1ZGVVJsTk5XRUpIVmpKNFQxWlhTa2RqUm14aFUwaENTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGSnJhR2hTYXpWeldXeG9iMWRHV25STlNHUnNVakJzTkZVeWRHdFhSMHBJVld4c1dtSkdXbWhaTW5oWFkxWktkRkpzVWxOaVIzY3hWa1phVTFVeFduSk5XRXBxVWxkNGFGVXdhRU5UUmxweFUydGFiRlpzV2xwWGExcDNZa2RGZWxGcmJGaFhTRUpJVmtSS1UxWXhXblZWYldoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxkSFVsWlVWbHBIVFRGU1ZtRkhPV2hpUlhCNldUQmFjMWR0U2tkWGJXaGFUVzVvV0ZreFdrZFdWa3B6VkdzMVYwMVZiekZXYlhCTFRrWlJlRmRzYUZSaVJuQlpWbXRXZDFZeGJISlhhM1JVVW14d2VGVnRNVWRWTWtwV1lrUmFXR0V4Y0hKWlZXUkdaVWRPU0U5V1pHaGhNSEJ2Vm10U1MxUXlVa2RUYmtwb1VqSm9WRmxZY0ZkbGJHUllaVWM1YVUxWFVraFdNalZUVkd4a1NGVnNXbFZXYkhCSVZGUkdVMVp0UmtoUFYyaHBVbGhDTmxkVVFtRmpNV1IwVTJ0a1dHSlhhR0ZVVnpWdlYwWnJlRmRyWkZkV2EzQjZWa2R6TVZZd01WWmlla1pYWWxoQ1MxUldaRVpsUm1SWldrVTFWMVpzY0ZWWFZsSkhaREZaZUdKSVNsaGhNMUpWVlcxNGQyVkdWblJOVldSV1RXdHdWMWxyVW1GWFIwVjRZMGhLV2xaWFVrZGFWV1JQVTBVNVYxcEhhR2hOU0VKMlZtMTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0VDFOSFJrZFJiRnBwVmtWVmQxWnRjRWRWTVZwMFVtdG9VRlp0YUZSVVZXaERUbFphU0dWSFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZteHdNMWxWV25kU2JIQkhWR3hTVTJFelFqVldSM2hoVkRKR1YxTnVVbEJXUlRWWVZGYzFiMWRHWkZkWGJFcHNVbTFTZWxsVldsTmhWa3AxVVc1b1YxWXphSEpXVkVaelZqRldjMWRzYUdsV1ZuQlFWa1phWVdReVZrZFdXR3hyVWtWS1dGUldXbmRsVm10M1YyNWtXRkl3VmpSWk1HaExWMnhhV0ZWclpHRldWMUpRVldwS1MxSXlSa2hoUlRWWFltdEtNbFp0TVRCVk1VMTRWVmhzVm1FeVVsWlpiWFIzWVVaV2RHVkZkR3BTYkhCNFZUSXdOV0pIU2toVmJHeGhWbGROTVZsV1ZYaFhSbFp5WVVaa1RtRnNXbFZXYTJRMFdWWktjMVJ1VG1oU2JGcFlXV3RhV2sxR1draGtSMFphVm0xU1NWWlhkRzloTVVwMFZXczVWMkZyV2t4Vk1uaHJWakZhZEZKdGNFNVdNVWwzVmxSS01HSXlSa2RUYms1VVlrZG9WbFpzV25kTk1WcHlWMjFHYWxack5YbFhhMXBQWVZaS2NtTkVXbGRoTWs0MFdYcEdWbVZXVG5WVGJGSnBWbFp3V1ZaR1l6RmlNV1JIWWtoR1ZHRXhjSE5WYlRGVFYyeGtjbFpVUmxkTlZuQjZXVEJhVjFkR1duTlRhMmhoVWtWYVlWcFZaRXRUVms1ellVZG9UazFWY0ZaV2JHTjRUa2RSZVZaclpGZGlSMUp2Vlc1d2MySXhVbGRYYm1Sc1lrWnNOVmt3Vm10V01ERkZVbXBHV2xaWGFFeFdNbmhoVjBaV2NscEhSbGROTW1oSlYxUkplRk14U1hsU2EyUm9VbXhLVkZac2FFTlRNVnAwVFZSQ1ZrMVZNVFJXYkdodlYwWmtTR0ZHYkZwaVdHaG9WbXBHYzJNeGNFaFBWbVJUWWxob1lWZFVRbUZoTWtwSVUydG9WbUpIZUdoV2JHUk9UVlpzVjFaWWFGaFNiRnA1V1ZWYWExUnRSbk5YYkZaWFlUSlJNRmxVUms5U01WcDFWR3hvYVZKc2NGbFhWM1J2VVRGT1YxZHJaRlpoTWxKWFZGWmFkMDFHVm5Sa1J6bFdVbXhzTlZsVmFFTldiVXBJWVVWU1ZXSllhSEpXYkZwSFpFWktkR05GTlZkTlZXd3pWbXhTUzAxSFJYaGFSV2hVWWtkb2IxVnFRbUZXYkZwMVkwWmthMkpHYkROV01qVkxZa1pLZEZWdWJGaGhNWEJ5Vm1wS1JtVnNSbkZYYkdSb1RXeEpNbFpHV21GWGJWRjNUVlprV0dKWGVITlpWRVozVjFaa1dHVkhPVkpOVmtwSVZsYzFTMWRIU2taalNFNVdZbFJHVkZwWGVITldiR1J6Vkcxb1YyRXpRWGhXVm1NeFlqRlplRmRZY0doVFJYQllWbXRXWVdWc1duRlNiR1JxVFZkU2VsbFZaSE5XTVZwMVVXeEdWMkV4Y0doWFZtUlNaVlphY2xwR1pGaFNNMmg1VmxkMFYxTXhaRWRWYkdSWVltMVNjMVp0TVRCTk1WbDVUbGQwV0ZKcmJETldiWEJUVjJzeFNHRkZlRmROYm1ob1ZqQmFWMk5zY0VoU2JHUlhUVlZ3VWxac1pIZFRNVTE0VTFoc1UyRXlhRzlWYkZKWFYwWnNkR1JGZEU1aVJuQXdWRlpTUTFack1WWk5WRkpYVm0xb2VsWnNXbXRUUjFaSFYyeHdWMUpXYjNwWFZsWmhWakpPVjFSdVVsQldiVkpVV1d0V2QxZHNXa2hsUjNCUFZqQldOVlV5ZEd0aGJFcFlZVVpvV21KR1NrTlVWbHBoVjBkTmVtRkdhRk5pUm5BMlYxWldZV0V4VW5OWFdHeG9Va1Z3V0ZSV1duZGhSbFkyVW10d2JGSnNTakZXYlhoTFlWWktjMk5HYkZkU2JFcElWWHBCTVdNeFpISmFSbHBvVFd4S1dGWkdXbUZrTURGSFZtNVNhMUo2YkZkVmJYaDNUVVpzVmxkc1RsZFdiSEJaV1ZWV1UxWnJNWFZoUjJoYVpXdGFNMVZzV2xka1IwNUdUbFprVGxaWGQzcFdiWGhUVXpBeFNGTlliRk5oTWxKVldXMXpNVlpXYkhKYVJ6bFhZa1p3ZWxZeU5XdFVhekZYWTBoc1YwMXFSa2haVjNoaFkyMU9SVkZ0UmxOV01VWXpWbTF3UzFNeVRuTlVia3BvVW0xU1ZGUlVTbTlpTVZweVZXdDBVMDFXYkRSV1J6VlhWbTFLUmxOc2FGWmlSa3BZVmpGYVlWSXhiRFpTYld4T1ZqRktTVll5ZEdGaE1XUklVMnRhYWxORk5WZFpiRkpIVmtad1dHVklUbGRpUjFKNlZrY3hiMVl5UlhwUldHaFhWbTFSTUZwRVJscGxWazV6WWtaYWFWSXlhRzlXVjNSWFdWWnNWMk5HV21GU1dGSlZWbTF6TVdWc2JGWmFSemxWWVhwR1Yxa3dXbUZXTWtwSVZHcFNWV0V5VWxOYVZscGhZMnh3UjFwSGJGTk5WWEF5Vm14ak1XUXlUWGxUV0doV1lrZFNXVmx0TVZOak1XeHlWMjVPVDFadGRETldiVEV3VmpBeFJWSnJXbFppV0VKSVZqSjRZVmRIUmtabFJtUk9ZbTFvYjFacVFtRldNazV6WTBWb1UySkhVazlVVnpGdlUyeFplRlZyY0d4U2F6RTBWVEZvYjJGc1NsaFZiV2hXWWtaS1dGWkVSbGRqTWtaR1ZHeFNUbFp1UVhkV1JscFRVVEZhY2sxV1drNVdSa3BZV1d0a2IyUnNXWGRYYlhSVVVqQmFTRmxWV25kaFZtUklZVWM1VjJKWVFraFpla3BPWlZaS2NsZHNWbWxTTVVwVlYxZDRiMkl4YkZkYVJsWlNZbFZhYjFSWGRGZE5NVkpYVjIxMGFHSkZjRWRWTWpGSFZsWmFWMk5IUm1GU1JWcDZWbXBHWVZkWFJrZGhSazVwVW01Qk1WWXhXbGRaVjBWNFZXNVNVMkpyTlZsWmExcGhWMFpzVlZOc1NrNVNiVkpZVmpKME1HRnJNVmRUYWtaWFVucEdkbFpVU2t0U01rNUhZa1prVTJKRmNFMVhWM0JIVkRGWmVGcElTbWhTTTJoVVZGVmFkMkZHV25STlNHaFdUVlZzTkZaWE5VOVhSMHBXVjJ4a1ZtSllhSHBVYkZwelZteGtkRTlXYUdsU01VcExWbFprTkdJeFduSk5WV1JxVWpKb1lWUldXbmRWUm10NFYyeGthazFYVW5sVWJGcHJWR3hhV0dRemNGZGlXR2hVVlhwQmVGTkdTbGxoUjBaVFZqSm9WbGRYZEd0aU1rbDRWbTVHVW1KVldsaFphMXAzVFVad1ZtRkhkRlZoZWtaWVdUQm9jMVl3TVhGU2EyaGFWak5vYUZreU1VOVNWa1owVW14T1YwMVZXWHBXYlRGM1V6Rk5lVlJ1VGxWaWEzQnZWVzB4VTFaR1VsVlRiVGxwVFZad2VWWlhkREJWTURGWFlrUlNWMUo2VmxoV2JURkxVbXhPYzJGR1dtbFNhM0JaVm1wR1lWbFdTWGhpUkZwVFlsZDRUMVpxUmt0VFZtUllaRWRHVjAxV1ducFhhMVp2WVVaS2MxTnNXbGRpVkVaVVZtdGFkMWRIVmtsVWJHUnBVakZLTmxaclkzaGlNVlY0VjJ0YVdHRnNjRmhXYTFaeVpVWnNjVkpzY0d4U2JWSmFXVEJhWVdGV1NYbGhSbkJYWWxSRk1GcEVSbk5XTWs1SFYyeG9hVmRHU25sV2JURXdaREpXYzFkdVVrNVhSVFZZVkZaV2MwNXNiRlpWYkdSWFRVUkdXVlpXYUd0WFJscDBWV3hPWVZac2NHaFpNbmgzVWpGd1NHSkhiRk5YUlVreFZtMTRhMDFHV1hoVVdHeFVWMGRvY0ZWdE1UUmpWbFp6V2taT2FrMVdjREJhVlZZd1lrZEtSMk5FUWxWV1ZrcFlWakJhU21ReVRrWmhSbkJPVW01Q01sWnFTbnBsUms1SVVtdGFiRkp0VWs5WmJURnZZakZhY1ZGdFJsZE5helY2V1RCV2IxVXlTa2hWYXpsVlZucEdkbFV5ZUZwbFJsWnlZMGQ0VTJGNlJUQldWRVp2WWpKR2MxTnNhRlppVjJoWFdXeG9UbVZHV1hkWGJIQnJUVlp3ZVZwRlZURmhWa3AxVVZoa1dGWkZTbGhaVkVacll6RmtXVnBHWkdoaVJYQlpWMWQwYTJJeVVuTlhXR1JZWWxoU1ZWVnFRbUZUUmxsNVpVaGthRlp0VWtsWlZXTTFWakpLVlZKVVFscGxhM0JRV1hwR2QxTldUblJrUms1T1RVVndWbFl4WkRCWlYxRjNUbFZrV0dKSGFFOVdhMVpMVkRGV2RHVklUazlTYkd3MVZHeFZOV0ZIU2taalJteGFWbFp3ZGxacVNrZGphelZYVld4a1UxWnVRalpXYlhoaFVqRmtXRkpyWkZWaVIxSnZWRlJDU2sxc1duUmtSM1JQVW0xNFdGWnNhSE5XUjBWNFkwWnNWMDFIYUVSV01GcGhZekZrZFZwR1RrNVdhMWt3Vm1wS01GUXhXblJUYTFwVVlrWndWbFpzV2tkTk1WWkhVbFJzVVZWVU1Eaz0="
}

Responses

Status: 201 **HTTP Status Code:** `201 or 204` Multipart file part uploaded successfully.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Initiate and complete the multipart file upload

  • Method: POST
  • Path: /zoom_events/files/multipart/upload
  • Tags: Files

Uploads files to Zoom Events using a multipart API Use this API when the file is large, typically when the size reaches 2 GB. Use this API to upload video recordings and supporting assets for Zoom Events Video Management (ZE VOD). When file_type=recording, the file is uploaded as a video in a single step and a video_id is returned. For other file_type values, the API uploads supporting files (e.g., captions, thumbnails, metadata) and returns a file_id. These files must be attached to a video in a second step using the Update Video Metadata API.

Note:

  • These file upload Open APIs are currently limited to supporting video recordings and their associated metadata files only (supported formats: .vtt, .jpeg/jpg, .png, .pdf, .txt, .ppt, .doc, .csv, xls). They do not support the ZE content library or other file upload use cases on the ZE platform at this time, though support for additional use cases may be added in the future.

  • The base URL for this API is https://fileapi.zoom.us/v2/.

  • The caller must support HTTP 30x redirects.

  • The caller must retain the authorization header when redirected to a different hostname.

  • Once initiated, the multipart upload must complete within 7 days.

  • Supported video formats: .mp4, .webm.

  • Supported transcription/captioning file formats: .vtt.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_file:write:admin,zoom_events_file:write

Granular Scopes: zoom_events:write:file_upload,zoom_events:write:file_upload:admin

Request Body

Content-Type: application/json

One of:

  • file_name (required)

    string — The file name.

  • length (required)

    integer — The file size in bytes.

  • method (required)

    string, possible values: "CreateMultipartUpload" — The method to upload events: * `CreateMultipartUpload` — Create a multipart upload.

  • file_type

    string, possible values: "recording", "video", "other" — Specifies the category of file being uploaded. If no value is provided then it defaults to `recording` type. * `recording` — Recording video content file used for on-demand video channels content in Zoom Events video management feature (e.g., .mp4, .webm). * `video` — Regular video file used in contexts such as speaker biography or event logo etc (e.g., .mp4, .mov, .mkv). * `other` - Any other uncategorized file type (catch-all).

  • hub_id

    string — The hub ID. This is needed when uploading `recording` video files for Zoom Events video management feature (ZE VOD)

  • method (required)

    string, possible values: "CompleteMultipartUpload" — The method to upload events: `CompleteMultipartUpload` — complete a multipart upload.

  • part_count (required)

    integer — The total number of parts.

  • upload_id (required)

    string — The file upload ID.

Example:

{
  "method": "CreateMultipartUpload",
  "file_name": "File name",
  "length": 1001,
  "hub_id": "kUoe5oPTRvGTbcfJmNwsnw",
  "file_type": "recording"
}

Responses

Status: 200 **Status Code:** `200` Multipart upload initiated or completed successfully.
Content-Type: application/json

One of:

  • upload_id

    string — The upload ID. Return this field if you pass the `CreateMultipartUpload` value for the `method` field. **Note:** Use this upload ID to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests. You also include this upload ID in the final request to complete the multipart upload request.

  • file_id

    string — The unique identifier for the uploaded file. This is a temporary ID, valid for 7 days from the time of upload. It is primarily used as a reference in other APIs, such as the Video Metadata API, where a file_id is required to associate files (e.g., thumbnails, transcripts, or resources) with a video. Returns this field if you pass the `CompleteMultipartUpload` value for the `method` field.

  • video_id

    string — Video recording ID. If the uploaded file is of type `recording` then this field is returned.

Example:

{
  "upload_id": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List hubs

  • Method: GET
  • Path: /zoom_events/hubs
  • Tags: Hubs

Retrieves a list of event hubs.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_hubs:read,zoom_events_hubs:read:admin

Granular Scopes: zoom_events:read:list_hubs,zoom_events:read:list_hubs:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` A list of hubs.
Content-Type: application/json
  • hubs

    array

    Items:

    • access_level

      string, possible values: "INTERNAL", "PUBLIC" — The access level of the hub. * `INTERNAL` - internal organization * `PUBLIC` - the public hub

    • auto_list_events

      boolean — A list of submitted hub events.

    • description

      string — The description of the hub.

    • hidden_hub

      boolean — This hub will be hidden from the Zoom Events details page and from the hub listings view for attendees.

    • hub_active

      boolean — This hub will be active to create the Zoom Events.

    • hub_id

      string — The ID of the hub.

    • landing_hub

      boolean — Whether this Hub is the landing Hub

    • name

      string — The name of the hub.

    • public_url

      string — The public URL of the hub.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "hubs": [
    {
      "hub_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "access_level": "PUBLIC",
      "name": "Example Hub Name",
      "description": "Test hub",
      "public_url": "https://example.zoom.us/myhub",
      "hidden_hub": true,
      "hub_active": true,
      "auto_list_events": true,
      "landing_hub": true
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 404 **HTTP Status Code:** `404` <br> Not Found Hub not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List hub Hosts

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/hosts
  • Tags: Hubs

Retrieves a list of hub hosts.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus/Events license

Scopes: zoom_events_hubs:read:admin,zoom_events_hubs:read

Granular Scopes: zoom_events:read:list_hub_hosts,zoom_events:read:list_hub_hosts:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` A list of hub hosts.
Content-Type: application/json
  • hosts

    array

    Items:

    • email

      string — The email address of the hub host.

    • host_user_id

      string — The user ID of the hub host.

  • next_page_token

    string — The next page token.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "hosts": [
    {
      "host_user_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "email": "host@example.com"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Creates a new hub host

  • Method: POST
  • Path: /zoom_events/hubs/{hubId}/hosts
  • Tags: Hubs

Add a host to the hub.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_hub:write,zoom_events_hub:write:admin

Granular Scopes: zoom_events:write:hub_host,zoom_events:write:hub_host:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • email

    string — The email address of the host.

Example:

{
  "email": "email@example.com"
}

Responses

Status: 201 The hub host created successfully.
Content-Type: application/json
  • host_user_id

    string — The hub host ID.

Example:

{
  "host_user_id": "di78aUD6RwmuRQY3WlK6VA"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove hub host

  • Method: DELETE
  • Path: /zoom_events/hubs/{hubId}/hosts/{hostUserId}
  • Tags: Hubs

Delete a host from the hub.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_hub:write,zoom_events_hub:write:admin

Granular Scopes: zoom_events:delete:hub_host,zoom_events:delete:hub_host:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` The hub host deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List hub videos

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/videos
  • Tags: Hubs

Lists the video/recording resources of a hub.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_hubs:read,zoom_events_hubs:read:admin

Granular Scopes: zoom_events:read:list_hub_videos,zoom_events:read:list_hub_videos:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Hub video information.
Content-Type: application/json
  • next_page_token

    string — The next page token.

  • total_records

    number — The total number of records in this page.

  • videos

    array — Hub videos.

    Items:

    All of:

    • duration

      integer — The video duration in minutes

    • name

      string — The name of the video resource.

    • play_link

      string — Video Play Link

    • source_event_id

      string — The ID of the Zoom Event, this video belongs to. If this is not associated to any Zoom Event then it is blank.

    • source_type

      string, possible values: "RECORDING", "UPLOAD", "FOLDER" — The video source type: Options: * `RECORDING` - Recording file. * `UPLOAD` - Manually uploaded file. * `FOLDER` - This is a folder for organizing videos.

    • status

      string, possible values: "processing", "done", "unknown" — The video status: Options: * `processing` - Video is in processing status and not available for viewing yet. * `done` - Processing complete and available for viewing. * `unknown` - Processing status is unknown.

    • video_id

      string — The Video ID.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "videos": [
    {
      "video_id": "iso9Dllddp39dagjLj9j",
      "name": "My Recording1",
      "source_type": "RECORDING",
      "source_event_id": "eabco9Dllddp39dagjLj9j",
      "status": "processing",
      "play_link": "https://abc/recording/unehd6TtTLuTN40owCOqqK",
      "duration": 30
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get attendee engagement data

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/attendee_insights/engagement
  • Tags: Insights

Retrieves engagement data for a specific attendee in a Zoom Events hub.

Scoping

  • Omit event_id → hub-scoped (aggregated across all events in the hub)
  • Provide event_id → event-scoped (single event within the hub)

Engagement types

  • Certification — Certification completion status and progress

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_insights:read,zoom_events_insights:read:admin

Granular Scopes: zoom_events:read:attendee_engagement,zoom_events:read:attendee_engagement:admin

Rate Limit Label: LIGHT

Responses

Status: 200 Engagement data retrieved successfully.
Content-Type: application/json
  • data

    array — Array of certification engagement objects.

    Items:

    • certification_status

      string, possible values: "completed", "in_progress", "not_started" — The certification status.

    • certification_time

      string, format: date-time — The timestamp when the certification was earned, in UTC format (`yyyy-MM-dd'T'HH:mm:ss'Z'`). Returns `null` if not yet completed.

    • certification_type

      string, possible values: "full_credit", "partial_credit" — The certification model. `full_credit` requires all criteria to be met; `partial_credit` awards incremental levels.

    • content_downloads

      integer — The actual number of content downloads.

    • content_downloads_required

      integer — The required number of content downloads for certification.

    • credits_earned

      number, format: float — The number of credits or CEUs earned.

    • current_level

      integer — The current completion level for partial credit certifications.

    • event_id

      string — The event ID.

    • event_name

      string — The event name.

    • meeting_seconds

      integer — The actual meeting attendance duration in seconds.

    • minutes_watched

      integer — The actual number of minutes the attendee watched.

    • minutes_watched_required

      integer — The required number of minutes to earn certification.

    • polls_answered

      integer — The actual number of polls answered.

    • polls_answered_required

      integer — The required number of polls answered for certification.

    • session_id

      string — The session ID.

    • session_name

      string — The session name.

    • total_levels

      integer — The total number of levels required for full certification.

  • next_page_token

    string — The next page token paginates through a large set results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 15,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "data": [
    {
      "event_id": "JNB2TQDLQLycFjdf9MIicQ",
      "event_name": "Event ABC",
      "session_id": "asdfTQDLQLycFjdf9MIicQ",
      "session_name": "Session A",
      "certification_type": "full_credit",
      "certification_status": "completed",
      "certification_time": "2026-02-27T19:05:00Z",
      "current_level": 3,
      "total_levels": 3,
      "credits_earned": 1.5,
      "minutes_watched": 45,
      "minutes_watched_required": 40,
      "polls_answered": 3,
      "polls_answered_required": 2,
      "content_downloads": 2,
      "content_downloads_required": 1,
      "meeting_seconds": 3517
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List registrants

  • Method: GET
  • Path: /zoom_events/events/{eventId}/registrants
  • Tags: Registrants

Retrieves event registrants.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_registrants:read,zoom_events_registrants:read:admin

Granular Scopes: zoom_events:read:list_registrants,zoom_events:read:list_registrants:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of event registrants.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a set of large results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • registrants

    array — Registrants

    Items:

    • email

      string — The email address of the registrant.

    • registration_status

      string, possible values: "REGISTERED", "INVITED", "GIFTED", "DIRECT_JOIN", "PRE_REGISTERED", "PRE_REGISTER_INVITED" — Registration status.

    • tickets

      array — Tickets list.

      Items:

      • authentication_method

        string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication* `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

      • qr_code_url

        string — The URL generated after scanning the e-badge QR code image. This field is applicable only for hybrid or in-person event types.

      • role

        string, possible values: "ATTENDEE", "SPEAKER", "ALTERNATIVE_HOST", "PANELIST", "INTERPRETER", "SPONSOR", "EXPO_BOOTH_OWNER", "MODERATOR", "GUEST", "ORIGINAL_HOST" — Ticket Role.

      • ticket_id

        string — Ticket ID.

  • total_records

    number — The total number of registrants.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "registrants": [
    {
      "email": "email@zoom.us",
      "registration_status": "INVITED",
      "tickets": [
        {
          "ticket_id": "1234567",
          "role": "INTERPRETER",
          "authentication_method": "no_auth",
          "qr_code_url": "https://zoom.us/qr?t=9&ein=AkhZhct94cUqiDfRumcpPf0loI-QAOt5T9yh_vGRn2-BkPDmjfze~AyTxY2Fs9Nw6ADEk-edYyZIyGIzxVAI_v-Mci1S-KeyRhbZOG3-4kWVpYqSxJK-2Uls-j_GSHh9L7Ku_zZta-MDu2NCA1Rg"
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List session attendees

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/attendees
  • Tags: Registrants

Retrieves session attendees.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_registrants:read,zoom_events_registrants:read:admin

Granular Scopes: zoom_events:read:list_session_attendees,zoom_events:read:list_session_attendees:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of requested session attendees.
Content-Type: application/json
  • attendees

    array — Attendees

    Items:

    • authentication_method

      string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication* `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

    • email

      string — The email address of the attendee.

  • next_page_token

    string — The next page token paginates through a set of large results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of attendees.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "attendees": [
    {
      "email": "email@zoom.us",
      "authentication_method": "no_auth"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get chat transcripts report

  • Method: GET
  • Path: /zoom_events/events/{eventId}/reports/chat_transcripts
  • Tags: Reports

Retrieves the chat transcripts report for an event.
At present, this API returns data only for users who have enabled the meeting and webinar cloud archiving feature.
The meeting and webinar cloud archiving feature determines whether users can download in-meeting, private 1:1, and private group chats.
Below, chat-type data is returned based on the event type and the archiving feature.

  • If cloud archiving is enabled:
    For multi-session events - Lobby Chat, Private Lobby Chat, Event Staff Chat, Exhibitor Chat, Expo Booth Chat, Private 1: 1 Chat, Private Group Chat, In-meeting and webinar Chat .
    For single session & recurring events - In-meeting or webinar chat.
  • If cloud archiving is not enabled : For multi-session events - Lobby Chat, Private Lobby Chat, Event Staff Chat, Exhibitor Chat, Expo Booth Chat.
    For single session & recurring events - None.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_reports:read,zoom_events_reports:read:admin

Granular Scopes: zoom_events:read:chat_transcripts,zoom_events:read:chat_transcripts:admin

Rate Limit Label: HEAVY

Responses

Status: 200 Chat transcription.
Content-Type: application/json
  • chat_transcripts

    array — The chat transcripts array.

    Items:

    • chat_channel_id

      string — Chat channel ID

    • chat_name

      string — The name of the chat.

    • chat_type

      string, possible values: "Lobby Chat", "Private Lobby Chat", "Event Staff Chat", "Exhibitor Chat", "Expo Booth Chat", "Private 1:1 Chat", "Private Group Chat", "In-meeting/webinar Chat" — The type of the chat. * `Lobby Chat` * `Private Lobby Chat` * `Event Staff Chat` * `Exhibitor Chat` * `Expo Booth Chat` * `Private 1:1 Chat` * `Private Group Chat` * `In-meeting/webinar Chat`

    • message

      string — The content of the message.

    • message_id

      string — Message ID: Unique Identifier of the chat message.

    • message_time

      string — The message sent time in UTC time. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

    • reset_by_whom

      string — The name of the user who did the chat reset. A host can reset/clear the chat.

    • reset_time

      string — The chat reset time in UTC time. A host can reset/clear the chat. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

    • sender

      string — The name of the message sender.

    • sender_email

      string — The email of the message sender.

  • next_page_token

    string — Use the next page token to paginate through a set of large results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.

  • total_records

    number — The total number of records in the response.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "chat_transcripts": [
    {
      "chat_type": "Lobby Chat",
      "chat_name": "Lobby Chat - 1",
      "sender": "James Brown",
      "sender_email": "james.brown@zoomtest.us",
      "message_time": "2023-08-22T02:58:56Z",
      "message": "Hi, How are you doing?",
      "reset_time": "2023-08-22T02:58:56Z",
      "reset_by_whom": "Tom Brown",
      "chat_channel_id": "asfasdfasdf12312",
      "message_id": "d1231241sfdsdfs"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `5001` <br> Chat messages are not available for download now. Please try again later. <br>

Get custom report

  • Method: GET
  • Path: /zoom_events/events/{eventId}/reports/custom_reports/{customReportId}
  • Tags: Reports

Retrieves data for the custom report for the given report ID.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_reports:read,zoom_events_reports:read:admin

Granular Scopes: zoom_events:read:custom_report,zoom_events:read:custom_report:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200`<br> List of requested event registration details.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • registrants

    array — Registrants array.

    Items:

    • country

      string — The country/region of the attendee.

    • display_name

      string — The registrant display name.

    • email

      string — The email address of the registrant.

    • event_attendance

      string, possible values: "attended", "absent" — The registrant's event attendance (Live or lobby) status. * `attended - Attended` * `absent - Not attended `

    • first_name

      string — The registrant first name.

    • last_name

      string — The registrant last name.

    • lobby_attendance

      string, possible values: "attended", "absent" — The registrant's lobby attendance status. * `attended - Attended` * `absent - Not attended `

    • opt_in_marketing

      integer, possible values: 1, 0 — The marketing opt in flag. * `1. Opted for marketing` * `0 - Not opted for marketing`

    • polls_count

      integer — The total number of polls taken.

    • registration_date

      string, format: date-time — The registrantion date in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

    • resource_link_engagement

      array — The call to action (CTA) resource link engagement details.

      Items:

      • file_id

        string — The CTA resource ID.

      • name

        string — The CTA resource name.

    • sessions

      array — The user's session engagement details.

      Items:

      • bookmarked

        boolean — The session bookmarked status. * true * false

      • duration_in_session

        number — The number of minutes spent in the session.

      • in_session_resource_download

        array — The resources downloaded during the session, under resources.

        Items:

        • file_id

          string — The resource fileID.

        • name

          string — The resource file name.

      • live_streaming_view

        boolean — The live stream view status. * true * false

      • live_streaming_view_duration

        number — The live streaming view duration in minutes.

      • material_download

        array — The session materials downloaded from the event lobby.

        Items:

        • file_id

          string — The material fileID.

        • name

          string — The material file name.

      • recording_view

        boolean — The recording view status. * true * false

      • recording_view_duration

        number — The recording view duration in minutes.

      • session_attendance

        string, possible values: "absent", "attended" — The session attendance status. * attended * absent

      • session_id

        string — The session ID.

      • session_name

        string — The session name.

    • surveys_count

      integer — The total number of surveys taken.

    • tickets

      array — The ticket details.

      Items:

      • authentication_method

        string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication* `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

      • questions

        array — The question and answer array.

        Items:

        • answer

          string — The question answer.

        • title

          string — The question title.

      • registration_method

        string, possible values: "self-registration", "self-registration_account", "pre_registration", "group_join_link", "other" — The registration method. * `self-registration` self registration with email * `self-registration_account` self registration with zoom account `pre_registration` Host pre-registration * `group_join_link` Registration with group join link * `Other`

      • registration_source

        string — The source of registration or the source tracking information.

      • ticket_id

        string — The ticket ID.

      • ticket_type_id

        string — The ticket type ID.

      • ticket_type_name

        string — The ticket type name.

  • total_records

    integer — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "registrants": [
    {
      "display_name": "First Last",
      "first_name": "First",
      "last_name": "Last",
      "email": "email@zoom.us",
      "opt_in_marketing": 1,
      "registration_date": "2025-03-24T22:30:00Z",
      "event_attendance": "attended",
      "country": "US",
      "lobby_attendance": "attended",
      "surveys_count": 0,
      "polls_count": 0,
      "resource_link_engagement": [
        {
          "file_id": "Pn9rBZgJQzi6RXUABmWcqB",
          "name": "resource link A"
        }
      ],
      "sessions": [
        {
          "session_id": "Pn9rBZgJQzi6RXUABmWcqB",
          "session_name": "Session one",
          "session_attendance": "attended",
          "duration_in_session": 20,
          "bookmarked": true,
          "material_download": [
            {
              "file_id": "Pn9rBZgJQzi6RXUABmWcqB",
              "name": "session-file.pdf"
            }
          ],
          "in_session_resource_download": [
            {
              "file_id": "Pn9rBZgJQzi6RXUABmWcqB",
              "name": "in-session-file.pdf"
            }
          ],
          "recording_view": false,
          "recording_view_duration": 20,
          "live_streaming_view": false,
          "live_streaming_view_duration": 30
        }
      ],
      "tickets": [
        {
          "ticket_type_name": "General Ticket",
          "ticket_type_id": "Fn2rBZgJQzi6VIU--uWqnA",
          "ticket_id": "Fn2rBZgJQzi6VIUABuWcqB",
          "registration_source": "Pardot",
          "registration_method": "self-registration",
          "authentication_method": "no_auth",
          "questions": [
            {
              "title": "First Name",
              "answer": "Michael"
            }
          ]
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `260801` <br> Custom report template not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](/docs/api/rate-limits/).

Get event attendance (Live or Lobby) report

  • Method: GET
  • Path: /zoom_events/events/{eventId}/reports/event_attendance
  • Tags: Reports

Retrieves the event attendance (live or lobby) report for the event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_reports:read,zoom_events_reports:read:admin

Granular Scopes: zoom_events:read:event_attendance,zoom_events:read:event_attendance:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200`<br> List of requested event attendees.
Content-Type: application/json
  • attendees

    array — Attendee array.

    Items:

    • attendance_type

      array — The attendee's attendance type array.

      Items:

      string, possible values: "hybrid", "virtual", "in_person" — The registrant's attendance type. * `hybrid` - Hybrid attendance * `virtual` - Virtual attendance * `in_person` - In-person attendance

    • connection_made

      number — The number of networking connections made.

    • display_name

      string — The registrant's display name.

    • email

      string — The email address of the attendee.

    • event_attendance

      string, possible values: "attended", "absent" — The registrant's event attendance (live or lobby) status. * `attended` - Attended * `absent` - Not attended

    • first_name

      string — The registrant's first name.

    • last_modified_date

      string, format: date-time — The last modified date of the attendee report data.

    • last_name

      string — The registrant's last name.

    • lobby_attendance

      string, possible values: "attended", "absent" — The registrant's lobby attendance status. * `attended` - Attended * `absent` - Not attended

    • lobby_chat_sent

      number — The number of lobby chat messages sent.

    • marketing_consent_prechecked

      number, possible values: 1, 0, -1 — Whether the marketing consent is pre-checked. * `1` - Pre-checked * `0` - Not pre-checked * `-1` - Not available

    • number_of_tickets

      number — The total number of tickets.

    • opt_in_marketing

      number, possible values: 1, 0 — The marketing opt-in flag. * `1` - Opted for marketing * `0` - Not opted for marketing

    • personal_chats

      number — The number of personal chats.

    • profile_created

      boolean — Whether the attendee profile was created. * `true` - Created * `false` - Not created

    • role

      string — The attendee's role.

    • session_attendance

      array — The user session attendance status array.

      Items:

      • chat_messages_sent

        number — The number of chat messages sent.

      • duration_spent_in_session

        number — The number of minutes spent in the session.

      • live_streaming_view

        boolean — The live stream view status. * `true` - Viewed * `false` - Not viewed

      • live_streaming_view_duration

        number — The live streaming view duration in minutes.

      • material_download

        boolean — The material download status. * `true` - Downloaded * `false` - Not downloaded

      • recording_view

        boolean — The recording view status. * `true` - Viewed * `false` - Not viewed

      • recording_view_duration

        number — The recording view duration in minutes.

      • session_attendance

        string, possible values: "absent", "attended" — The session attendance status. * `attended` - Attended * `absent` - Absent

      • session_bookmarked

        boolean — Whether the user bookmarked the session. * `true` - Bookmarked * `false` - Not bookmarked

      • session_exit_time

        string, format: date-time — The participant's exit time from the session.

      • session_id

        string — The session identifier.

      • session_join_time

        string, format: date-time — The participant's join time for the session.

      • session_name

        string — The session name.

      • session_reserved

        boolean — Whether the user reserved the session. * `true` - Reserved * `false` - Not reserved

    • survey_taken

      number — The number of surveys taken.

    • tickets

      array — The attendee's tickets.

      Items:

      • authentication_method

        string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join", "fast_join", "vanity_url" — The event authentication method for the ticket: * `zoom_account` - Zoom account holder * `zoom_account_otp` - Zoom account holder with OTP * `corporate_idp` - Corporate IDP * `no_auth` - No authentication * `email_opt` - Registration using email OTP verification * `zoom_account_otp_at_join` - Pre-registration using email OTP verification * `fast_join` - Fast join without upfront authentication * `vanity_url` - Join with vanity URL

      • external_ticket_id

        string — A set of unique alphanumeric characters that references the external ticket ID.

      • questions

        array — The question and answer array.

        Items:

        • answer

          string — The question answer.

        • title

          string — The question title.

      • ticket_id

        string — The ticket's identifier.

      • ticket_type_id

        string — The ticket type's identifier.

      • ticket_type_name

        string — The ticket type's name.

    • total_sessions_joined

      number — The total number of sessions joined.

  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "attendees": [
    {
      "display_name": "First Last",
      "first_name": "First",
      "last_name": "Last",
      "email": "email@zoom.us",
      "opt_in_marketing": 1,
      "marketing_consent_prechecked": 1,
      "event_attendance": "attended",
      "attendance_type": [
        "hybrid"
      ],
      "lobby_attendance": "attended",
      "lobby_chat_sent": 2,
      "survey_taken": 0,
      "total_sessions_joined": 0,
      "number_of_tickets": 0,
      "role": "General",
      "tickets": [
        {
          "ticket_type_name": "General Ticket",
          "ticket_type_id": "Fn2rBZgJQzi6VIU--uWqnA",
          "external_ticket_id": "iso9Djldop39dagjLj3j",
          "ticket_id": "Fn2rBZgJQzi6VIUABuWcqB",
          "authentication_method": "no_auth",
          "questions": [
            {
              "title": "First Name",
              "answer": "Michael"
            }
          ]
        }
      ],
      "session_attendance": [
        {
          "session_id": "Pn9rBZgJQzi6RXUABmWcqB",
          "session_name": "Session one",
          "session_attendance": "attended",
          "duration_spent_in_session": 20,
          "chat_messages_sent": 20,
          "material_download": true,
          "recording_view": false,
          "live_streaming_view": false,
          "recording_view_duration": 20,
          "live_streaming_view_duration": 30,
          "session_join_time": "2022-03-24T22:30:00Z",
          "session_exit_time": "2022-03-24T22:30:00Z",
          "session_reserved": false,
          "session_bookmarked": false
        }
      ],
      "profile_created": false,
      "personal_chats": 0,
      "connection_made": 20,
      "last_modified_date": "2025-08-24T22:30:00Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get session attendance report

  • Method: GET
  • Path: /zoom_events/events/{eventId}/reports/sessions/{sessionId}/attendance
  • Tags: Reports

Retrieves a session attendance report.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_reports:read,zoom_events_reports:read:admin

Granular Scopes: zoom_events:read:session_attendance,zoom_events:read:session_attendance:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200`<br> List of requested session attendees.
Content-Type: application/json
  • attendees

    array — Attendee array.

    Items:

    • attendance_type

      string, possible values: "hybrid", "virtual", "qr_code_scan" — The event attendance type

    • authentication_method

      string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication* `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

    • chat_messages_sent

      number — The number of chat messages sent.

    • check_in_method

      string, possible values: "self check-in (virtual)", "api", "manual", "host_manual", "ebadge_scanning", "virtual" — The Check-in Method for the session

    • display_name

      string — The attendee's display name.

    • duration_spent_in_session

      number — The number of minutes spent in the session.

    • email

      string — The email address of the attendee.

    • end_time

      string, format: date-time — The user session joined time

    • first_name

      string — The attendee's first name.

    • last_name

      string — The attendee's last name.

    • live_streaming_view

      boolean — The live stream view status. * true * false

    • live_streaming_view_duration

      number — The live streaming view duration in minutes.

    • marketing_consent_prechecked

      number, possible values: 1, 0, -1 — Whether the marketing consent is pre-checked. * `1 - pre-checked` * `0 - Not pre-checked ` * `-1 - Not available `

    • material_download

      boolean — The material downloaded status. * true * false

    • opt_in_marketing

      number, possible values: 1, 0 — The marketing opt-in flag. * `1. Opted for marketing` * `0 - Not opted for marketing`

    • recording_view

      boolean — The recording view status. * true * false

    • recording_view_duration

      number — The recording view duration in minutes.

    • role_name

      string — The attendee's role.

    • session_attendance

      string, possible values: "yes", "no" — The user attended the session or not

    • session_id

      string — The Session ID.

    • start_time

      string, format: date-time — The user session joined time

    • tickets

      array — The attendee's tickets.

      Items:

      • questions

        array — The question and answer array.

        Items:

        • answer

          string — The question answer.

        • title

          string — The question title.

      • ticket_id

        string — The ticket's identifier.

      • ticket_type_name

        string — The ticket type's name.

  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "attendees": [
    {
      "session_id": "IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2",
      "first_name": "First",
      "last_name": "Last",
      "email": "email@zoom.us",
      "display_name": "First Last",
      "authentication_method": "no_auth",
      "marketing_consent_prechecked": 1,
      "opt_in_marketing": 1,
      "check_in_method": "self check-in (virtual)",
      "attendance_type": "hybrid",
      "session_attendance": "yes",
      "start_time": "2024-07-28T13:00:00Z",
      "end_time": "2024-07-28T13:00:00Z",
      "duration_spent_in_session": 20,
      "chat_messages_sent": 20,
      "material_download": true,
      "recording_view": false,
      "live_streaming_view": false,
      "recording_view_duration": 20,
      "live_streaming_view_duration": 30,
      "role_name": "General",
      "tickets": [
        {
          "ticket_type_name": "General Ticket",
          "ticket_id": "Fn2rBZgJQzi6VIUABuWcqB",
          "questions": [
            {
              "title": "First Name",
              "answer": "Michael"
            }
          ]
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Get event survey report

  • Method: GET
  • Path: /zoom_events/events/{eventId}/reports/survey
  • Tags: Reports

Retrieve event and session survey information.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_reports:read,zoom_events_reports:read:admin

Granular Scopes: zoom_events:read:list_session_surveys,zoom_events:read:list_session_surveys:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` List of event survey information.
Content-Type: application/json
  • next_page_token

    string — Use the next page token to paginate through a set of large results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.

  • surveys

    array — Survey responses

    Items:

    • email

      string — The email address of the person who took the survey. The email will not show if the survey taken as anonymous user.

    • question_and_answers

      array — Question and answers array.

      Items:

      • answer

        string — The survey answer.

      • question

        string — The question title.

    • session_id

      string — The ID of the session - both session ID and session name is not present, these surveys questions belongs to event.

    • session_name

      string — The name of the session - both session ID and session name is not present, these surveys questions belongs to event.

  • total_records

    number — The total number of records in the current response.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "surveys": [
    {
      "session_name": "Introduction",
      "session_id": "ZALMy1b8RRiK810bVL-wFg",
      "email": "ZALMy1b8RRiK810bVL-wFg",
      "question_and_answers": [
        {
          "question": "What is your favorite type of ice cream flavor?",
          "answer": "Chocolate"
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400 ` <br> Invalid `page_size` or `event_id/next_page_token`. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Get event registrations report

  • Method: GET
  • Path: /zoom_events/events/{eventId}/reports/ticket_registration
  • Tags: Reports

Retrieves event ticket registrations.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_reports:read,zoom_events_reports:read:admin

Granular Scopes: zoom_events:read:event_registration,zoom_events:read:event_registration:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200`<br> List of event ticket registrations.
Content-Type: application/json
  • next_page_token

    string — Use the next page token to paginate through a set of large results. A next page token is returned whenever the set of available results exceeds in the current request. This token's expiration period is 15 minutes.

  • registrations

    array — The event registrations.

    Items:

    • attendance_type

      array — The registrant event attendance type.

      Items:

      string, possible values: "hybrid", "virtual", "in_person" — The registrant attendance type. * hybrid|virtual|in_person

    • display_name

      string — The registrant's display name.

    • email

      string — The email address of the attendee.

    • event_attendance

      string, possible values: "attended", "absent" — The registrant attendance status. * `attended - Attended` * `absent - Not attended `

    • first_name

      string — The registrant's first name.

    • last_name

      string — The registrant's last name.

    • marketing_consent_prechecked

      number, possible values: 1, 0, -1 — The marketing opt in flag. * `1. Opted for marketing` * `0 - Not opted for marketing` `-1 not available`

    • opt_in_marketing

      number, possible values: 1, 0 — Marketing opt in. * `1. Opted for marketing` * `0 - Not opted for marketing`

    • register_date

      string, format: date-time — The registrant date in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ

    • registered_session_ids

      array — The session IDs for which the user has registered.

      Items:

      string — The Session ID.

    • registration_method

      string, possible values: "self-registration", "self-registration_account", "pre_registration", "group_join_link", "other" — The registration method. * `self-registration` self registration with email * `self-registration_account` self registration with zoom account `pre_registration` Host pre-registration * `group_join_link` Registration with group join link * `Other`

    • registration_source

      string — The source of registration or the source tracking information.

    • tickets

      array — The user tickets for the event.

      Items:

      • authentication_method

        string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join", "fast_join", "vanity_url" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication * `email_opt` registration using email OTP verification * `zoom_account_otp_at_join` pre-registration using email OTP verification * `fast_Join` Fast join without upfront authentication * `vanity_url` join with vanity url

      • external_ticket_id

        string — A set of unique alphanumeric characters that references the external ticket ID.

      • questions

        array — The user provided question and answers provided at the time of registration.

        Items:

        • answer

          string — The question answer.

        • title

          string — The question title.

      • ticket_id

        string — The ticket identifier.

      • ticket_type_id

        string — The ticket type identifier.

      • ticket_type_name

        string — The ticket type name.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "registrations": [
    {
      "display_name": "First Last",
      "first_name": "First",
      "last_name": "Last",
      "email": "email@zoom.us",
      "opt_in_marketing": 0,
      "marketing_consent_prechecked": 0,
      "register_date": "2022-03-24T22:30:00Z",
      "event_attendance": "attended",
      "registered_session_ids": [
        "UoARddSoTN2gPKIXxVPbCQ"
      ],
      "attendance_type": [
        "hybrid"
      ],
      "registration_method": "Self-registration",
      "registration_source": "Pardot",
      "tickets": [
        {
          "ticket_type_name": "General Ticket",
          "ticket_type_id": "Fn2rBZgJQzi6VIU--uWqnA",
          "external_ticket_id": "iso9Djldop39dagjLj3j",
          "ticket_id": "Fn2rBZgJQzi6VIUABuWcqB",
          "authentication_method": "no_auth",
          "questions": [
            {
              "title": "First Name",
              "answer": "Michael"
            }
          ]
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Get VOD channel registration report

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/reports/registrations
  • Tags: Reports

Retrieves VOD channel registrations and view duration information.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_vod_reports:read,zoom_events_vod_reports:read:admin

Granular Scopes: zoom_events:read:vod_registrations,zoom_events:read:vod_registrations:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` List of event survey information.
Content-Type: application/json
  • next_page_token

    string — Use the next page token to paginate through a set of large results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.

  • registrations

    array — The VOD channel registrations.

    Items:

    • authentication_method

      string, possible values: "zoom_account", "email_opt", "no_auth" — The VOD channel authentication method * `zoom_account` Zoom account holder * `no_auth` No authentication* `email_opt` registration using email OTP verification*

    • email

      string — The email address of the registrant.

    • first_name

      string — The registrant's first name.

    • last_name

      string — The registrant's last name.

    • questions

      array

      Items:

      • answer

        string — The question answer.

      • title

        string — The question title.

    • video_watch_duration

      array

      Items:

      • duration

        number — The registrant watched video duration.

      • video_id

        string — The registrant watched video ID.

      • video_name

        string — The registrant watched video name.

  • total_records

    number — The total number of records in the current response.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "registrations": [
    {
      "email": "xyz@example.com",
      "first_name": "First",
      "last_name": "Last",
      "video_watch_duration": [
        {
          "video_id": "LVRGBTZXI6Kt7zv0g",
          "video_name": "tutorial one",
          "duration": 10
        }
      ],
      "authentication_method": "no_auth",
      "questions": [
        {
          "title": "First Name",
          "answer": "Michael"
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List sessions

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions
  • Tags: Sessions

Retrieves the sessions in an event. Event hosts and special-role ticket users, such as speakers and co-hosts, can access this API. Users will not need to provide any special query parameters. The API internally identifies based on the user role and provides the session information for the event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:list_sessions,zoom_events:read:list_sessions:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of requested sessions.
Content-Type: application/json
  • sessions

    array — The list of sessions for the event.

    Items:

    All of:

    • meeting_id

      integer, format: int64 — The [meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) in **long** format(represented as int64 data type in JSON), also known as the meeting number. Applicable, if the session type is of meeting ( i.e type = 0). This id is null for an unpublished event.

    • timezone

      string — The timezone of the event.

    • type

      integer, format: int32, possible values: 0, 2, 4 — The type of session: * `0`- Meeting * `2`- Webinar * `4`- No webinar or meeting

    • webinar_id

      integer, format: int64 — The webinar ID in **long** format(represented as int64 data type in JSON), also known as the webinar number. Applicable, if the session type is of webinar ( i.e type = 2). This id is null for an unpublished event.

    • alternative_host

      array — The list of alternative hosts. Alternative hosts can start the session on the host&rsquo;s behalf. The &quot;Alternative Host&quot; ticket is auto-assigned to alternative hosts.

      Items:

      string — The email address of the alternative host.

    • attendance_type

      string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees

    • audience_labels

      array — The list of audience type tags for the session.

      Items:

      string

    • chat_channel

      boolean — Whether session chat in lobby is enabled. Attendees need to have Zoom Chat enabled by their Account Admin to view and participate in the conference chat.

    • description

      string — This is a description of the session.

    • end_time

      string, format: date-time — The end time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

    • featured

      boolean — Whether the session is featured.

    • featured_in_lobby

      boolean — Whether the session is featured in the event lobby.

    • interpreter_languages

      array — The languages available for interpretations.

      Items:

      • language_display_name

        string — The name of the language.

      • language_id

        string — The language ID for translation.

    • is_simulive

      boolean — Whether the webinar is `simulive`.

    • led_by_sponsor

      boolean — Whether the session is led by a sponsor.

    • level

      array — The list of level type tags for the session.

      Items:

      string

    • name

      string — The name of the session.

    • panelist

      array — The speaker joins session as an attendee in a meeting session and as a panelist in a webinar session. Panelist can mute or unmute themselves, start or stop their own video, view and respond to all questions and answers.

      Items:

      string — The email address of the panelist.

    • physical_location

      string — The physical location of the event. This field is applicable for Hybrid and in-person events only.

    • product_labels

      array — The list of product type tags for the session.

      Items:

      string

    • record_file_id

      string — The previously recorded file's ID for `simulive`.

    • session_id

      string — The ID of the session.

    • session_reservation

      object — Information about the session reservation option. This option is supported for multi-session type events only.

      • allow_reservations

        boolean — Whether the session reservations are enabled. This option is supported for multi-session type events only.

      • max_capacity

        integer — The maximum number of session reservations allowed.

    • session_speakers

      array — The speakers join as attendees in a meeting session and as panelists in a webinar session.

      Items:

      • access_to_edit_session

        boolean — Whether the speaker has access to edit the session information.

      • company

        string — The company name of the speaker.

      • has_alternative_host_permission

        boolean — Whether the speaker can act as an alternative host for the session.

      • meeting_role

        integer, format: int32, possible values: 0, 1, 2 — The role of the speaker in a meeting: * `0` ALTERNATIVE_HOST * `1` ATTENDEE * `2` PANELIST

      • name

        string — The name of the speaker.

      • show_in_session_detail

        boolean — Whether to show the speaker information under session details.

      • speaker_id

        string — The ID of the session speaker.

      • title

        string — The job title of the speaker.

    • sign_interpreter_languages

      array — The available sign interpretation languages.

      Items:

      • language_display_name

        string — The name of the language.

      • language_id

        string — The language ID for translation.

    • start_time

      string, format: date-time — The start time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

    • track_labels

      array — The track or classification that separates events into different categories. Tickets for these tracks link to specific sessions. Only ticket holders can join these sessions.

      Items:

      string

    • visible_in_landing_page

      boolean — Whether the session is visible in landing page.

    • visible_in_lobby

      boolean — Whether the session is visible in event lobby.

  • total_records

    number — The total number of sessions.

Example:

{
  "total_records": 1,
  "sessions": [
    {
      "timezone": "America/New_York",
      "type": 2,
      "meeting_id": 97763643886,
      "webinar_id": 97871060099,
      "session_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "name": "Session 1",
      "description": "Educational Session on ZoomEvents",
      "start_time": "2022-05-31T13:00:00Z",
      "end_time": "2022-05-31T13:00:00Z",
      "session_speakers": [
        {
          "speaker_id": "4uzfv3JwTeyR5QpC3PXwMg",
          "access_to_edit_session": true,
          "show_in_session_detail": true,
          "has_alternative_host_permission": true,
          "meeting_role": 2,
          "name": "Speaker-1",
          "company": "Zoom",
          "title": "Product Lead"
        }
      ],
      "featured": true,
      "visible_in_landing_page": true,
      "featured_in_lobby": false,
      "visible_in_lobby": true,
      "is_simulive": true,
      "record_file_id": "f09340e1-cdc3-4eae-9a74-98f9777ed908",
      "chat_channel": true,
      "led_by_sponsor": false,
      "track_labels": [
        "Technical Track"
      ],
      "audience_labels": [
        "Family"
      ],
      "product_labels": [
        "zoomMeeting"
      ],
      "level": [
        "Level-1"
      ],
      "alternative_host": [
        "abc.cd@email.com"
      ],
      "panelist": [
        "abc.cd@email.com"
      ],
      "interpreter_languages": [
        {
          "language_id": "EN",
          "language_display_name": "English"
        }
      ],
      "sign_interpreter_languages": [
        {
          "language_id": "EN",
          "language_display_name": "English"
        }
      ],
      "attendance_type": "hybrid",
      "physical_location": "801 Mt Vernon Pl NW, Washington, DC 20001",
      "session_reservation": {
        "allow_reservations": true,
        "max_capacity": 20
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Create a session

  • Method: POST
  • Path: /zoom_events/events/{eventId}/sessions
  • Tags: Sessions

Creates a session. This operation is not available for a single session event type.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write:admin,zoom_events_sessions:write

Granular Scopes: zoom_events:write:session,zoom_events:write:session:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • end_time (required)

    string, format: date-time — The end time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • name (required)

    string — The name of the session.

  • start_time (required)

    string, format: date-time — The start time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`.

  • timezone (required)

    string — The timezone of the event. For a list of supported timezones and their formats, see our [timezone list](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones).

  • type (required)

    integer, format: int32, possible values: 0, 2, 4 — The type of session: *`0`- Meeting. *`2`- Webinar. *`4`- No webinar or meeting.

  • alternative_host

    array — The list of alternative hosts. Alternative hosts can start the session on the hosts behalf. The &quot;Alternative Host&quot; ticket is auto-assigned to alternative hosts.

    Items:

    string — The email address of the alternative host.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `Virtual` &mdash; virtual attendees only. * `In-person` &mdash; in-person attendees only. * `Hybrid` &mdash; both in-person and virtual attendees.

  • audience_labels

    array — The list of audience type tags for the session.

    Items:

    string

  • chat_channel

    boolean — Whether the session chat in the lobby is enabled. *Attendees need to have Zoom Chat enabled by their account admin to view and participate in the conference chat.

  • description

    string — This is a description of the session. This field does not support the richtext description field in the UI.

  • featured

    boolean — Whether the session is featured.

  • featured_in_lobby

    boolean — Whether the session is marked as featured in the event lobby.

  • is_simulive

    boolean — Whether the webinar is `simulive`.

  • led_by_sponsor

    boolean — Whether the session is hosted by a sponsor.

  • level

    array — The list of level type tags for the session.

    Items:

    string

  • panelist

    array — The speaker joins session as an attendee in a meeting session and as a panelist in a webinar session. Panelist can mute or unmute themselves, start or stop their own video, view and respond to all questions and answers.

    Items:

    string — The email address of the panelist.

  • physical_location

    string — The physical location of the event. This field is applicable for hybrid and in-person events only.

  • product_labels

    array — The list of product type tags for the session.

    Items:

    string

  • record_file_id

    string — The previously recorded file's ID for `simulive`.

  • session_reservation

    object — Information about the session reservation option. This option is supported for multi-session type events only.

    • allow_reservations

      boolean — Whether the session reservations are enabled. This option is supported for multi-session type events only.

    • max_capacity

      integer — The maximum number of session reservations allowed.

  • session_speakers

    array — The speakers joins a session as an attendee in a meeting session and as panelists in a webinar session.

    Items:

    • access_to_edit_session

      boolean — Whether the speaker has access to edit the session information.

    • has_alternative_host_permission

      boolean — Whether the speaker can act as an alternative host for the session.

    • show_in_session_detail

      boolean — Whether to show the speaker information under session details.

    • speaker_id

      string — The ID of the session speaker.

  • track_labels

    array — The track or classification that separates events into different categories. Tickets for these tracks link to specific sessions. Only ticket holders can join these sessions.

    Items:

    string

  • visible_in_landing_page

    boolean, default: true — Whether the session is visible in landing page.

  • visible_in_lobby

    boolean, default: true — Whether the session is visible in event lobby.

Example:

{
  "name": "Session 1",
  "description": "Educational Session on ZoomEvents",
  "start_time": "2022-05-31T13:00:00Z",
  "end_time": "2022-05-31T13:00:00Z",
  "timezone": "America/New_York",
  "type": 2,
  "session_speakers": [
    {
      "speaker_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "access_to_edit_session": true,
      "show_in_session_detail": true,
      "has_alternative_host_permission": true
    }
  ],
  "featured": true,
  "visible_in_landing_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true,
  "is_simulive": true,
  "record_file_id": "f09340e1-cdc3-4eae-9a74-98f9777ed908",
  "chat_channel": true,
  "led_by_sponsor": false,
  "track_labels": [
    "Technical Track"
  ],
  "audience_labels": [
    "Family"
  ],
  "product_labels": [
    "zoomMeeting"
  ],
  "level": [
    "Level-1"
  ],
  "alternative_host": [
    "abc.cd@email.com"
  ],
  "panelist": [
    "abc.cd@email.com"
  ],
  "attendance_type": "hybrid",
  "physical_location": "801 Mt Vernon Pl NW, Washington, DC 20001",
  "session_reservation": {
    "allow_reservations": true,
    "max_capacity": 20
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` Session created successfully.
Content-Type: application/json

All of:

  • timezone

    string — The timezone of the event.

  • type

    integer, format: int32, possible values: 0, 2, 4 — The type of session: Enum: * `0` - Meeting. * `2`- Webinar. * `4` No webinar or meeting

  • alternative_host

    array — The list of alternative hosts. Alternative hosts can start the session on the host&rsquo;s behalf. The &quot;Alternative Host&quot; ticket is auto-assigned to alternative hosts.

    Items:

    string — The email address of the alternative host.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees

  • audience_labels

    array — The list of audience type tags for the session.

    Items:

    string

  • chat_channel

    boolean — Whether session chat in lobby is enabled. Attendees need to have Zoom Chat enabled by their Account Admin to view and participate in the conference chat.

  • description

    string — The description of the session.This is a description of the session. This field does NOT support the Richtext Description field in the UI.

  • end_time

    string, format: date-time — The end time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

  • featured

    boolean — Whether the session is featured.

  • featured_in_lobby

    boolean — Whether the session is featured in the event lobby.

  • is_simulive

    boolean — Whether the webinar is `simulive`.

  • led_by_sponsor

    boolean — Whether the session is led by a sponsor.

  • level

    array — The list of level type tags for the session.

    Items:

    string

  • name

    string — The name of the session.

  • panelist

    array — The speaker joins session as an attendee in a meeting session and as a panelist in a webinar session. Panelist can mute or unmute themselves, start or stop their own video, view and respond to all questions and answers.

    Items:

    string — The email address of the panelist.

  • physical_location

    string — The physical location of the event. This field is applicable for Hybrid and in-person events only.

  • product_labels

    array — The list of product type tags for the session.

    Items:

    string

  • record_file_id

    string — The previously recorded file's ID for `simulive`.

  • session_id

    string — The ID of the session.

  • session_reservation

    object — Information about the session reservation option. This option is supported for multi-session type events only.

    • allow_reservations

      boolean — Whether the session reservations are enabled. This option is supported for multi-session type events only.

    • max_capacity

      integer — The maximum number of session reservations allowed.

  • session_speakers

    array — The speakers join as attendees in a meeting session and as panelists in a webinar session.

    Items:

    • access_to_edit_session

      boolean — Whether the speaker has access to edit the session information.

    • company

      string — The company name of the speaker.

    • has_alternative_host_permission

      boolean — Whether the speaker can act as an alternative host for the session.

    • meeting_role

      integer, format: int32, possible values: 0, 1, 2 — The role of the speaker in a meeting: Enum: * `0` ALTERNATIVE_HOST * `1` ATTENDEE * `2` PANELIST

    • name

      string — The name of the speaker.

    • show_in_session_detail

      boolean — Whether to show the speaker information under session details.

    • speaker_id

      string — The ID of the session speaker.

    • title

      string — The job title of the speaker.

  • start_time

    string, format: date-time — The start time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

  • track_labels

    array — The track or classification that separates events into different categories. Tickets for these tracks link to specific sessions. Only ticket holders can join these sessions.

    Items:

    string

  • visible_in_landing_page

    boolean — Whether the session is visible in the landing page.

  • visible_in_lobby

    boolean — Whether the session is visible in event lobby.

Example:

{
  "timezone": "America/New_York",
  "type": 2,
  "session_id": "4uzfv3JwTeyR5QpC3PXwMg",
  "name": "Session 1",
  "description": "Educational Session on ZoomEvents",
  "start_time": "2022-05-31T13:00:00Z",
  "end_time": "2022-05-31T13:00:00Z",
  "session_speakers": [
    {
      "speaker_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "access_to_edit_session": true,
      "show_in_session_detail": true,
      "has_alternative_host_permission": true,
      "meeting_role": 2,
      "name": "Speaker-1",
      "company": "Zoom",
      "title": "Product Lead"
    }
  ],
  "featured": true,
  "visible_in_landing_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true,
  "is_simulive": true,
  "record_file_id": "f09340e1-cdc3-4eae-9a74-98f9777ed908",
  "chat_channel": true,
  "led_by_sponsor": false,
  "track_labels": [
    "Technical Track"
  ],
  "audience_labels": [
    "Family"
  ],
  "product_labels": [
    "zoomMeeting"
  ],
  "level": [
    "Level-1"
  ],
  "alternative_host": [
    "abc.cd@email.com"
  ],
  "panelist": [
    "abc.cd@email.com"
  ],
  "attendance_type": "hybrid",
  "physical_location": "801 Mt Vernon Pl NW, Washington, DC 20001",
  "session_reservation": {
    "allow_reservations": true,
    "max_capacity": 20
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26402` <br> One or more session IDs are invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Get the session information

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}
  • Tags: Sessions

Returns the session information.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:session,zoom_events:read:session:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Requested session details.
Content-Type: application/json

All of:

  • meeting_id

    integer, format: int64 — The [meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-) in **long** format (represented as int64 data type in JSON), also known as the meeting number. Applicable, if the session type is of meeting ( i.e type = 0). This ID is null for an unpublished event.

  • timezone

    string — The timezone of the event.

  • type

    integer, format: int32, possible values: 0, 2, 4 — The type of session: * `0`- Meeting * `2`- Webinar. * `4`- No webinar or meeting.

  • webinar_id

    integer, format: int64 — The webinar ID in **long** format (represented as int64 data type in JSON), also known as the webinar number. Applicable, if the session type is of webinar ( i.e type = 2). This ID is null for an unpublished event.

  • alternative_host

    array — The list of alternative hosts. Alternative hosts can start the session on the host&rsquo;s behalf. The &quot;Alternative Host&quot; ticket is auto-assigned to alternative hosts.

    Items:

    string — The email address of the alternative host.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees

  • audience_labels

    array — The list of audience type tags for the session.

    Items:

    string

  • chat_channel

    boolean — Whether session chat in lobby is enabled. Attendees need to have Zoom Chat enabled by their Account Admin to view and participate in the conference chat.

  • description

    string — This is a description of the session.

  • end_time

    string, format: date-time — The end time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

  • featured

    boolean — Whether the session is featured.

  • featured_in_lobby

    boolean — Whether the session is featured in the event lobby.

  • interpreter_languages

    array — The languages available for interpretations.

    Items:

    • language_display_name

      string — The name of the language.

    • language_id

      string — The language ID for translation.

  • is_simulive

    boolean — Whether the webinar is `simulive`.

  • led_by_sponsor

    boolean — Whether the session is led by a sponsor.

  • level

    array — The list of level type tags for the session.

    Items:

    string

  • name

    string — The name of the session.

  • panelist

    array — The speaker joins session as an attendee in a meeting session and as a panelist in a webinar session. Panelist can mute or unmute themselves, start or stop their own video, view and respond to all questions and answers.

    Items:

    string — The email address of the panelist.

  • physical_location

    string — The physical location of the event. This field is applicable for Hybrid and in-person events only.

  • product_labels

    array — The list of product type tags for the session.

    Items:

    string

  • record_file_id

    string — The previously recorded file's ID for `simulive`.

  • session_id

    string — The ID of the session.

  • session_reservation

    object — Information about the session reservation option. This option is supported for multi-session type events only.

    • allow_reservations

      boolean — Whether the session reservations are enabled. This option is supported for multi-session type events only.

    • max_capacity

      integer — The maximum number of session reservations allowed.

  • session_speakers

    array — The speakers join as attendees in a meeting session and as panelists in a webinar session.

    Items:

    • access_to_edit_session

      boolean — Whether the speaker has access to edit the session information.

    • company

      string — The company name of the speaker.

    • has_alternative_host_permission

      boolean — Whether the speaker can act as an alternative host for the session.

    • meeting_role

      integer, format: int32, possible values: 0, 1, 2 — The role of the speaker in a meeting: * `0` ALTERNATIVE_HOST * `1` ATTENDEE * `2` PANELIST

    • name

      string — The name of the speaker.

    • show_in_session_detail

      boolean — Whether to show the speaker information under session details.

    • speaker_id

      string — The ID of the session speaker.

    • title

      string — The job title of the speaker.

  • sign_interpreter_languages

    array — The sign interpretation languages that are available.

    Items:

    • language_display_name

      string — The name of the language.

    • language_id

      string — The language ID for translation.

  • start_time

    string, format: date-time — The start time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`

  • track_labels

    array — The track or classification that separates events into different categories. Tickets for these tracks link to specific sessions. Only ticket holders can join these sessions.

    Items:

    string

  • visible_in_landing_page

    boolean, default: true — Whether the session is visible in the landing page.

  • visible_in_lobby

    boolean, default: true — Whether the session is visible in event lobby.

Example:

{
  "timezone": "America/New_York",
  "type": 2,
  "meeting_id": 97763643886,
  "webinar_id": 97871060099,
  "session_id": "4uzfv3JwTeyR5QpC3PXwMg",
  "name": "Session 1",
  "description": "Educational Session on ZoomEvents",
  "start_time": "2022-05-31T13:00:00Z",
  "end_time": "2022-05-31T13:00:00Z",
  "session_speakers": [
    {
      "speaker_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "access_to_edit_session": true,
      "show_in_session_detail": true,
      "has_alternative_host_permission": true,
      "meeting_role": 2,
      "name": "Speaker-1",
      "company": "Zoom",
      "title": "Product Lead"
    }
  ],
  "featured": true,
  "visible_in_landing_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true,
  "is_simulive": true,
  "record_file_id": "f09340e1-cdc3-4eae-9a74-98f9777ed908",
  "chat_channel": true,
  "led_by_sponsor": false,
  "track_labels": [
    "Technical Track"
  ],
  "audience_labels": [
    "Family"
  ],
  "product_labels": [
    "zoomMeeting"
  ],
  "level": [
    "Level-1"
  ],
  "alternative_host": [
    "abc.cd@email.com"
  ],
  "panelist": [
    "abc.cd@email.com"
  ],
  "interpreter_languages": [
    {
      "language_id": "EN",
      "language_display_name": "English"
    }
  ],
  "sign_interpreter_languages": [
    {
      "language_id": "EN",
      "language_display_name": "English"
    }
  ],
  "attendance_type": "hybrid",
  "physical_location": "801 Mt Vernon Pl NW, Washington, DC 20001",
  "session_reservation": {
    "allow_reservations": true,
    "max_capacity": 20
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Delete a session

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}
  • Tags: Sessions

Deletes a session. Not allowed for a single session event type.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:delete:session,zoom_events:delete:session:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Session deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a session

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}
  • Tags: Sessions

Updates an existing session in an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:update:session,zoom_events:update:session:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • alternative_host

    array — The list of alternative hosts. Alternative hosts can start the session on the hosts behalf. The &quot;Alternative Host&quot; ticket is auto-assigned to alternative hosts.

    Items:

    string — The email address of the alternative host.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event: * `Virtual` &mdash; virtual attendees only * `In-person` &mdash; in-person attendees only * `Hybrid` &mdash; both in-person and virtual attendees. *In case of single session event type, It inherits event's attendance type.

  • audience_labels

    array — The list of audience type tags for the session. This is not applicable for single session event type.

    Items:

    string

  • chat_channel

    boolean — Whether session chat in lobby is enabled. *Attendees need to have Zoom Chat enabled by their account admin to view and participate in the conference chat. This is not applicable for single session event type.

  • description

    string — This is a description of the session.This field does NOT support the Richtext Description field in the UI. Updating session description is only allowed for multi-session and recurring type event.

  • end_time

    string, format: date-time — The end time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`. In case of Single Session Event Type, It inherits the event's end time.

  • featured

    boolean — Whether the session is featured. This is not applicable for single session event type.

  • featured_in_lobby

    boolean — Whether the session is featured in the event lobby. Session controls not supported for single session event type.

  • is_simulive

    boolean — Whether the webinar is `simulive`.

  • led_by_sponsor

    boolean — Whether the session is hosted by a sponsor. This is not applicable for single session event type.

  • level

    array — The list of level type tags for the session. This is not applicable for single session event type.

    Items:

    string

  • name

    string — The name of the session. In case of single session event type, it inherits the event's name.

  • panelist

    array — The speaker joins session as an attendee in a meeting session and as a panelist in a webinar session. Panelist can mute or unmute themselves, start or stop their own video, view and respond to all questions and answers. This is not applicable for single session event type.

    Items:

    string — The email address of the panelist.

  • physical_location

    string — The physical location of the event. This field is applicable for hybrid and in-person events only.

  • product_labels

    array — The list of product type tags for the session. This is not applicable for single session event type.

    Items:

    string

  • record_file_id

    string — The previously recorded file's ID for `simulive`.

  • session_reservation

    object — Information about the session reservation option. This option is supported for multi-session type events only.

    • allow_reservations

      boolean — Whether the session reservations are enabled. This option is supported for multi-session type events only.

    • max_capacity

      integer — The maximum number of session reservations allowed.

  • session_speakers

    array — The speakers join as attendees in a meeting session and as panelists in a webinar session.

    Items:

    • access_to_edit_session

      boolean — Whether the speaker has access to edit the session information.

    • has_alternative_host_permission

      boolean — Whether the speaker can act as an alternative host for the session.

    • show_in_session_detail

      boolean — Whether to show the speaker information under the session details.

    • speaker_id

      string — The ID of the session speaker.

  • start_time

    string, format: date-time — The start time of the session in UTC. The format should be `yyyy-MM-dd`T`HH:mm:ssZ`. In case of single session event type, It inherits the event's start time.

  • track_labels

    array — The track or classification that separates events into different categories. Tickets for these tracks link to specific sessions. Only ticket holders can join these sessions. This is not applicable for single session event type.

    Items:

    string

  • type

    integer, format: int32, possible values: 0, 2, 4 — The type of session: * `0`- Meeting. * `2`- Webinar. * `4`- No webinar or meeting.

  • visible_in_landing_page

    boolean, default: true — Whether the session is visible in the landing page. Session controls not supported for single session event type.

  • visible_in_lobby

    boolean, default: true — Whether the session is visible in the event lobby. Session controls not supported for single session event type.

Example:

{
  "name": "Session 1",
  "description": "Educational Session on ZoomEvents",
  "start_time": "2022-05-31T13:00:00Z",
  "end_time": "2022-05-31T13:00:00Z",
  "type": 2,
  "session_speakers": [
    {
      "speaker_id": "4uzfv3JwTeyR5QpC3PXwMg",
      "access_to_edit_session": true,
      "show_in_session_detail": true,
      "has_alternative_host_permission": true
    }
  ],
  "featured": true,
  "visible_in_landing_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true,
  "is_simulive": false,
  "record_file_id": "f09340e1-cdc3-4eae-9a74-98f9777ed908",
  "chat_channel": true,
  "led_by_sponsor": false,
  "track_labels": [
    "Technical Track"
  ],
  "audience_labels": [
    "Family"
  ],
  "product_labels": [
    "zoomMeeting"
  ],
  "level": [
    "Level-1"
  ],
  "alternative_host": [
    "abc.cd@email.com"
  ],
  "panelist": [
    "abc.cd@email.com"
  ],
  "attendance_type": "hybrid",
  "physical_location": "801 Mt Vernon Pl NW, Washington, DC 20001",
  "session_reservation": {
    "allow_reservations": true,
    "max_capacity": 20
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Session updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br> **Error Code:** `260209` <br> Event is not editable. <br> **Error Code:** `260210` <br> Past and cancelled events are not editable. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

List session interpreters

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/interpreters
  • Tags: Sessions

Retrieves interpreters in a session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus /Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:list_session_interpreters,zoom_events:read:list_session_interpreters:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of interpreters.
Content-Type: application/json
  • interpreters

    array

    Items:

    • email

      string — The email address of the interpreter.

    • source_language_display_name

      string — The name of the source language.

    • source_language_id

      object

    • target_language_display_name

      object

    • target_language_id

      object

    • type

      integer, format: int32, possible values: 1, 2 — The interpreter type: Enum: * `1` language_interpreter * `2` sign_language_interpreter

  • total_records

    number — The total number of interpreters.

Example:

{
  "total_records": 1,
  "interpreters": [
    {
      "email": "abc.def@email.com",
      "type": 1,
      "source_language_id": "US",
      "source_language_display_name": "English",
      "target_language_id": "JP",
      "target_language_display_name": null
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2003` <br> Session not found. <br> **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Create or update session interpreters

  • Method: PUT
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/interpreters
  • Tags: Sessions

Creates or updates the list of interpreters for the session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:update:session_interpreter,zoom_events:update:session_interpreter:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • interpreters

    array

    Items:

    • email

      string — The email address of the interpreter.

    • source_language_id

      string, possible values: "US", "CN", "JP", "DE", "FR", "RU", "PT", "ES", "KR" — The language ID for translation. Valid for language_interpreter type: Enum: * `US` English * `CN` Chinese * `JP` Japanese * `DE` German * `FR` French * `RU` Russian * `PT` Portuguese * `ES` Spanish * `KR` Korean

    • target_language_id

      object

    • type

      integer, format: int32, possible values: 1, 2 — The interpreter type: Enum: * `1` language_interpreter * `2` sign_language_interpreter

Example:

{
  "interpreters": [
    {
      "email": "abc.def@example.com",
      "type": 1,
      "source_language_id": "US",
      "target_language_id": "JP"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` Interpreters updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Get ticket session join token by Event ID and Session ID

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/join_token
  • Tags: Sessions

Retrieves the join token to join an event session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:session_token,zoom_events:read:session_token:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` The join token for the session.
Content-Type: application/json
  • code

    integer, format: int32, possible values: 0, 1120, 1130, 1140, 1150 — The join token error code: Enum: * `0` &mdash; SUCCESS * `1120` &mdash; BAD_REQUEST * `1130` &mdash; ERROR_TICKET_NOT_FOUND * `1140` &mdash; INTERNAL_SERVER_ERROR * `1150` &mdash; ERROR_CODE_TICKET_REVOKE

  • error_message

    string — The join token error message.

  • join_token

    string — The join token of the session.

Example:

{
  "code": 0,
  "error_message": "success",
  "join_token": "OIgzlUv99nloE1vFMFssJVZuhFSstmSNd_Pi4WEBUNy0hWK2L6TtrRWscn"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Get session livestream configuration

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/livestream
  • Tags: Sessions

List the livestream configuration for the given session. RTMP Incoming livestream will only work for webinar sessions (not meetings). Please check RTMP livesteam for the feature details.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:session_livestream_config,zoom_events:read:session_livestream_config:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Session livestream details.
Content-Type: application/json
  • incoming_config

    object — The incoming livestream configuration.

    • effective_time

      string, format: date-time — The effective time of the stream key when it is valid, in UTC. The format is `yyyy-MM-dd`T`HH:mm:ssZ`

    • expiration_time

      string, format: date-time — The expiration time of the stream key in UTC. After this time, the stream key doesn't work anymore. The format is `yyyy-MM-dd`T`HH:mm:ssZ`

    • stream_backup_url

      string — The stream backup url.

    • stream_key

      string — The stream key.

    • stream_key_description

      string — The stream key description.

    • stream_key_id

      string — The stream key ID.

    • stream_key_name

      string — The stream key name.

    • stream_key_type

      string, possible values: "SAVED", "GENERATED" — The type of stream key: * `SAVED`- Saved. A saved stream key can be re-used for different sessions scheduled for different times. * `GENERATED`- Generated key, specific to a session.

    • stream_url

      string — The stream url.

  • incoming_enabled

    boolean — The incoming livestream enabled or not.

Example:

{
  "incoming_enabled": true,
  "incoming_config": {
    "stream_key_id": "YwG21kyxkyRO7SOkuwPf7S8B",
    "stream_key_name": "Stream key 2",
    "stream_key_description": "Stream key 2 description",
    "stream_key_type": "SAVED",
    "stream_key": "ZAEUMvRcI1eq_SRMg3iQBz-U",
    "stream_url": "rtmp://10.100.125.159:1956/live",
    "stream_backup_url": "rtmp://10.100.125.159:1976/live?backup=1",
    "effective_time": "2022-05-31T13:00:00Z",
    "expiration_time": "2022-05-31T13:00:00Z"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Update session livestream configuration

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/livestream
  • Tags: Sessions

Update the livestream configuration for the given session. RTMP Incoming livestream will only work for webinar sessions (not meetings). Please check RTMP livestream for the feature details.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:update:session_livestream_config,zoom_events:update:session_livestream_config:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • incoming_enabled (required)

    boolean — The incoming livestream enabled or not. RTMP Incoming livestream will only work for webinar sessions (not meetings).

  • incoming_config

    object — The incoming livestream configuration.

    • stream_key_type

      string, possible values: "GENERATED" — The type of stream key: * `GENERATED`- Generated key, specific to a session. If a generated key already exist for this sessionId, then it is reused. This is the only type supported as of now and this is a mandatory field when the incoming_enabled field is set to `true`.

Example:

{
  "incoming_enabled": true,
  "incoming_config": {
    "stream_key_type": "GENERATED"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated the livestream configuration.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26303` <br> Incoming livestream is supported only for webinar meeting_type sessions. <br> **Error Code:** `26304` <br> Incoming livestream configuration is missing. <br> **Error Code:** `26305` <br> Incoming livestream key type is invalid. This type is not supported for update. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

List session polls

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/polls
  • Tags: Sessions

List all the polls of a session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:list_session_polls,zoom_events:read:list_session_polls:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of polls returned.
Content-Type: application/json
  • polls

    array

    Items:

    • anonymous (required)

      boolean — Allow session participants to answer poll questions anonymously.

    • poll_type (required)

      integer, possible values: 1, 2, 3 — The type of poll. * `1` &mdash; Basic Poll. Only single and multiple choice questions are allowed. * `2` &mdash; Advanced Poll. This feature must be enabled in your Zoom account. * `3` &mdash; Quiz. This feature must be enabled in your Zoom account.

    • title (required)

      string — The poll's title, up to 64 characters.

    • id

      string — Session Poll ID. Required for updating an existing poll.

    • questions

      array — Information about the poll's questions.

      Items:

      • name (required)

        string — The poll question, up to 255 characters. For `fill_in_the_blank` polls, this field is the poll's question. For each value that the user must fill in, ensure that there are the same number of `right_answers` values.

      • type (required)

        string, possible values: "single", "multiple", "matching", "rank_order", "short_answer", "long_answer", "fill_in_the_blank", "rating_scale" — The poll's question and answer type. * `single` &mdash; Single choice. * `multiple` &mdash; Multiple choice. * `matching` &mdash; Matching. * `rank_order` &mdash; Rank order. * `short_answer` &mdash; Short answer. * `long_answer` &mdash; Long answer. * `fill_in_the_blank` &mdash; Fill in the blank. * `rating_scale` &mdash; Rating scale.

      • answer_max_character

        integer — The allowed maximum number of characters. This field only applies to `short_answer` and `long_answer` polls. * For `short_answer` polls, a maximum of 500 characters. * For `long_answer` polls, a maximum of 2,000 characters.

      • answer_min_character

        integer — The allowed minimum number of characters. This field only applies to `short_answer` and `long_answer` polls. You must provide at least a **one** character minimum value.

      • answer_required

        boolean, default: false — Whether participants must answer the question. * `true` &mdash; The participant must answer the question. * `false` &mdash; The participant does not need to answer the question. **Note:** * When the poll's `type` value is `1` (Poll), this value defaults to `true`. * When the poll's `type` value is the `2` (Advanced Poll) or `3` (Quiz) values, this value defaults to `false`.

      • answers

        array — The poll question's available answers. This field requires a **minimum** of two answers. * For `single` and `multiple` polls, you can only provide a maximum of 10 answers. * For `matching` polls, you can only provide a maximum of 16 answers. * For `rank_order` polls, you can only provide a maximum of seven answers.

        Items:

        string

      • case_sensitive

        boolean, default: false — Whether the correct answer is case sensitive. This field only applies to `fill_in_the_blank` polls. * `true` &mdash; The answer is case-sensitive. * `false` &mdash; The answer is not case-sensitive. This value defaults to `false`.

      • prompt_right_answers

        array — The question prompt's correct answers. * For `matching` polls, you must provide a minimum of two correct answers, up to a maximum of 10 correct answers. * For `rank_order` polls, you can only provide one correct answer.

        Items:

        string

      • prompts

        array — Information about the prompt questions. The question prompt's title. This field only applies to `matching` and `rank_order` polls. You **must** provide a minimum of two prompts, up to a maximum of 10 prompts.

        Items:

        string

      • rating_max_label

        string — The high score label used for the `rating_max_value` field. This field only applies to the `rating_scale` poll.

      • rating_max_value

        integer — The rating scale's maximum value, up to a maximum value of 10. This field only applies to the `rating_scale` poll.

      • rating_min_label

        string — The low score label used for the `rating_min_value` field. This field only applies to the `rating_scale` poll.

      • rating_min_value

        integer — The rating scale's minimum value. This value cannot be less than zero. This field only applies to the `rating_scale` poll.

      • right_answers

        array — The poll question's correct answer(s). This field is **required** if the poll's `type` value is `3` (Quiz). For `single` and `matching` polls, this field only accepts one answer.

        Items:

        string

      • show_as_dropdown

        boolean, default: false — Whether to display the radio selection as a drop-down box. * `true` &mdash; Show as a drop-down box. * `false` &mdash; Do not show as a drop-down box. This value defaults to `false`.

    • status

      string, possible values: "active", "inactive" — Status of the Session Poll: `active` - Poll is active `inactive` - Poll is deactivated

  • total_records

    number — The total number of polls.

Example:

{
  "total_records": 1,
  "polls": [
    {
      "id": "QalIoKWLTJehBJ8e1xRrbQ",
      "status": "active",
      "anonymous": false,
      "poll_type": 2,
      "questions": [
        {
          "answer_max_character": 200,
          "answer_min_character": 1,
          "answer_required": false,
          "answers": [
            "Extremely useful"
          ],
          "case_sensitive": false,
          "name": "How useful was this meeting?",
          "prompts": [
            "How are you?"
          ],
          "prompt_right_answers": [
            "Good"
          ],
          "rating_max_label": "Extremely Likely",
          "rating_max_value": 4,
          "rating_min_label": "Not likely",
          "rating_min_value": 0,
          "right_answers": [
            "Good"
          ],
          "show_as_dropdown": false,
          "type": "single"
        }
      ],
      "title": "Learn something new"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Create or update session polls

  • Method: PUT
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/polls
  • Tags: Sessions

Create or update the list of polls for the session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:update:session_poll,zoom_events:update:session_poll:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • polls

    array

    Items:

    • anonymous (required)

      boolean — Allow session participants to answer poll questions anonymously.

    • poll_type (required)

      integer, possible values: 1, 2, 3 — The type of poll. * `1` &mdash; Basic Poll. Only single and multiple choice questions are allowed. * `2` &mdash; Advanced Poll. This feature must be enabled in your Zoom account. * `3` &mdash; Quiz. This feature must be enabled in your Zoom account.

    • title (required)

      string — The poll's title, up to 64 characters.

    • id

      string — Session Poll ID. Required for updating an existing poll.

    • questions

      array — Information about the poll's questions.

      Items:

      • name (required)

        string — The poll question, up to 255 characters. For `fill_in_the_blank` question, this field is the question text with placeholders for blanks (ex: `This is a <Blank 1> and is another <Blank 2>`. For each value that the user must fill in, ensure that there are the same number of `answers` values.

      • type (required)

        string, possible values: "single", "multiple", "matching", "rank_order", "short_answer", "long_answer", "fill_in_the_blank", "rating_scale" — The poll's question and answer type. * `single` &mdash; Single choice. * `multiple` &mdash; Multiple choice. * `matching` &mdash; Matching. * `rank_order` &mdash; Rank order. * `short_answer` &mdash; Short answer. * `long_answer` &mdash; Long answer. * `fill_in_the_blank` &mdash; Fill in the blank. * `rating_scale` &mdash; Rating scale.

      • answer_max_character

        integer — The allowed maximum number of characters. This field only applies to `short_answer` and `long_answer` polls. * For `short_answer` polls, a maximum of 500 characters. * For `long_answer` polls, a maximum of 2,000 characters.

      • answer_min_character

        integer — The allowed minimum number of characters. This field only applies to `short_answer` and `long_answer` polls. You must provide at least a **one** character minimum value.

      • answer_required

        boolean, default: false — Whether participants must answer the question. * `true` &mdash; The participant must answer the question. * `false` &mdash; The participant does not need to answer the question. **Note:** * When the poll's `type` value is `1` (Poll), this value defaults to `true`. * When the poll's `type` value is the `2` (Advanced Poll) or `3` (Quiz) values, this value defaults to `false`.

      • answers

        array — The poll question's available answers. This field requires a **minimum** of two answers. * For `single` and `multiple` polls, you can only provide a maximum of 10 answers. * For `matching` polls, you can only provide a maximum of 16 answers. * For `rank_order` polls, you can only provide a maximum of seven answers.

        Items:

        string

      • case_sensitive

        boolean, default: false — Whether the correct answer is case sensitive. This field only applies to `fill_in_the_blank` polls. * `true` &mdash; The answer is case-sensitive. * `false` &mdash; The answer is not case-sensitive. This value defaults to `false`.

      • prompt_right_answers

        array — The question prompt's correct answers. * For `matching` polls, you must provide a minimum of two correct answers, up to a maximum of 10 correct answers. * For `rank_order` polls, you can only provide one correct answer.

        Items:

        string

      • prompts

        array — Information about the prompt questions. The question prompt's title. This field only applies to `matching` and `rank_order` polls. You **must** provide a minimum of two prompts, up to a maximum of 10 prompts.

        Items:

        string

      • rating_max_label

        string — The high score label used for the `rating_max_value` field. This field only applies to the `rating_scale` poll.

      • rating_max_value

        integer — The rating scale's maximum value, up to a maximum value of 10. This field only applies to the `rating_scale` poll.

      • rating_min_label

        string — The low score label used for the `rating_min_value` field. This field only applies to the `rating_scale` poll.

      • rating_min_value

        integer — The rating scale's minimum value. This value cannot be less than zero. This field only applies to the `rating_scale` poll.

      • right_answers

        array — The poll question's correct answer(s). This field is **required** if the poll's `type` value is `3` (Quiz). For `single` and `matching` polls, this field only accepts one answer.

        Items:

        string

      • show_as_dropdown

        boolean, default: false — Whether to display the radio selection as a drop-down box. * `true` &mdash; Show as a drop-down box. * `false` &mdash; Do not show as a drop-down box. This value defaults to `false`.

    • status

      string, possible values: "active", "inactive" — Status of the Session Poll: `active` - Poll is active `inactive` - Poll is deactivated

Example:

{
  "polls": [
    {
      "id": "QalIoKWLTJehBJ8e1xRrbQ",
      "status": "active",
      "anonymous": false,
      "poll_type": 2,
      "questions": [
        {
          "answer_max_character": 200,
          "answer_min_character": 1,
          "answer_required": false,
          "answers": [
            "Extremely useful"
          ],
          "case_sensitive": false,
          "name": "How useful was this meeting?",
          "prompts": [
            "How are you?"
          ],
          "prompt_right_answers": [
            "Good"
          ],
          "rating_max_label": "Extremely Likely",
          "rating_max_value": 4,
          "rating_min_label": "Not likely",
          "rating_min_value": 0,
          "right_answers": [
            "Good"
          ],
          "show_as_dropdown": false,
          "type": "single"
        }
      ],
      "title": "Learn something new"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` Polls updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

List session reservations

  • Method: GET
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/reservations
  • Tags: Sessions

Retrieves the list of reservations made by registrants for the session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:read,zoom_events_sessions:read:admin

Granular Scopes: zoom_events:read:list_session_reservations,zoom_events:read:list_session_reservations:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of session reservations.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a set of large results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • reservations

    array — Reservations

    Items:

    • email

      string — The email address of the registrant.

    • first_name

      string — The registrant's first name.

    • last_name

      string — The registrant's last name.

  • total_records

    number — The total number of reservations per page.

Example:

{
  "total_records": 1,
  "next_page_token": "oLVRGBTZXI6Kt7zv0gb8Qy4h8cLNbzK1ig2",
  "reservations": [
    {
      "first_name": "First",
      "last_name": "Last",
      "email": "email@zoom.us"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26302` <br> The time range is overlapping or you have reached the maximum number of sessions on the same day. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Add session reservations

  • Method: POST
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/reservations
  • Tags: Sessions

Reserve a spot for a user in the given session. As a host, reserve registrants for a particular session. Session reservation needs to be enabled before using this API.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:write:session_reservations,zoom_events:write:session_reservations:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • email (required)

    string — The email address of the registrant.

Example:

{
  "email": "email@zoom.us"
}

Responses

Status: 201 **HTTP Status Code:** `201` Reservation added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26306` <br> No reservations available. Maximum capacity reached. <br> **Error Code:** `26307` <br> Session reservation is disabled. <br> **Error Code:** `26308` <br> Host session reservation is disabled. <br> **Error Code:** `26309` <br> User does not have access to this session. <br> **Error Code:** `26310` <br> Reservations are not required for users with special roles. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/).

Delete session reservations

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/sessions/{sessionId}/reservations
  • Tags: Sessions

This tool removes a user's reservation spot for a given session. As a host, you can use it to remove reservations of registrants for a particular session.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license.

Scopes: zoom_events_sessions:write,zoom_events_sessions:write:admin

Granular Scopes: zoom_events:delete:session_reservations,zoom_events:delete:session_reservations:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • email (required)

    string — The email address of the registrant.

Example:

{
  "email": "email@zoom.us"
}

Responses

Status: 204 **HTTP Status Code:** `204` Reservation deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26311` <br> Session reservation not found. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2003` <br> Session not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List speakers

  • Method: GET
  • Path: /zoom_events/events/{eventId}/speakers
  • Tags: Speakers

Retrieves a list of speakers for an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_speakers:read,zoom_events_speakers:read:admin

Granular Scopes: zoom_events:read:list_speakers,zoom_events:read:list_speakers:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` List of speakers returned.
Content-Type: application/json
  • speakers

    array

    Items:

    • biography

      string — The speaker's biography.

    • company_name

      string — The name of the speaker's company.

    • company_website

      string — The speaker's company website.

    • email

      string — The speaker's email address.

    • featured_in_event_detail_page

      boolean — Whether the speaker is featured in the event detail page.

    • featured_in_lobby

      boolean — Whether the speaker is featured in the event lobby.

    • job_title

      string — The speaker's job title.

    • linkedin_url

      string — The LinkedIn URL.

    • name

      string — The speaker's name.

    • speaker_id

      string — The speaker ID.

    • twitter_url

      string — The Twitter URL.

    • visible_in_event_detail_page

      boolean, default: true — Whether the speaker is visible in the event detail page.

    • visible_in_lobby

      boolean, default: true — Whether the speaker is visible in the event lobby.

    • youtube_url

      string — The YouTube URL.

  • total_records

    number — The total number of speakers.

Example:

{
  "total_records": 1,
  "speakers": [
    {
      "speaker_id": "3935Ug73Sp6S-7K1BHk7qw",
      "name": "John Joseph Dev",
      "email": "email@example.com",
      "job_title": "Product Manager",
      "biography": "Provide a brief introduction of the speaker.",
      "company_name": "zoom",
      "company_website": "https://www.example.com",
      "linkedin_url": "https://linkedin.com/example",
      "twitter_url": "https://twitter.com/example",
      "youtube_url": "https://youtube.com/example",
      "featured_in_event_detail_page": true,
      "visible_in_event_detail_page": true,
      "featured_in_lobby": false,
      "visible_in_lobby": true
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Create a speaker

  • Method: POST
  • Path: /zoom_events/events/{eventId}/speakers
  • Tags: Speakers

Creates a speaker for an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_speakers:write,zoom_events_speakers:write:admin

Granular Scopes: zoom_events:write:speaker,zoom_events:write:speaker:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • name (required)

    string — The speaker's name.

  • biography

    string — The speaker's biography.

  • company_name

    string — The name of the speaker's comapny.

  • company_website

    string — The speaker's company website.

  • email

    string — The speaker's email address.

  • featured_in_event_detail_page

    boolean — Whether the speaker is featured in the event detail page.

  • featured_in_lobby

    boolean — Whether the speaker is featured in the event lobby.

  • job_title

    string — The speaker's job title.

  • linkedin_url

    string — The LinkedIn URL.

  • twitter_url

    string — The Twitter URL.

  • visible_in_event_detail_page

    boolean, default: true — Whether the speaker is visible in the event detail page.

  • visible_in_lobby

    boolean, default: true — Whether the speaker is visible in the event lobby.

  • youtube_url

    string — The Youtube URL.

Example:

{
  "name": "John Joseph Dev",
  "email": "email@example.com",
  "job_title": "Product Manager",
  "biography": "Provide a brief introduction of the speaker.",
  "company_name": "zoom",
  "company_website": "https://www.example.com",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "featured_in_event_detail_page": true,
  "visible_in_event_detail_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true
}

Responses

Status: 201 **HTTP Status Code:** `201` Speakers returned.
Content-Type: application/json
  • biography

    string — The speaker's biography.

  • company_name

    string — The name of the speaker's comapny.

  • company_website

    string — The speaker's company website.

  • email

    string — The speaker's email address.

  • featured_in_event_detail_page

    boolean — Whether the speaker is featured in the event detail page.

  • featured_in_lobby

    boolean — Whether the speaker is featured in the event lobby.

  • job_title

    string — The speaker's job title.

  • linkedin_url

    string — The LinkedIn URL.

  • name

    string — The speaker's name.

  • speaker_id

    string — The speaker ID.

  • twitter_url

    string — The Twitter URL.

  • visible_in_event_detail_page

    boolean, default: true — Whether the speaker is visible in the event detail page.

  • visible_in_lobby

    boolean, default: true — Whether the speaker is visible in the event lobby.

  • youtube_url

    string — The YouTube URL.

Example:

{
  "speaker_id": "3935Ug73Sp6S-7K1BHk7qw",
  "name": "John Joseph Dev",
  "email": "email@example.com",
  "job_title": "Product Manager",
  "biography": "Provide a brief introduction of the speaker.",
  "company_name": "zoom",
  "company_website": "https://www.example.com",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "featured_in_event_detail_page": true,
  "visible_in_event_detail_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1001` <br> Content moderation check failed. <br> **Error Code:** `1003` <br> The email address has already been used by another speaker. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3002` <br> You have exceeded the maximum speaker capacity. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get a speaker

  • Method: GET
  • Path: /zoom_events/events/{eventId}/speakers/{speakerId}
  • Tags: Speakers

Returns information on a specific speaker.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_speakers:read,zoom_events_speakers:read:admin

Granular Scopes: zoom_events:read:speaker,zoom_events:read:speaker:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Speaker returned.
Content-Type: application/json
  • biography

    string — The speaker's biography.

  • company_name

    string — The name of the speaker's comapny.

  • company_website

    string — The speaker's company website.

  • email

    string — The speaker's email address.

  • featured_in_event_detail_page

    boolean — Whether the speaker is featured in the event detail page.

  • featured_in_lobby

    boolean — Whether the speaker is featured in the event lobby.

  • job_title

    string — The speaker's job title.

  • linkedin_url

    string — The LinkedIn URL.

  • name

    string — The speaker's name.

  • speaker_id

    string — The speaker ID.

  • twitter_url

    string — The Twitter URL.

  • visible_in_event_detail_page

    boolean, default: true — Whether the speaker is visible in the event detail page.

  • visible_in_lobby

    boolean, default: true — Whether the speaker is visible in the event lobby.

  • youtube_url

    string — The YouTube URL.

Example:

{
  "speaker_id": "3935Ug73Sp6S-7K1BHk7qw",
  "name": "John Joseph Dev",
  "email": "email@example.com",
  "job_title": "Product Manager",
  "biography": "Provide a brief introduction of the speaker.",
  "company_name": "zoom",
  "company_website": "https://www.example.com",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "featured_in_event_detail_page": true,
  "visible_in_event_detail_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2005` <br> Speaker not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Delete a speaker

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/speakers/{speakerId}
  • Tags: Speakers

Deletes a speaker.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_speakers:write,zoom_events_speakers:write:admin

Granular Scopes: zoom_events:delete:speaker,zoom_events:delete:speaker:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Speaker deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `2005` <br> Speaker not found. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Update a speaker

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/speakers/{speakerId}
  • Tags: Speakers

Updates the speaker information.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_speakers:write,zoom_events_speakers:write:admin

Granular Scopes: zoom_events:update:speaker,zoom_events:update:speaker:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • biography

    string — The speaker's biography.

  • company_name

    string — The name of the speaker's company.

  • company_website

    string — The speaker's company website.

  • email

    string — The speaker's email address.

  • featured_in_event_detail_page

    boolean — Whether the speaker is featured in the event detail page.

  • featured_in_lobby

    boolean — Whether the speaker is featured in the event lobby.

  • job_title

    string — The speaker's job title.

  • linkedin_url

    string — The LinkedIn URL.

  • name

    string — The speaker's name.

  • twitter_url

    string — The Twitter URL.

  • visible_in_event_detail_page

    boolean, default: true — Whether the speaker is visible in the event detail page.

  • visible_in_lobby

    boolean, default: true — Whether the speaker is visible in the event lobby.

  • youtube_url

    string — The YouTube URL.

Example:

{
  "name": "John Joseph Dev",
  "email": "email@example.com",
  "job_title": "Product Manager",
  "biography": "Provide a brief introduction of the speaker.",
  "company_name": "zoom",
  "company_website": "https://www.example.com",
  "linkedin_url": "https://linkedin.com/example",
  "twitter_url": "https://twitter.com/example",
  "youtube_url": "https://youtube.com/example",
  "featured_in_event_detail_page": true,
  "visible_in_event_detail_page": true,
  "featured_in_lobby": false,
  "visible_in_lobby": true
}

Responses

Status: 204 **HTTP Status Code:** `204` Speaker updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1001` <br> Content moderation check failed. <br> **Error Code:** `1003` <br> The email address has already been used by another speaker. <br> **Error Code:** `1005` <br> The same person has been assigned multiple roles. A user is not allowed to hold multiple roles in the same session. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `2005` <br> Speaker not found. <br> **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List registration questions for an event

  • Method: GET
  • Path: /zoom_events/events/{eventId}/questions
  • Tags: Ticket Types

List registration questions and fields that are to be answered by users while registering for an event. These questions are setup during the event level.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_ticket_types:read,zoom_events_ticket_types:read:admin

Granular Scopes: zoom_events:read:list_registration_questions,zoom_events:read:list_registration_questions:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Successfully retrieved registration questions.
Content-Type: application/json

All of:

  • custom_questions

    array — Array of Registrant Custom Questions.

    Items:

    • max_length

      integer — The maximum length of the custom question answer. This is applicable for short_answer/long_answer question types. The max_length should be greater than or equal min_length. The allowed max_length for short_answer is 500 and for long_answer is 2000.

    • min_length

      integer — The minimum length of the custom question answer. This is applicable for short_answer/long_answer question types. If this custom question is required then the min_length should be atleast 1.

    • options

      array — An array of answer choices. Can't be used for short or long answer type.

      Items:

      string

    • question_id

      string — The ID of the custom question.

    • required

      boolean — State whether or not the custom question is required to be answered by a registrant.

    • title

      string — Custom question.

    • type

      string, possible values: "short_answer", "long_answer", "single_radio", "single_dropdown", "multiple_choice" — The question-answer type.

  • questions

    array — Array of registration fields whose values should be provided by registrants during registration.

    Items:

    • field_name

      string, possible values: "first_name", "last_name", "address", "city", "state", "zip", "country", "phone", "industry", "job_title", "organization", "organization_size" — Field name.

    • question_id

      string — The ID of the question.

    • required

      boolean — State whether the selected fields are required or optional.

    • title

      string — Title of the question.

Example:

{
  "questions": [
    {
      "field_name": "last_name",
      "required": true,
      "title": "Last Name",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA"
    }
  ],
  "custom_questions": [
    {
      "options": [
        "Good"
      ],
      "required": true,
      "title": "How are you?",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA",
      "type": "short_answer",
      "min_length": 500,
      "max_length": 2000
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Update registration questions for an event

  • Method: PUT
  • Path: /zoom_events/events/{eventId}/questions
  • Tags: Ticket Types

Updates registration questions and fields that are to be answered by users while registering for an event. These questions are setup at event level.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_ticket_types:write,zoom_events_ticket_types:write:admin

Granular Scopes: zoom_events:update:registraion_question,zoom_events:update:registraion_question:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • custom_questions

    array — Array of registrant custom questions.

    Items:

    • max_length

      integer — The maximum length of the custom question answer. This is applicable for short_answer/long_answer question types. The max_length should be greater than or equal min_length. The allowed max_length for short_answer is 500 and for long_answer is 2000.

    • min_length

      integer — The minimum length of the custom question answer. This is applicable for short_answer/long_answer question types. If this custom question is required then the min_length should be atleast 1.

    • options

      array — An array of answer choices. Can't be used for short or long answer type.

      Items:

      string

    • question_id

      string — The ID of the custom question.

    • required

      boolean — State whether or not the custom question is required to be answered by a registrant.

    • title

      string — Custom question.

    • type

      string, possible values: "short_answer", "long_answer", "single_radio", "single_dropdown", "multiple_choice" — The question-answer type.

  • questions

    array — Array of registration fields whose values should be provided by registrants during registration.

    Items:

    • field_name

      string, possible values: "first_name", "last_name", "address", "city", "state", "zip", "country", "phone", "industry", "job_title", "organization", "organization_size" — The field name.

    • question_id

      string — The ID of the question.

    • required

      boolean — Whether the selected fields are required or optional.

    • title

      string — Title of the question.

Example:

{
  "questions": [
    {
      "field_name": "last_name",
      "required": true,
      "title": "Last Name",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA"
    }
  ],
  "custom_questions": [
    {
      "options": [
        "Good"
      ],
      "required": true,
      "title": "How are you?",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA",
      "type": "short_answer",
      "min_length": 500,
      "max_length": 2000
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated registration questions.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List ticket types

  • Method: GET
  • Path: /zoom_events/events/{eventId}/ticket_types
  • Tags: Ticket Types

Lists all ticket types associated with an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_ticket_types:read,zoom_events_ticket_types:read:admin

Granular Scopes: zoom_events:read:list_ticket_types,zoom_events:read:list_ticket_types:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` A list of ticket types.
Content-Type: application/json
  • ticket_types

    array — The list of ticket types for the event.

    Items:

    • bookmarked_sessions

      array — Pre-bookmark sessions for your attendees. This is list of session IDs to be bookmarked for this ticket type. Its values could be comma seperated session IDs or can have value *ALL* . *ALL* refer all the sessions in the event.

      Items:

      string

    • currency

      string — The currency of the ticket type.

    • description

      string — The description of the ticket type.

    • end_time

      string — The end time of ticket sales.

    • free

      boolean — Whether the ticket is free.

    • name

      string — The name of the ticket type.

    • price

      string — The price of the ticket type.

    • private_visibility_rules

      object — The private visibility settings

      • account_restrict

        boolean — Whether the ticket type is restricted to certain Zoom accounts.

      • allow_domain_list

        array — The ticket type is restricted to these specific domains. This array returns a maximum of 50 domains.

        Items:

        string

      • attendance_type

        string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees.

      • email_restrict_list

        array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

        Items:

        string

    • quantity

      number — The quantity of the ticket type.

    • sessions

      array — The list of session IDs allowed for this ticket type or *ALL* *ALL* refer all the sessions in the event.

      Items:

      string

    • sold_quantity

      number — The total number of tickets sold.

    • start_time

      string — The start time of ticket sales.

    • ticket_type_id

      string — The ID of the ticket type.

  • total_records

    number — The total number of records.

Example:

{
  "total_records": 1,
  "ticket_types": [
    {
      "ticket_type_id": "234kjhg23kl4jhlaksjdh3",
      "name": "General Admission Ticket",
      "currency": "USD",
      "free": true,
      "price": "0",
      "quantity": 50,
      "start_time": "2022-03-24T22:30:00Z",
      "end_time": "2023-01-01T06:30:00Z",
      "description": "The description of the ticket type.",
      "sold_quantity": 35,
      "sessions": [
        "ALL"
      ],
      "bookmarked_sessions": [
        "ALL"
      ],
      "private_visibility_rules": {
        "account_restrict": true,
        "allow_domain_list": [
          "zoom.us"
        ],
        "email_restrict_list": [
          "example1@email.com"
        ],
        "attendance_type": "hybrid"
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Create an event ticket type

  • Method: POST
  • Path: /zoom_events/events/{eventId}/ticket_types
  • Tags: Ticket Types

Creates a ticket type for the event ID that is not allowed for single session and recurring event types.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_ticket_types:write,zoom_events_ticket_types:write:admin

Granular Scopes: zoom_events:write:ticket_type,zoom_events:write:ticket_type:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • currency (required)

    string — The currency of the ticket type.

  • end_time (required)

    string — The end time of ticket sales.

  • name (required)

    string — The name of the ticket type.

  • start_time (required)

    string — The start time of ticket sales.

  • attendance_type

    string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees

  • bookmarked_sessions

    array — The list of sessions that display in the main lobby. The value is an array of session IDs or *ALL* . *ALL* refer all the sessions in the event.

    Items:

    string

  • description

    string — The description of the ticket type.

  • free

    boolean — Whether the ticket is free.

  • price

    string — The price of the ticket type.

  • private_visibility_rules

    object — The private visibility settings.

    • account_restrict

      boolean — Whether the ticket type is restricted to certain Zoom accounts.

    • allow_domain_list

      array — The ticket type is restricted to these specific domains. The maximum domains you can pass in the array is 50.

      Items:

      string — Each domain can have up to 40 characters

    • email_restrict_list

      array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses will receive an email invitation.

      Items:

      string — Each email can have up to 60 characters

  • quantity

    number — The quantity of the ticket type.

  • sessions

    array — The list of session IDs allowed for this ticket type or *ALL* *ALL* refer all the sessions in the event.

    Items:

    string

  • sold_quantity

    number — The total number of tickets sold.

Example:

{
  "name": "General Admission Ticket.",
  "currency": "USD",
  "free": true,
  "price": "0",
  "quantity": 50,
  "start_time": "2022-03-24T22:30:00Z",
  "end_time": "2023-01-01T06:30:00Z",
  "description": "The description of the ticket type.",
  "sold_quantity": 35,
  "sessions": [
    "ALL"
  ],
  "bookmarked_sessions": [
    "ALL"
  ],
  "private_visibility_rules": {
    "account_restrict": true,
    "allow_domain_list": [
      "zoom.us"
    ],
    "email_restrict_list": [
      "example1@email.com"
    ]
  },
  "attendance_type": "hybrid"
}

Responses

Status: 201 **HTTP Status Code:** `201` The list of ticket types.
Content-Type: application/json
  • ticket_type_id

    string — The ID of the ticket type for purchase.

Example:

{
  "ticket_type_id": "pfalaof9s83lsLJD9u2d"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26401` <br> The ticket sale dates are invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event ID not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Delete a ticket type

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/ticket_types/{ticketTypeId}
  • Tags: Ticket Types

Deletes a ticket type of an event that is not allowed for a single session event type.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_ticket_types:write,zoom_events_ticket_types:write:admin

Granular Scopes: zoom_events:delete:ticket_type,zoom_events:delete:ticket_type:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Successfully deleted the ticket type.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event ID not found. <br> **Error Code:** `26502` <br> The ticket type ID is invalid. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update ticket type for an event

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/ticket_types/{ticketTypeId}
  • Tags: Ticket Types

Updates the ticket type for an event ID not allowed for a single session event type.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_ticket_types:write,zoom_events_ticket_types:write:admin

Granular Scopes: zoom_events:update:ticket_type,zoom_events:update:ticket_type:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • bookmarked_sessions

    array — The list of sessions that display in the main lobby. The value is an array of session IDs or *ALL* . *ALL* refer all the sessions in the event.

    Items:

    string

  • currency

    string — The currency of the ticket type.

  • description

    string — The description of the ticket type.

  • end_time

    string — The end time of ticket sales.

  • free

    boolean — Whether the ticket is free.

  • name

    string — The name of the ticket type.

  • price

    string — The price of the ticket type.

  • private_visibility_rules

    object

    • account_restrict

      boolean — Whether the ticket type is restricted to certain Zoom accounts.

    • allow_domain_list

      array — The ticket type is restricted to these specific domains. The maximum domains we can pass in the array is 50.

      Items:

      string — Each domain can have up to 40 characters.

    • attendance_type

      string, possible values: "virtual", "in-person", "hybrid" — The type of attendee experience for the event. * `virtual` virtual attendees only * `in-person` in-person attendees only * `hybrid` both in-person and virtual attendees.

    • email_restrict_list

      array — The registration restricted to users by email addresses. Only these users are allowed to register and these email addresses receive an email invitation.

      Items:

      string — Each email can have up to 60 characters.

  • quantity

    number — The quantity of the ticket type.

  • sessions

    array — The list of session IDs allowed for this ticket type or *ALL* *ALL* refer all the sessions in the event.

    Items:

    string

  • sold_quantity

    number — The total number of tickets sold.

  • start_time

    string — The start time of ticket sales.

Example:

{
  "name": "General Admission Ticket",
  "currency": "USD",
  "free": true,
  "price": "0",
  "quantity": 50,
  "start_time": "2022-03-24T22:30:00Z",
  "end_time": "2023-01-01T06:30:00Z",
  "description": "The description of the ticket type.",
  "sold_quantity": 35,
  "sessions": [
    "ALL"
  ],
  "bookmarked_sessions": [
    "ALL"
  ],
  "private_visibility_rules": {
    "account_restrict": true,
    "allow_domain_list": [
      "zoom.us"
    ],
    "email_restrict_list": [
      "example1@email.com"
    ],
    "attendance_type": "hybrid"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated the ticket type.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `26502` <br> The ticket type ID is invalid. <br> **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List registration questions for ticket type

  • Method: GET
  • Path: /zoom_events/events/{eventId}/ticket_types/{ticketTypeId}/questions
  • Tags: Ticket Types

List registration questions and fields that are to be answered by users while registering for an event. These questions are setup at ticket_type level.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_ticket_types:read,zoom_events_ticket_types:read:admin

Granular Scopes: zoom_events:read:list_registration_questions,zoom_events:read:list_registration_questions:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Successfully retrieved registration questions.
Content-Type: application/json

All of:

  • custom_questions

    array — Array of Registrant Custom Questions.

    Items:

    • max_length

      integer — The maximum length of the custom question answer. This is applicable for short_answer/long_answer question types. The max_length should be greater than or equal min_length. The allowed max_length for short_answer is 500 and for long_answer is 2000.

    • min_length

      integer — The minimum length of the custom question answer. This is applicable for short_answer/long_answer question types. If this custom question is required then the min_length should be atleast 1.

    • options

      array — An array of answer choices. Can't be used for short or long answer type.

      Items:

      string

    • question_id

      string — The ID of the custom question.

    • required

      boolean — State whether or not the custom question is required to be answered by a registrant.

    • title

      string — Custom question.

    • type

      string, possible values: "short_answer", "long_answer", "single_radio", "single_dropdown", "multiple_choice" — The question-answer type.

  • questions

    array — Array of registration fields whose values should be provided by registrants during registration.

    Items:

    • field_name

      string, possible values: "first_name", "last_name", "address", "city", "state", "zip", "country", "phone", "industry", "job_title", "organization", "organization_size" — Field name.

    • question_id

      string — The ID of the question.

    • required

      boolean — State whether the selected fields are required or optional.

    • title

      string — Title of the question.

Example:

{
  "questions": [
    {
      "field_name": "last_name",
      "required": true,
      "title": "Last Name",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA"
    }
  ],
  "custom_questions": [
    {
      "options": [
        "Good"
      ],
      "required": true,
      "title": "How are you?",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA",
      "type": "short_answer",
      "min_length": 500,
      "max_length": 2000
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Update registration questions for ticket type

  • Method: PUT
  • Path: /zoom_events/events/{eventId}/ticket_types/{ticketTypeId}/questions
  • Tags: Ticket Types

Updates registration questions and fields that are to be answered by users while registering for an event. These questions are setup at ticket_type level. This API is not allowed for single session event type.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_ticket_types:write,zoom_events_ticket_types:write:admin

Granular Scopes: zoom_events:update:registraion_question,zoom_events:update:registraion_question:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • custom_questions

    array — Array of registrant custom questions.

    Items:

    • max_length

      integer — The maximum length of the custom question answer. This is applicable for short_answer/long_answer question types. The max_length should be greater than or equal min_length. The allowed max_length for short_answer is 500 and for long_answer is 2000.

    • min_length

      integer — The minimum length of the custom question answer. This is applicable for short_answer/long_answer question types. If this custom question is required then the min_length should be atleast 1.

    • options

      array — An array of answer choices. Can't be used for short or long answer type.

      Items:

      string

    • question_id

      string — The ID of the custom question.

    • required

      boolean — State whether or not the custom question is required to be answered by a registrant.

    • title

      string — Custom question.

    • type

      string, possible values: "short_answer", "long_answer", "single_radio", "single_dropdown", "multiple_choice" — The question-answer type.

  • questions

    array — Array of registration fields whose values should be provided by registrants during registration.

    Items:

    • field_name

      string, possible values: "first_name", "last_name", "address", "city", "state", "zip", "country", "phone", "industry", "job_title", "organization", "organization_size" — Field name.

    • question_id

      string — The ID of the question.

    • required

      boolean — Whether the selected fields are required or optional.

    • title

      string — The title of the question.

Example:

{
  "questions": [
    {
      "field_name": "last_name",
      "required": true,
      "title": "Last Name",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA"
    }
  ],
  "custom_questions": [
    {
      "options": [
        "Good"
      ],
      "required": true,
      "title": "How are you?",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA",
      "type": "short_answer",
      "min_length": 500,
      "max_length": 2000
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated registration questions.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List tickets

  • Method: GET
  • Path: /zoom_events/events/{eventId}/tickets
  • Tags: Tickets

Retrieves the ticket information of an event.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus/ Events license

Scopes: zoom_events_tickets:read,zoom_events_tickets:read:admin

Granular Scopes: zoom_events:read:list_tickets,zoom_events:read:list_tickets:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Ticket Information.
Content-Type: application/json
  • next_page_token

    string — The next page token.

  • tickets

    array — Tickets

    Items:

    All of:

    • authentication_method

      string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication* `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

    • email

      string — The email address used for the registration.

    • event_join_link

      string — A unique join link created for the ticket.

    • external_ticket_id

      string — A set of unique alphanumeric characters that references the external ticket ID.

    • qr_code_url

      string — The URL generated after scanning the e-badge QR code image. This field is applicable only for hybrid or in-person event types.

    • registration_source

      string — The source of registration.

    • send_notification

      boolean — Whether to receive email notifications.

    • session_id

      string — Session ID registered for this ticket.This is applicable only for the tickets created for the recurring session.

    • ticket_id

      string — A set of unique alphanumeric characters that references the ticket ID.

    • ticket_role_type

      string, possible values: "normal", "alternative_host", "panelist", "bind_meeting", "speaker", "subscription", "sponsor", "interpreter", "host", "moderator", "expo_booth_owner", "attendee_without_order", "pre_registration", "company_zoom_room", "moderator_allhost", "hub_host", "hub_owner" — The ticket role type: * `normal` The normal ticket * `alternative_host` The alternative host ticket * `panelist` The panelist ticket * `bind_meeting` The bind meeting ticket * `speaker` The speaker ticket * `interpreter` The interpreter ticket * `sponsor` The sponsor ticket * `host` The host ticket * `moderator` The moderator ticket * `expo_booth_owner` The expo booth owner ticket * `attendee_without_order` The attendee without order ticket * `pre_registration` The pre-registration ticket * `company_zoom_room` The company zoom room ticket * `moderator_allhost` The moderator all host ticket * `hub_host` The hub host ticket * `hub_owner` The hub owner ticket &quot;, * `subscription` The subscription ticket &quot;

    • ticket_type_id

      string — The ID of the ticket type for purchase.

    • address

      string — The registrant's address.

    • city

      string — The registrant's city.

    • comments

      string — The registrant's questions and comments.

    • country

      string — The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • first_name

      string — The registrant's first name.

    • industry

      string — The registrant's industry.

    • job_title

      string — The registrant's job title.

    • last_name

      string — The registrant's last name.

    • organization

      string — The registrant's organization.

    • organization_size

      string — The registrant's number of employees.

    • phone

      string — The registrant's phone number.

    • state

      string — The registrant's state or province.

    • zip

      string — The registrant's ZIP or postal code.

    • custom_questions

      array — Information about custom questions.

      Items:

      • answer

        string — The custom question's response value.

      • title

        string — The title of the custom question.

  • total_records

    number — The total number of tickets.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "tickets": [
    {
      "ticket_id": "iso9Dllddp39dagjLj9j",
      "ticket_type_id": "pfalaof9s83lsLJD9u2d",
      "external_ticket_id": "iso9Djldop39dagjLj3j",
      "event_join_link": "https://events.zoom.us/ejl/xyz",
      "send_notification": false,
      "email": "email@zoom.us",
      "ticket_role_type": "normal",
      "registration_source": "Pardot",
      "session_id": "iso9Djldop39dagjLj3j",
      "authentication_method": "no_auth",
      "qr_code_url": "https://zoom.us/qr?t=9&ein=AkhZhct94cUqiDfRumcpPf0loI-QAOt5T9yh_vGRn2-BkPDmjfze~AyTxY2Fs9Nw6ADEk-edYyZIyGIzxVAI_v-Mci1S-KeyRhbZOG3-4kWVpYqSxJK-2Uls-j_GSHh9L7Ku_zZta-MDu2NCA1Rg",
      "first_name": "Jill",
      "last_name": "Chill",
      "address": "1800 Amphibious Blvd",
      "city": "Mountain View",
      "state": "CA",
      "zip": "94045",
      "country": "US",
      "phone": "5550100",
      "industry": "Food",
      "job_title": "Chef",
      "organization": "ABC Ltd.",
      "organization_size": "150",
      "comments": "Looking forward to the discussion.",
      "custom_questions": [
        {
          "title": "What do you hope to learn from this?",
          "answer": "Look forward to learning how you come up with new recipes and what other services you offer."
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create tickets

  • Method: POST
  • Path: /zoom_events/events/{eventId}/tickets
  • Tags: Tickets

Creates tickets for an event. You can add a single ticket or up to 30 tickets in a batch operation. Please note that this request uses the pre-registration flow.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_tickets:write,zoom_events_tickets:write:admin

Granular Scopes: zoom_events:write:ticket,zoom_events:write:ticket:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • registration_source

    string — The source of registration.

  • tickets

    array — List of tickets that needs to be created.

    Items:

    All of:

    • email (required)

      string, format: email — The email address used for the registration.

    • external_ticket_id

      string — A set of unique alphanumeric characters that references the external ticket ID.

    • fast_join

      boolean — Whether to support guest join i.e. Non-Zoom users (Fast join without upfront authentication). If true then the `registration_needed` flag should not be set to true as it is an invalid combination.

    • registration_needed

      boolean — Whether registrant needs to fill an online registration form. If **true** then the registration questions fields such as first_name, last_name, and address are not needed in the request body and are ignored if present. Also, if **true** then event_registration_link is returned instead of event_join_link in the response.

    • send_notification

      boolean — Whether to receive email notifications.

    • session_ids

      array — The list of session ID’s users want to register for the event. This is applicable only for recurring events with session level registration enabled.

      Items:

      string

    • ticket_type_id

      string — The ID of the ticket type for purchase. If the ticket type ID is not provided, it will pick the event default ticket type. If the default ticket type ID is deleted, this field is mandatory.

    • address

      string — The registrant's address.

    • city

      string — The registrant's city.

    • comments

      string — The registrant's questions and comments.

    • country

      string — The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • first_name

      string — The registrant's first name.

    • industry

      string — The registrant's industry.

    • job_title

      string — The registrant's job title.

    • last_name

      string — The registrant's last name.

    • organization

      string — The registrant's organization.

    • organization_size

      string — The registrant's number of employees.

    • phone

      string — The registrant's phone number.

    • state

      string — The registrant's state or province.

    • zip

      string — The registrant's ZIP or postal code.

    • custom_questions

      array — The information about custom questions.

      Items:

      • answer

        string — The custom question's response value.

      • title

        string — The title of the custom question.

Example:

{
  "registration_source": "Pardot",
  "tickets": [
    {
      "email": "email@example.com",
      "ticket_type_id": "pfalaof9s83lsLJD9u2d",
      "external_ticket_id": "iso9Djldop39dagjLj3j",
      "send_notification": false,
      "fast_join": false,
      "registration_needed": false,
      "session_ids": [
        "iso9Djldop39dagjLj3j"
      ],
      "first_name": "Jill",
      "last_name": "Chill",
      "address": "1800 Amphibious Blvd",
      "city": "Mountain View",
      "state": "CA",
      "zip": "94045",
      "country": "US",
      "phone": "5550100",
      "industry": "Food",
      "job_title": "Chef",
      "organization": "ABC Ltd.",
      "organization_size": "150",
      "comments": "Looking forward to the discussion.",
      "custom_questions": [
        {
          "title": "What do you hope to learn from this?",
          "answer": "Look forward to learning how you come up with new recipes and what other services you offer."
        }
      ]
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` The list of tickets.
Content-Type: application/json
  • errors

    array — The list of failure. If this list is empty all requests are successful. All failure records contains an entry in the error block.

    Items:

    • email

      string — The email address used for the registration.

    • error_code

      string, possible values: "email_not_found", "ticket_type_notfound", "stock_not_exist", "invalid_sale_time", "invalid_api_registration_questions_answers", "ticket_generated_failed", "fast_join_with_registrationNeeded", "tickets_duplicate_custom_questions" — The error code for the failure reason * email_not_found - `invalid or missing email` * ticket_type_notfound - `ticket type not found` * stock_not_exist - `stock not exist` * invalid_sale_time - `invalid sale date for the ticket type ID` * invalid_api_registration_questions_answers - `invalid question and answers` * ticket_generated_failed - `ticket not generated` * fast_join_with_registrationNeeded - `fast join with registration needed not supported` * missing_required_questions - `missing required questions` * non_configured_questions `request contains non configured questions`

    • message

      string — The email address used for the registration.

  • tickets

    array

    Items:

    • email (required)

      string — The email address used for the registration.

    • event_join_link

      string — A unique join link created for the ticket.

    • event_registration_link

      string — A unique registration link created for the registrant to register for the event.

    • external_ticket_id

      string — A set of unique alphanumeric characters that references the external ticket ID.

    • qr_code_url

      string — he URL for the 800x800 thumbnail image of the e-badge QR code. This field is applicable only for hybrid or in-person event types.

    • ticket_id

      string — A set of unique alphanumeric characters that references the ticket ID.

Example:

{
  "errors": [
    {
      "email": "email@zoom.us",
      "error_code": "fast_join_with_registrationNeeded",
      "message": "fast_join should not be true when when registration needed flag is true."
    }
  ],
  "tickets": [
    {
      "ticket_id": "iso9Dllddp39dagjLj9j",
      "external_ticket_id": "iso9Djldop39dagjLj3j",
      "event_join_link": "https://events.zoom.us/ejl/xyz",
      "event_registration_link": "https://events.zoom.us/etr/xyz123",
      "qr_code_url": "https://zoom.us/qr?t=5&ein=Ak61AAOitRj1r8MYQ70-u-Bho-KJvIEC7eEfb_lDBksIfKuA6Ax7~A8bIXPJw8mO01a2",
      "email": "email@zoom.us"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `26502` <br> The ticket type ID is invalid. <br> **Error Code:** `26501` <br> Event is not published yet. <br> **Error Code:** `26401` <br> The ticket sale dates are invalid. <br> **Error Code:** `260503` <br> Nonconfigured fields - ["email", "phone", "Foo,Bar", "Foo\"Bar"]. <br> **Error Code:** `260504` <br> Missing required fields - ["email", "phone", "Foo,Bar", "Foo\"Bar"]. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `2007` <br> Not enough stock or invalid `ticket_type_id`. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get a ticket

  • Method: GET
  • Path: /zoom_events/events/{eventId}/tickets/{ticketId}
  • Tags: Tickets

Retrieves information on a specific ticket.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_tickets:read,zoom_events_tickets:read:admin

Granular Scopes: zoom_events:read:ticket,zoom_events:read:ticket:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Ticket Information.
Content-Type: application/json

All of:

  • authentication_method

    string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the ticket: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication * `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

  • email

    string — The email address used for the registration.

  • event_join_link

    string — A unique join link created for the ticket.

  • external_ticket_id

    string — A set of unique alphanumeric characters that references the external ticket ID.

  • qr_code_url

    string — The URL generated after scanning the e-badge QR code image. This field is applicable only for hybrid or in-person event types.

  • registration_source

    string — The source of registration.

  • send_notification

    boolean — Whether to receive email notifications.

  • session_id

    string — Session ID registered for this ticket.This is applicable only for the tickets created for the recurring session.

  • ticket_id

    string — A set of unique alphanumeric characters that references the ticket ID.

  • ticket_role_type

    string, possible values: "normal", "alternative_host", "panelist", "bind_meeting", "speaker", "subscription", "sponsor", "interpreter", "host", "moderator", "expo_booth_owner", "attendee_without_order", "pre_registration", "company_zoom_room", "moderator_allhost", "hub_host", "hub_owner" — The ticket role type: * `normal` The normal ticket * `alternative_host` The alternative host ticket * `panelist` The panelist ticket * `bind_meeting` The bind meeting ticket * `speaker` The speaker ticket * `interpreter` The interpreter ticket * `sponsor` The sponsor ticket * `host` The host ticket * `moderator` The moderator ticket * `expo_booth_owner` The expo booth owner ticket * `attendee_without_order` The attendee without order ticket * `pre_registration` The pre-registration ticket * `company_zoom_room` The company Zoom Room ticket * `moderator_allhost` The moderator all host ticket * `hub_host` The hub host ticket * `hub_owner` The hub owner ticket * `subscription` The subscription ticket

  • ticket_type_id

    string — The ID of the ticket type for purchase.

  • address

    string — The registrant's address.

  • city

    string — The registrant's city.

  • comments

    string — The registrant's questions and comments.

  • country

    string — The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

  • first_name

    string — The registrant's first name.

  • industry

    string — The registrant's industry.

  • job_title

    string — The registrant's job title.

  • last_name

    string — The registrant's last name.

  • organization

    string — The registrant's organization.

  • organization_size

    string — The registrant's number of employees.

  • phone

    string — The registrant's phone number.

  • state

    string — The registrant's state or province.

  • zip

    string — The registrant's ZIP or postal code.

  • custom_questions

    array — Information about custom questions.

    Items:

    • answer

      string — The custom question's response value.

    • title

      string — The title of the custom question.

Example:

{
  "ticket_id": "iso9Dllddp39dagjLj9j",
  "ticket_type_id": "pfalaof9s83lsLJD9u2d",
  "external_ticket_id": "iso9Djldop39dagjLj3j",
  "event_join_link": "https://events.zoom.us/ejl/xyz",
  "send_notification": false,
  "email": "email@zoom.us",
  "ticket_role_type": "normal",
  "qr_code_url": "https://zoom.us/qr?t=9&ein=AkhZhct94cUqiDfRumcpPf0loI-QAOt5T9yh_vGRn2-BkPDmjfze~AyTxY2Fs9Nw6ADEk-edYyZIyGIzxVAI_v-Mci1S-KeyRhbZOG3-4kWVpYqSxJK-2Uls-j_GSHh9L7Ku_zZta-MDu2NCA1Rg",
  "registration_source": "Pardot",
  "session_id": "iso9Djldop39dagjLj3j",
  "authentication_method": "no_auth",
  "first_name": "Jill",
  "last_name": "Chill",
  "address": "1800 Amphibious Blvd",
  "city": "Mountain View",
  "state": "CA",
  "zip": "94045",
  "country": "US",
  "phone": "5550100",
  "industry": "Food",
  "job_title": "Chef",
  "organization": "ABC Ltd.",
  "organization_size": "150",
  "comments": "Looking forward to the discussion.",
  "custom_questions": [
    {
      "title": "What do you hope to learn from this?",
      "answer": "Look forward to learning how you come up with new recipes and what other services you offer."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2002` <br> Event not found. <br> **Error Code:** `26503` <br> Ticket not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a ticket

  • Method: DELETE
  • Path: /zoom_events/events/{eventId}/tickets/{ticketId}
  • Tags: Tickets

Deletes a ticket.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_tickets:write,zoom_events_tickets:write:admin

Granular Scopes: zoom_events:delete:ticket,zoom_events:delete:ticket:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Ticket deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Invalid request. **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `26503` <br> Ticket not found. <br> **Error Code:** `2002` <br> Event ID not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update ticket

  • Method: PATCH
  • Path: /zoom_events/events/{eventId}/tickets/{ticketId}
  • Tags: Tickets

Updates ticket questions for the given ticket ID and event ID.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_tickets:write,zoom_events_tickets:write:admin

Granular Scopes: zoom_events:write:ticket,zoom_events:write:ticket:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • address

    string — The registrant's address.

  • city

    string — The registrant's city.

  • comments

    string — The registrant's questions and comments.

  • country

    string — The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

  • custom_questions

    array — Information about custom questions.

    Items:

    • answer

      string — The custom question's response value.

    • title

      string — The title of the custom question.

  • external_ticket_id

    string — A set of unique alphanumeric characters that references the external ticket ID.

  • first_name

    string — The registrant's first name.

  • industry

    string — The registrant's industry.

  • job_title

    string — The registrant's job title.

  • last_name

    string — The registrant's last name.

  • organization

    string — The registrant's organization.

  • organization_size

    string — The registrant's number of employees.

  • phone

    string — The registrant's phone number.

  • state

    string — The registrant's state or province.

  • zip

    string — The registrant's ZIP or postal code.

Example:

{
  "first_name": "Jill",
  "last_name": "Chill",
  "address": "1800 Amphibious Blvd",
  "city": "Mountain View",
  "state": "CA",
  "zip": "94045",
  "country": "US",
  "phone": "5550100",
  "industry": "Food",
  "job_title": "Chef",
  "organization": "ABC Ltd.",
  "organization_size": "150",
  "comments": "Looking forward to the discussion.",
  "custom_questions": [
    {
      "title": "What do you hope to learn from this?",
      "answer": "Look forward to learning how you come up with new recipes and what other services you offer."
    }
  ],
  "external_ticket_id": "iso9Djldop39dagjLj3j"
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated the ticket questions.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1063` <br> Ticket ID can not updated. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260200` <br> Event access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `26503` <br> Ticket not found. <br> **Error Code:** `2002` <br> Event ID not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List channels

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/vod_channels
  • Tags: Video On-Demand

Retrieves the channel information for a hub.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_channels:read,zoom_events_vod_channels:read:admin

Granular Scopes: zoom_events:read:list_all_vod_channels,zoom_events:read:list_all_vod_channels:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Channel Information.
Content-Type: application/json
  • next_page_token

    string — The next page token.

  • total_records

    number — The total number of VOD channels.

  • vod_channels

    array — Channels

    Items:

    All of:

    • channel_id

      string — A set of unique alphanumeric characters that references the VOD channel ID.

    • is_published_to_hub

      boolean — This field only applies to `VIDEO_LIST_HUB` type channel. This flag determines whether the content is visible on attendee facing hub profile page.

    • name

      string — The name of the channel.

    • status

      string — The VOD channel status: Options: * `PUBLISHED` - Published channel. * `DRAFT` - Draft channel.

    • type

      string, possible values: "VIDEO_LIST_HUB", "MULTI_VIDEO_EMBEDDED", "SINGLE_VIDEO_EMBEDDED" — The channel type: * `VIDEO_LIST_HUB` - The channel content hosted on the Zoom Events platform. * `MULTI_VIDEO_EMBEDDED` - The embedded video channel. The video channel ( with multiple videos) can be embedded on a third-party website. * `SINGLE_VIDEO_EMBEDDED` - The single video embedded channel. A single video can be embedded on a third-party website.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "vod_channels": [
    {
      "channel_id": "iso9Dllddp39dagjLj9j",
      "name": "My Channel",
      "status": "PUBLISHED",
      "is_published_to_hub": true,
      "type": "VIDEO_LIST_HUB"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create VOD channel

  • Method: POST
  • Path: /zoom_events/hubs/{hubId}/vod_channels
  • Tags: Video On-Demand

Creates a channel for managing hub videos. Please check this support page for details about a video channel.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_vod_channels:write,zoom_events_vod_channels:write:admin

Granular Scopes: zoom_events:write:vod_channel,zoom_events:write:vod_channel:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • name (required)

    string — The name of the channel.

  • type (required)

    string, possible values: "VIDEO_LIST_HUB", "MULTI_VIDEO_EMBEDDED", "SINGLE_VIDEO_EMBEDDED" — The channel type: * `VIDEO_LIST_HUB` - The channel content hosted on the Zoom Events platform. * `MULTI_VIDEO_EMBEDDED` - The embedded video channel. The video channel ( with multiple videos) can be embedded on a third-party website. * `SINGLE_VIDEO_EMBEDDED` - The single video embedded channel. A single video can be embedded on a third-party website.

  • description

    string — Channel description.

Example:

{
  "name": "FoodieFlicks",
  "description": "A cinematic journey through the world of cuisine!.",
  "type": "VIDEO_LIST_HUB"
}

Responses

Status: 201 **HTTP Status Code:** `201` VOD channel returned.
Content-Type: application/json
  • channel_id

    string — The VOD channel ID.

  • description

    string — Channel description.

  • is_published_to_hub

    boolean — This field only applies to `VIDEO_LIST_HUB` type channel. This flag determines whether the content is visible on attendee facing hub profile page.

  • name

    string — The name of the channel.

  • status

    string, possible values: "PUBLISHED", "DRAFT" — The VOD channel status. Embed type channels are published by default: * `PUBLISHED` - Published channel. * `DRAFT` - Draft channel.

  • type

    string, possible values: "VIDEO_LIST_HUB", "MULTI_VIDEO_EMBEDDED", "SINGLE_VIDEO_EMBEDDED" — The channel type: * `VIDEO_LIST_HUB` - The channel content hosted on the Zoom Events platform. * `MULTI_VIDEO_EMBEDDED` - The embedded video channel. The video channel (with multiple videos) can be embedded on a third-party website. * `SINGLE_VIDEO_EMBEDDED` - The single video embedded channel. A single video can be embedded on a third-party website.

Example:

{
  "channel_id": "iso9Dllddp39dagjLj9j",
  "name": "FoodieFlicks",
  "description": "A cinematic journey through th world of cuisine!.",
  "type": "VIDEO_LIST_HUB",
  "status": "PUBLISHED",
  "is_published_to_hub": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Bad request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261104` <br> Video channel creation denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get VOD channel details

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}
  • Tags: Video On-Demand

Returns VOD channel details.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_channels:read,zoom_events_vod_channels:read:admin

Granular Scopes: zoom_events:read:vod_channel,zoom_events:read:vod_channel:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` VOD channel details retrieved successfully.
Content-Type: application/json
  • channel_id

    string — The VOD channel ID.

  • channel_link

    string — This field only applies to `VIDEO_LIST_HUB` type channels and the channel needs to be in `PUBLISHED` status. Attendees will access the channel details page via this [link](https://developers.zoom.us/docs/api/events/#tag/hubs/GET/zoom_events/hubs/{hubId}/videos).

  • description

    string — The description of the channel.

  • embed_script

    string — This field only applies to `SINGLE_VIDEO_EMBEDDED` and `MULTI_VIDEO_EMBEDDED` type channels. The channel content needs to be added and the script needs to be generated from the Zoom Events UI first. This script can be used to embed the VOD channel content in a third-party website. Please review the [documentation](https://developers.zoom.us/docs/zoom-events/vod-guide) for details on embeddable VOD channels.

  • is_published_to_hub

    boolean — This field only applies to `VIDEO_LIST_HUB` type channels. This flag determines whether the content is visible on the attendee-facing hub profile page.

  • name

    string — The name of the channel.

  • settings

    object — The channel settings

    • allow_domain_list

      array — The VOD channel registration is restricted to these specific domains. Enabling the allow list makes this channel private. Users must pass authentication to access the channel. Not applicable when the authentication method is `bypass_auth`.

      Items:

      string — Each domain can have up to 40 characters.

    • allow_email_list

      array — The VOD channel registration is restricted to users by email addresses. Enabling the allow list makes this channel private. Users must pass authentication to access the channel. Not applicable when the authentication method is `bypass_auth`.

      Items:

      string — Each email can have up to 60 characters.

    • authentication_method

      string, possible values: "zoom_account", "email_otp", "bypass_auth" — The authentication method to restrict content access to qualified users. This field only applies to `VIDEO_LIST_HUB` type channels. * `zoom_account` - Zoom account holder. * `email_otp` - Sign in with an email OTP. * `bypass_auth` - Bypass authentication.

  • status

    string, possible values: "PUBLISHED", "DRAFT" — The VOD channel status. Embed type channels are published by default: * `PUBLISHED` - Published channel. * `DRAFT` - Draft channel.

  • type

    string, possible values: "VIDEO_LIST_HUB", "MULTI_VIDEO_EMBEDDED", "SINGLE_VIDEO_EMBEDDED" — The channel type: * `VIDEO_LIST_HUB` - The channel content hosted on the Zoom Events platform. * `MULTI_VIDEO_EMBEDDED` - The embedded video channel. The video channel (with multiple videos) can be embedded on a third-party website. * `SINGLE_VIDEO_EMBEDDED` - The single video embedded channel. A single video can be embedded on a third-party website.

Example:

{
  "channel_id": "iso9Dllddp39dagjLj9j",
  "name": "FoodieFlicks",
  "description": "A cinematic journey through the world of cuisine!.",
  "status": "PUBLISHED",
  "is_published_to_hub": true,
  "type": "VIDEO_LIST_HUB",
  "embed_script": "<script src=\"https: //gozestatic.zoom.us/zoomevents-vod-sdk/0.0.8/vod_embed_sdk/zoomVodEmbed.js\"></script><div class=\"zoom-embed\" style=\"width:100%;height:100%;\" data-channel-id=\"RAvxS3RWSVOjgchfA1porQ\" data-video-id=\"CsjUfFg5Tx6Lj08sjpu2yA\" data-embed-option=\"inline\" data-embed-display=\"\" data-domain=\"https: //goevents.zoom.us\"><img src=\"https://onzoomcontent3.zoom.us/img/default_session_image.jpg\" style=\"width:100%;\"></div>",
  "channel_link": "https://events.zoom.us/ej/AqXm3Kdn61-zHknD9faMn5TFBVAXx4zwQOeMbJkkI63GDBVz6znZ~A1dLQvAML0MYNyUw-UnzDCKI_Sw",
  "settings": {
    "authentication_method": "bypass_auth",
    "allow_domain_list": [
      "zoom.us"
    ],
    "allow_email_list": [
      "example1@email.com"
    ]
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found Channel Not Found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Delete VOD Channel

  • Method: DELETE
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}
  • Tags: Video On-Demand

Deletes a video channel. Please check this support page for details about a video channel.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_vod_channels:write,zoom_events_vod_channels:write:admin

Granular Scopes: zoom_events:delete:vod_channel,zoom_events:delete:vod_channel:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Channel deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update VOD channel

  • Method: PATCH
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}
  • Tags: Video On-Demand

Updates a hub video channel. Please check this support page for details about a video channel.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_channels:write,zoom_events_vod_channels:write:admin

Granular Scopes: zoom_events:update:vod_channel,zoom_events:update:vod_channel:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • description

    string — Channel description.

  • name

    string — The name of the channel.

  • settings

    object — The channel settings.

    • allow_domain_list

      array — The VOD channel registration is restricted to these specific domains. Enabling allow list makes this channel private. Users must pass authentication to access the channel. Not applicable when the authentication method is 'bypass_auth'.

      Items:

      string — Each domain can have up to 40 characters.

    • allow_email_list

      array — The VOD channel registration restricted to users by email addresses. Enabling allow list makes this channel private. Users must pass authentication to access the channel. Not applicable when the authentication method is 'bypass_auth'.

      Items:

      string — Each email can have up to 60 characters.

    • authentication_method

      string, possible values: "zoom_account", "email_otp", "bypass_auth" — The authentication method to restrict content access to qualified users. This field only applies to `VIDEO_LIST_HUB` type channel. * `zoom_account` - Zoom account holder. * `email_otp` - Sign in with an email OTP. * `bypass_auth` - Bypass authentication.

Example:

{
  "name": "FoodieFlicks",
  "description": "A cinematic journey through the world of cuisine!.",
  "settings": {
    "authentication_method": "bypass_auth",
    "allow_domain_list": [
      "zoom.us"
    ],
    "allow_email_list": [
      "example1@email.com"
    ]
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Channel updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid Request.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

VOD channel actions

  • Method: POST
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/actions
  • Tags: Video On-Demand

Returns VOD channel action result.

Prerequisites:

  • A Pro or higher account plan.
  • A Zoom Webinars Plus or Events license.

Scopes: zoom_events_vod_channels:write,zoom_events_vod_channels:write:admin

Granular Scopes: zoom_events:update:vod_channel,zoom_events:update:vod_channel:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • operation

    string, possible values: "publish" — The host actions for the VOD channel. * `Publish` &mdash; Publish the VOD Channel.

Example:

{
  "operation": "publish"
}

Responses

Status: 200 **HTTP Status Code:** `200` VOD Channel status returned.
Content-Type: application/json
  • status

    string, possible values: "published" — The status of the channel operation.

Example:

{
  "status": "published"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD Channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List VOD channel videos

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/videos
  • Tags: Video On-Demand

Lists VOD channel videos.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_channels:read,zoom_events_vod_channels:read:admin

Granular Scopes: zoom_events:read:list_vod_channel_videos,zoom_events:read:list_vod_channel_videos:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Channel Video Information.
Content-Type: application/json
  • next_page_token

    string — The next page token.

  • total_records

    number — The total number of records in this page.

  • videos

    array — Channel Videos

    Items:

    All of:

    • duration

      integer — The video duration in minutes.

    • name

      string — The name of the video resource.

    • play_link

      string — Video Play Link.

    • status

      string, possible values: "processing", "done", "unknown" — The video status: Options: * `processing` - Video is in processing status and not available for viewing yet. * `done` - Processing complete and available for viewing. * `unknown` - Processing status is unknown.

    • video_id

      string — The Video ID.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "videos": [
    {
      "video_id": "iso9Dllddp39dagjLj9j",
      "name": "My Recording1",
      "status": "processing",
      "play_link": "https://abc/recording/unehd6TtTLuTN40owCOqqK",
      "duration": 30
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add VOD channel videos

  • Method: POST
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/videos
  • Tags: Video On-Demand

Adds videos to the VOD channel.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus / Events license

Scopes: zoom_events_vod_channels:write,zoom_events_vod_channels:write:admin

Granular Scopes: zoom_events:write:vod_channel_videos,zoom_events:write:vod_channel_videos:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "video_ids": [
    "iso9Dllddp39dagjLj9j"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` Videos added successfully.
Content-Type: application/json
  • errors

    array

    Items:

    • message

      string — Error message.

    • video_id

      string — The ID of the video that failed.

Example:

{
  "errors": [
    {
      "video_id": "asdsf232354sta23423234",
      "message": "Not able to add this video."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete VOD channel video

  • Method: DELETE
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/videos/{videoId}
  • Tags: Video On-Demand

Removes video from the VOD channel.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_channels:write,zoom_events_vod_channels:write:admin

Granular Scopes: zoom_events:delete:vod_channel_videos,zoom_events:delete:vod_channel_videos:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Videos deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD Channel not found. <br> **Error Code:** `261102` <br> Video not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get VOD Registration Questions

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/registration_questions
  • Tags: Video On-Demand Registrations

List registration questions and fields that are to be answered by users while registering for a vod channel. These questions are configured for the VOD channel after or before publishing the channel.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_registration:read,zoom_events_vod_registration:read:admin

Granular Scopes: zoom_events:read:vod_registration_questions,zoom_events:read:vod_registration_questions:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Successfully retrieved registration questions.
Content-Type: application/json

All of:

  • custom_questions

    array — An array of registrant custom questions.

    Items:

    • answers

      array — An array of answer choices. It can't be used for short or long answer type.

      Items:

      string

    • max_length

      integer — The maximum length of the custom question answer. This is applicable for short_answer/long_answer question types. The max_length should be greater than or equal min_length. The allowed max_length for short_answer is 500 and for long_answer is 2000.

    • min_length

      integer — The minimum length of the custom question answer. This is applicable for short_answer/long_answer question types. If this custom question is required then the min_length should be atleast 1.

    • question_id

      string — The ID of the custom question.

    • required

      boolean — Whether or not the custom question is required to be answered by a registrant.

    • title

      string — The custom question.

    • type

      string, possible values: "short_answer", "long_answer", "single_radio", "single_dropdown", "multiple_choice" — The question-answer type.

  • questions

    array — Array of registration fields whose values should be provided by registrants during registration.

    Items:

    • field_name

      string, possible values: "first_name", "last_name", "address", "city", "state", "zip", "country", "phone", "industry", "job_title", "organization", "organization_size" — The field name.

    • question_id

      string — The ID of the question.

    • required

      boolean — Whether the selected fields are required or optional.

    • title

      string — The title of the question.

Example:

{
  "questions": [
    {
      "field_name": "last_name",
      "required": true,
      "title": "Last Name",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA"
    }
  ],
  "custom_questions": [
    {
      "answers": [
        "Good"
      ],
      "required": true,
      "title": "How are you?",
      "question_id": "Fn2rBZgJQzi6VIU--uWqnA",
      "type": "short_answer",
      "min_length": 500,
      "max_length": 2000
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD Channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

update VOD channel registration questions

  • Method: PUT
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/registration_questions
  • Tags: Video On-Demand Registrations

Updates registration questions and fields that are to be answered by users while registering for a VOD channel. These questions are setup at VOD channel level.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_registration:write,zoom_events_vod_registration:write:admin

Granular Scopes: zoom_events:update:vod_registration_questions,zoom_events:update:vod_registration_questions:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • custom_questions

    array — Array of registrant custom questions.

    Items:

    • answers

      array — An array of answer choices. Can't be used for short or long answer type.

      Items:

      string

    • max_length

      integer — The maximum length of the custom question answer. This is applicable for short_answer/long_answer question types. The max_length should be greater than or equal min_length. The allowed max_length for short_answer is 500 and for long_answer is 2000.

    • min_length

      integer — The minimum length of the custom question answer. This is applicable for short_answer/long_answer question types. If this custom question is required then the min_length should be atleast 1.

    • required

      boolean — State whether or not the custom question is required to be answered by a registrant.

    • title

      string — Custom question.

    • type

      string, possible values: "short_answer", "long_answer", "single_radio", "single_dropdown", "multiple_choice" — The question-answer type.

  • questions

    array — Array of registration fields whose values should be provided by registrants during registration.

    Items:

    • field_name

      string, possible values: "first_name", "last_name", "address", "city", "state", "zip", "country", "phone", "industry", "job_title", "organization", "organization_size" — The field name.

    • required

      boolean — Whether the selected fields are required or optional.

    • title

      string — Title of the question.

Example:

{
  "questions": [
    {
      "field_name": "last_name",
      "required": true,
      "title": "Last Name"
    }
  ],
  "custom_questions": [
    {
      "answers": [
        "Good"
      ],
      "required": true,
      "title": "How are you?",
      "type": "short_answer",
      "min_length": 500,
      "max_length": 2000
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` Successfully updated registration questions.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `261101` <br> VOD channel not found. <br> **Error Code:** `2001` <br> Hub not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List VOD Registration

  • Method: GET
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/registrations
  • Tags: Video On-Demand Registrations

Retrieves the VOD registration information of a channel.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_registration:read,zoom_events_vod_registration:read:admin

Granular Scopes: zoom_events:read:vod_registrations,zoom_events:read:vod_registrations:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Registration Information.
Content-Type: application/json
  • next_page_token

    string — The next page token.

  • registrations

    array — Registrations

    Items:

    All of:

    • authentication_method

      string, possible values: "zoom_account", "zoom_account_otp", "corporate_idp", "no_auth", "email_opt", "zoom_account_otp_at_join" — The event authentication method for the registration: * `zoom_account` Zoom account holder * `zoom_account_otp` Zoom account holder with OTP * `corporate_idp` Corporate IDP * `no_auth` No authentication* `email_opt` registration using email OTP verification* `zoom_account_otp_at_join` pre-registration using email OTP verification

    • email

      string — The email address of the registrant

    • join_link

      string — The unique join link for the vod registratnt.

    • registration_id

      string — The unique registration ID.

    • address

      string — The registrant's address.

    • city

      string — The registrant's city.

    • comments

      string — The registrant's questions and comments.

    • country

      string — The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • first_name

      string — The registrant's first name.

    • industry

      string — The registrant's industry.

    • job_title

      string — The registrant's job title.

    • last_name

      string — The registrant's last name.

    • organization

      string — The registrant's organization.

    • organization_size

      string — The registrant's number of employees.

    • phone

      string — The registrant's phone number.

    • state

      string — The registrant's state or province.

    • zip

      string — The registrant's ZIP or postal code.

    • custom_questions

      array — Information about custom questions.

      Items:

      • answer

        string — The custom question's response value.

      • title

        string — The title of the custom question.

  • total_records

    number — The total number of registrations.

Example:

{
  "total_records": 1,
  "next_page_token": "yqT59YnBSHqvDdNnkeHQsA",
  "registrations": [
    {
      "registration_id": "iso9Dllddp39dagjLj9j",
      "email": "email@zoom.us",
      "join_link": "https://events.zoom.us/ejl/xyz",
      "authentication_method": "no_auth",
      "first_name": "Jill",
      "last_name": "Chill",
      "address": "1800 Amphibious Blvd",
      "city": "Mountain View",
      "state": "CA",
      "zip": "94045",
      "country": "US",
      "phone": "5550100",
      "industry": "Food",
      "job_title": "Chef",
      "organization": "ABC Ltd.",
      "organization_size": "150",
      "comments": "Looking forward to the discussion.",
      "custom_questions": [
        {
          "title": "What do you hope to learn from this?",
          "answer": "Look forward to learning how you come up with new recipes and what other services you offer."
        }
      ]
    }
  ]
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD Channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

VOD channel registration

  • Method: POST
  • Path: /zoom_events/hubs/{hubId}/vod_channels/{channelId}/registrations
  • Tags: Video On-Demand Registrations

Creates registrations for a VOD channel. You can add a single registrant or up to 30 registrants in a batch operation.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_vod_registration:write,zoom_events_vod_registration:write:admin

Granular Scopes: zoom_events:write:vod_registration,zoom_events:write:vod_registration:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • registrations

    array — The registrant information.

    Items:

    • email (required)

      string, format: email — The email address used for the registration.

    • address

      string — The registrant's address.

    • city

      string — The registrant's city.

    • country

      string — The registrant's two-letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • custom_questions

      array — The information about custom questions.

      Items:

      • answer

        string — The custom question's response value.

      • title

        string — The title of the custom question.

    • first_name

      string — The registrant's first name.

    • industry

      string — The registrant's industry.

    • job_title

      string — The registrant's job title.

    • last_name

      string — The registrant's last name.

    • organization

      string — The registrant's organization.

    • organization_size

      string — The registrant's number of employees.

    • phone

      string — The registrant's phone number.

    • state

      string — The registrant's state or province.

    • zip

      string — The registrant's ZIP or postal code.

Example:

{
  "registrations": [
    {
      "email": "email@zoom.us",
      "first_name": "Jill",
      "last_name": "Chill",
      "address": "1800 Amphibious Blvd",
      "city": "Mountain View",
      "state": "CA",
      "zip": "94045",
      "country": "US",
      "phone": "5550100",
      "industry": "Food",
      "job_title": "Chef",
      "organization": "ABC Ltd.",
      "organization_size": "150",
      "custom_questions": [
        {
          "title": "What do you hope to learn from this?",
          "answer": "Look forward to learning how you come up with new recipes and what other services you offer."
        }
      ]
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` The list of tickets.
Content-Type: application/json
  • registrations

    array

    Items:

    • email

      string — The email address of the registrant

    • join_link

      string — The unique join link for the vod registratnt.

    • registration_id

      string — The unique registration ID.

Example:

{
  "registrations": [
    {
      "registration_id": "iso9Dllddp39dagjLj9j",
      "email": "email@zoom.us",
      "join_link": "https://events.zoom.us/ejl/xyz"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `260101` <br> Hub access denied. <br> **Error Code:** `261103` <br> Video channel access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found Channel not found. **Error Code:** `2001` <br> Hub not found. <br> **Error Code:** `261101` <br> VOD Channel not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get metadata for a specific video

  • Method: GET
  • Path: /zoom_events/videos/{videoId}/metadata
  • Tags: Videos

Retrieves metadata for a specific video, including title, description, duration, creation time, last updated time, and associated tags.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_videos:read,zoom_events_videos:read:admin

Granular Scopes: zoom_events:read:video_metadata,zoom_events:read:video_metadata:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` <br> OK Video metadata retrieved successfully.
Content-Type: application/json
  • categories

    array — A list of hierarchical categories that classify the video. Each category can include multiple subcategories.

    Items:

    • name (required)

      string — The name of the main category.

    • sub_categories

      array — A list of subcategories related to this main category, used for more granular classification and filtering.

      Items:

      string

  • custom_fields

    object — A flexible key-value structure for additional custom metadata fields. This object supports arbitrary nesting for dynamic JSON structures, with a recommended maximum depth of 5 levels.

  • description

    string — A detailed description or summary of the video content.

  • duration

    integer, format: int64 — The length of the video in seconds.

  • external_media_id

    string — This field links the Migrated Media ID from an external system.

  • external_source_name

    string — The name of the external source system from which this data was migrated.

  • resources

    array — Supporting resource documents associated with the video (e.g., PDFs, DOCX, TXT).

    Items:

    • file_id

      string — The unique file reference ID from the file upload API.

    • file_name

      string — The display name of the file.

    • file_url

      string, format: uri — The downloadable URL for the resource file.

  • scheduling

    object — This field defines when the video becomes available and/or unavailable based on optional start and end times. Both timestamps are in UTC (ISO 8601).

    • end_time

      string, format: date-time — The end time (UTC) when the video stops being available. When `end_time` is provided, the video becomes unavailable after this time. If `start_time` is not provided, the video is available immediately until this time.

    • start_time

      string, format: date-time — The start time (UTC) when the video becomes available. When `start_time` is provided, the video becomes available only after this time. If `end_time` is not provided, the video remains available indefinitely after this time.

  • speakers

    array — A list of speakers associated with this video.

    Items:

    • name (required)

      string — The speaker's full name.

    • biography

      string — The speaker's biography.

    • company_name

      string — The speaker's company name.

    • company_website

      string, format: uri — The speaker's company website.

    • email

      string, format: email — The speaker's email address.

    • job_title

      string — The speaker's job title.

  • tags

    array — A list of tags or keywords associated with the video.

    Items:

    string

  • thumbnails

    array — A list of thumbnail images associated with this video.

    Items:

    • file_id

      string — The file reference ID for the thumbnail image.

    • file_url

      string, format: uri — A public or pre-signed URL to download or view the thumbnail.

    • is_default

      boolean — Indicates whether this thumbnail is set as the default.

  • title

    string — The name or title of the video.

  • transcripts

    array — A list of transcript files for this video.

    Items:

    • file_url

      string, format: uri — A public or pre-signed URL to download the transcript file.

    • is_default

      boolean — Whether this transcript file is the default caption file. The default transcript is displayed first by the player. When the first transcript file is uploaded, it automatically becomes the default regardless of whether this field is explicitly set.

    • language

      string — The language code (ISO 639-1 or BCP47).

  • updated_at

    string, format: date-time — The timestamp when the video metadata was last updated.

  • video_created_at

    string, format: date-time — The timestamp when the video was created.

Example:

{
  "title": "Keynote Session",
  "description": "Opening keynote for AI Summit 2025",
  "duration": 3600,
  "video_created_at": "2025-12-15T10:20:30Z",
  "updated_at": "2025-12-29T14:45:00Z",
  "tags": [
    "AI",
    "Keynote",
    "Conference"
  ],
  "categories": [
    {
      "name": "Technology",
      "sub_categories": [
        "AI",
        "Machine Learning",
        "Computer Vision"
      ]
    },
    {
      "name": "Innovation",
      "sub_categories": [
        "Startups",
        "Research"
      ]
    }
  ],
  "external_media_id": "legacy_vid_789",
  "external_source_name": "LegacyCMS",
  "thumbnails": [
    {
      "file_id": "thumb123",
      "file_url": "https://files.zoom.us/thumbnails/thumb123.jpg",
      "is_default": true
    },
    {
      "file_id": "thumb124",
      "file_url": "https://files.zoom.us/thumbnails/thumb124.jpg",
      "is_default": false
    }
  ],
  "speakers": [
    {
      "name": "John Doe",
      "email": "abc.xyz@zoomdev.us",
      "job_title": "Chief Scientist, Zoom AI",
      "biography": "Dr. Jane Doe leads AI research at Zoom.",
      "company_name": "Zoom Video Communications",
      "company_website": "https://zoom.us"
    }
  ],
  "scheduling": {
    "start_time": "2026-02-20T08:00:00Z",
    "end_time": "2026-02-28T08:00:00Z"
  },
  "transcripts": [
    {
      "file_url": "https://files.zoom.us/transcripts/transcript_en.vtt",
      "language": "en-US",
      "is_default": true
    },
    {
      "file_url": "https://files.zoom.us/transcripts/transcript_fr.vtt",
      "language": "fr-FR",
      "is_default": false
    }
  ],
  "resources": [
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE_001",
      "file_url": "https://files.zoom.us/resources/res_pdf_001.pdf",
      "file_name": "AI_Conference_Notes.pdf"
    },
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE_002",
      "file_url": "https://files.zoom.us/resources/res_doc_002.docx",
      "file_name": "Speaker_Bio.docx"
    }
  ],
  "custom_fields": {
    "session_info": {
      "target_audience": [
        "Students",
        "Industry Representatives"
      ],
      "sponsor": {
        "name": "ZoomTech",
        "tier": "Gold"
      }
    }
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `261107` <br> Video access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `261108` <br> Video/recording not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Update metadata for a specific video.

  • Method: PATCH
  • Path: /zoom_events/videos/{videoId}/metadata
  • Tags: Videos

Updates video metadata.

Prerequisites

  • A Pro or higher account plan

  • A Zoom Webinars Plus or Events license

Scopes: zoom_events_videos:write,zoom_events_videos:write:admin

Granular Scopes: zoom_events:update:video_metadata,zoom_events:update:video_metadata:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • categories

    array — List of hierarchical categories that classify the video. Each category can include multiple subcategories.

    Items:

    • name (required)

      string — The name of the main category.

    • sub_categories

      array — List of subcategories related to this main category. Used for more granular classification and filtering.

      Items:

      string

  • custom_fields

    object — Flexible key-value structure for additional custom metadata fields. This object supports arbitrary nesting for dynamic JSON structures, with a maximum depth of 5 levels.

  • description

    string — Detailed description or summary of the video content.

  • external_media_id

    string — Used to link the Migrated Media ID from an external system.

  • external_source_name

    string — Used to track the source of this data in case of migration.

  • resources

    array — Supporting resources (e.g., PDFs, DOCX). Each entry references an uploaded file.

    Items:

    • file_id (required)

      string — Unique file reference ID from the file upload API or from the get video metadata API.

  • scheduling

    object — Defines when the video becomes available and/or unavailable based on optional start and end times. Both timestamps are in UTC (ISO 8601).

    • end_time

      string, format: date-time — The end time (UTC) when the video stops being available. When 'end_time' is provided, the video becomes unavailable after this time. If 'start_time' is not provided, the video is available immediately until this time.

    • start_time

      string, format: date-time — The start time (UTC) when the video becomes available. When 'start_time' is provided, the video becomes available only after this time. If 'end_time' is not provided, the video remains available indefinitely after this time.

  • speakers

    array — List of speakers associated with this video.

    Items:

    • name (required)

      string — The speaker's full name.

    • biography

      string — The speaker's biography.

    • company_name

      string — The speaker's company name.

    • company_website

      string, format: uri — The speaker's company website URL.

    • email

      string, format: email — The speaker's email address.

    • job_title

      string — The speaker's job title.

  • tags

    array — List of tags or keywords associated with the video.

    Items:

    string

  • thumbnails

    array — Thumbnail metadata updates. Each entry references an uploaded file by file_id.

    Items:

    • file_id (required)

      string — Unique file reference ID from the file upload API or from the get video metadata API.

    • is_default

      boolean — Whether this thumbnail should be set as the default.

  • title

    string — The name or title of the video.

  • transcripts

    array — Transcript file updates. Each entry references a file and includes a language code.

    Items:

    • file_id (required)

      string — Unique file reference ID from the file upload API.

    • language (required)

      string — Language code (ISO 639-1 or BCP47)

    • is_default

      boolean — Indicates whether this transcript file is the default caption file. The default transcript is displayed first by the player. When the first transcript file is uploaded, it automatically becomes the default regardless of whether this field is explicitly set.

Example:

{
  "title": "Updated Keynote Title",
  "description": "Updated description text.",
  "tags": [
    "Conference",
    "AI"
  ],
  "categories": [
    {
      "name": "Technology",
      "sub_categories": [
        "AI",
        "Machine Learning",
        "Computer Vision"
      ]
    },
    {
      "name": "Innovation",
      "sub_categories": [
        "Startups",
        "Research"
      ]
    }
  ],
  "external_media_id": "legacy_vid_789",
  "external_source_name": "LegacyCMS",
  "thumbnails": [
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE123",
      "is_default": true
    },
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE456",
      "is_default": false
    }
  ],
  "transcripts": [
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE8",
      "language": "en-US",
      "is_default": true
    },
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE7",
      "language": "fr-FR",
      "is_default": false
    }
  ],
  "speakers": [
    {
      "name": "John Doe",
      "email": "abc.xyz@zoomdev.us",
      "job_title": "Chief Scientist, Zoom AI",
      "biography": "Dr. Jane Doe leads AI research at Zoom.",
      "company_name": "Zoom Video Communications",
      "company_website": "https://zoom.us"
    }
  ],
  "scheduling": {
    "start_time": "2026-02-20T08:00:00Z",
    "end_time": "2026-02-28T08:00:00Z"
  },
  "resources": [
    {
      "file_id": "rxBvggqyjQUal6TecwMlYwE001"
    },
    {
      "file_id": "xBvggqyjQUal6TecwMlYwE002"
    }
  ],
  "custom_fields": {
    "session_info": {
      "target_audience": [
        "Students",
        "Industry Representatives"
      ],
      "sponsor": {
        "name": "ZoomTech",
        "tier": "Gold"
      }
    }
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Video metadata updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `261107` <br> Video access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `261108` <br> Video/recording not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).