Top of pageSkip to main content

Using WebSockets

The WebSocket protocol offers a full-duplex communication channel over a single TCP connection (see rfc6455 for details). Zoom WebSocket events allow Developers to make a single, secured HTTP request to Zoom while keeping a single connection open to transmit all event data to the client subscribing to the event.

On This Page

Prerequisites

To use WebSockets, you must:

Add WebSocket events

  1. Go to the Feature section of your Server-to-Server OAuth app and toggle Event subscription to add an event.

  2. Choose the WebSocket method.

  3. Add a name for this event subscription.

  4. (Master account only) If you have a master account with several sub-accounts, you can choose whether to send event notifications to All users in the account or All users in the account and subaccounts. If you don't have a master account, use the default, All users in the account.

Server-to-Server add feature WebSocket event
  1. Add the events that you'd like to send.

  2. Click Save. You'll see the endpoint URL, which you can copy and use later (see Using WebSockets below for details).

Server-to-Server WebSocket event added
  1. Click Continue.

Using WebSockets

Follow the steps below to use WebSockets.

  1. Get an access token. Use your account credentials to get an access token for your app. For example, using curl, call the Zoom OAuth token API with the account_credentials grant_type and your account_id:

    curl -X POST -H 'Authorization: Basic Base64Encoder(clientId:clientSecret)' https://zoom.us/oauth/token?grant_type=account_credentials&account_id={accountId}
  • The response will be the access token, a bearer token_type that expires in an hour, with the scopes that you chose in your app settings screen:

    {
        "Access_token": String,
        "Token_type": "bearer",
        "Expire_in": long,
        "scope" : [String]
    }
  1. Copy the WebSocket EndPoint URL from the Event subscription page in your app (see Add WebSocket events above for details).

  2. Append the access token to the end of this URL and use it to open a connection to the server:

    wss://ws.zoom.us/ws?subscriptionId=ZhPGtK84QbapRWXzEBW7MA&access_token=access_token
  • For example, in Postman:
Postman open WebSocket request
  1. Send a heartbeat to the server every 30 seconds to keep the connection alive:

    {
        "module": "heartbeat"
    }
  • In Postman:
Postman WebSocket heartbeat
  1. Trigger the event to receive a response through your open WebSocket. Depending on the event that you subscribed to, you can trigger it through API, Web, or the Zoom app.
  • In Postman:
Postman WebSocket response

WebSockets Beta FAQ

What is a WebSocket?

The WebSocket protocol offers a full-duplex communication channel over a single TCP connection (see rfc6455 for details).

Today, Zoom Webhooks are the only means for developers to subscribe to receive event data about their account from Zoom in near-real-time. Webhooks are not viable solutions for many Zoom customers since they require a publicly-accessible web service that may need to accept millions of HTTP connections simultaneously to operate in production (especially for large enterprise customers).

Zoom will soon offer WebSocket events as an alternative method to Webhooks. WebSocket events allow customers' Developers to make a single, secured HTTP request to Zoom while keeping a single connection open to transmit all event data to the client subscribing to the event.

What is the difference between API calls, Webhooks, and WebSockets?

API calls

An API call is the process of a client application submitting a request to an API endpoint, the API server acting on that request, such as to retrieve data, and the server responding back to the client with a successful response that includes any data requested, or an error.

The Zoom authorization process

Webhooks

Webhooks are near real-time information about specific events in your Zoom account sent by Zoom via HTTP POST requests, one for each event. Event types include account events, app events such as deauthorization of your app, meetings events and more. See Using Webhooks for details.

WebSockets

A WebSocket is a two-way interactive communication session between the user's browser and a server. When this communication channel is opened, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.

The Zoom authorization process

What is the goal of this beta?

Before we make WebSockets generally available, we want to get feedback from our beta customers on the complete experience, such as getting started, Developer documentation, the app build flow, getting your app running, troubleshooting your app, and more. Once the beta has been enabled in your account, we will schedule meetings with you or your Developers to gather feedback.

If I fill the beta intake form, will I automatically get access to WebSockets?

No. We will evaluate your responses and make a decision based on that. If you are selected for the beta, you will receive an invitation to participate in the beta from no-reply@centercode.com. The email will contain a beta agreement which you must accept to be part of the beta. After you sign the beta agreement, you will be able to access any additional documentation and technical FAQs. It will take at least 48-72 hours to enable WebSockets in your account after you have accepted the beta agreement.

Can you enable the beta in my test account if I sign the agreement from a different account?

We would need you to sign the agreement from the test account as well.

Do I need to have a certain role within my Zoom Account to accept the agreement?

An Admin or Account owner from your Zoom Account must sign the beta agreement for us to enable the feature in your account.

Are WebSockets account level or user-managed?

Account level.

Can I use WebSockets outside of my Zoom Account?

No, WebSockets are "bound" to the account that creates them, and are not intended for multi-tenancy like Zoom Marketplace Apps.

What app types can I use to create WebSockets?

Currently, only Server-to-Server OAuth app types are able to create WebSockets.

When does the beta start?

We are hoping that the beta will begin on June 21st 2022 and will go on until July 15th 2022. We will be scheduling meetings with the beta testers to get feedback on WebSockets between 15th - 30th of July.

When will WebSockets be available for everyone?

We do not have an estimated date for that as of now.

Need help?

If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.