Providing Zoom Join Tokens

Generate and provide join tokens on your end and provide them to bots.


Not applicable for Recall/Customer-managed OAuth

This method of providing automatic recording for bots is only applicable if you don't need to use the Recall OAuth integration (Recall or Customer-managed).

If you already have an OAuth integration and don't require Recall's Zoom OAuth integration, you can also provide join tokens for local recording to bots yourself.

Setup Guide

To obtain a Join Token for Local Recording, and provide it to the Recall bot, you must:

  1. Create a Zoom OAuth application, which requests the scope meeting_token:read:local_recording
  2. Create an endpoint on your server, which does the following:
    1. Validates incoming requests to see if they're coming from Recall.
      1. We recommend using a query parameter for this, as the request from Recall to retrieve the Join Token will not set any specific headers, but will preserve all query parameters contained in the URL.
      2. For example, you could check for the presence of a query parameter called endpoint_secret containing a long random string.
    2. Associates an incoming request with a specific Zoom Meeting
      1. We recommend using a query parameter containing some identifier. For example, it could be the Zoom Meeting ID itself, or it could be the primary key of a row in your database containing the Zoom Meeting ID.
    3. Uses your OAuth credentials to call the "join token for local recording" endpoint to obtain the token for the specified Zoom meeting
    4. Returns the "join token for local recording" as a plain-text string
  3. Specify the previously mentioned endpoint zoom.join_token_url parameter when you call create_bot
    1. Immediately before the bot joins the Zoom meeting, the bot will make an HTTP GET request to the specified URL. This GET request will not contain an Authorization header, we recommend implementing authorization through a query parameter in the specified URL.
    2. The bot will provide the data contained in the HTTP response body to Zoom as the join token.
    3. If the join token is valid, the bot will immediately begin recording when it joins the call.

We have developed a simple CLI for interacting with Zoom OAuth, that allows you to connect your Zoom Account, retrieve a Join Token, and provide it to a bot. This can be helpful during development.