Zoom connector
The Zoom connector enables access to Zoom meetings, cloud recordings, transcripts, chat logs, and meeting participants via the Zoom REST API v2.
You can create connectors in Stack Management > Connectors.
Zoom connectors have the following configuration properties:
- Zoom access token
- A Zoom Server-to-Server OAuth access token. Generate one via the Zoom Marketplace or API (see Get API credentials). Tokens expire after 1 hour.
You can test connectors as you're creating or editing the connector in Kibana. The test verifies connectivity by calling the /users/me endpoint and displaying the authenticated user's name.
The Zoom connector has the following actions:
- Who am I
- Get the profile of the currently authenticated Zoom user, including name, email, role, timezone, and personal meeting URL. Takes no inputs.
- List meetings
-
List meetings for a user. Supports filtering by type (scheduled, live, upcoming, etc.).
- userId (optional): User ID or email. Defaults to
me. - type (optional): Meeting type filter. Valid values:
scheduled,live,upcoming,upcoming_meetings,previous_meetings. Defaults toupcoming. - pageSize (optional): Number of results per page (1–300).
- nextPageToken (optional): Pagination token from a previous response.
- userId (optional): User ID or email. Defaults to
- Get meeting details
-
Get details of a scheduled or recurring meeting, including topic, agenda, start time, duration, timezone, host info, join URL, passcode, and settings. Use this to understand what a meeting is about before looking at recordings or participants.
- meetingId (required): Meeting ID or UUID.
- Get past meeting details
-
Get summary information for a meeting that has already ended. Returns total minutes, participant count, and actual start/end times. Only works for past meetings.
- meetingId (required): Past meeting ID or UUID.
- Get meeting recordings
-
Get cloud recordings for a specific meeting. The response includes the recording passcode and
recording_fileswith types such asaudio_transcript(VTT),chat_file(TXT),shared_screen_with_speaker_view,audio_only, and more.- meetingId (required): Meeting ID or UUID.
- List user recordings
-
List cloud recordings for a user within a date range. Returns meetings with their
recording_files(including transcripts and chat files).- userId (optional): User ID or email. Defaults to
me. - from (optional): Start date in
YYYY-MM-DDformat. Defaults to current date. - to (optional): End date in
YYYY-MM-DDformat. Range cannot exceed 1 month. - pageSize (optional): Number of results per page (1–300).
- nextPageToken (optional): Pagination token from a previous response.
- userId (optional): User ID or email. Defaults to
- Download recording file
-
Download a recording file by its download URL. Works for transcripts (VTT format), chat logs (TXT format), and other recording files. Content exceeding the character limit is truncated.
- downloadUrl (required): The
download_urlfrom a recording file object obtained via Get meeting recordings or List user recordings. - maxChars (optional): Maximum characters to return. Defaults to 100,000. Content exceeding this limit is truncated, and the response includes a
truncatedflag.
- downloadUrl (required): The
- Get meeting participants
-
List people who actually attended a past meeting. Returns participant name, email, join/leave times, and duration. Only works for meetings that have already ended.
- meetingId (required): Past meeting ID or UUID.
- pageSize (optional): Number of results per page (1–300).
- nextPageToken (optional): Pagination token from a previous response.
- Get meeting registrants
-
List people who registered for a meeting. Works for both upcoming and past meetings that have registration enabled.
- meetingId (required): Meeting ID.
- status (optional): Filter by registration status. Valid values:
pending,approved,denied. Defaults toapproved. - pageSize (optional): Number of results per page (1–300).
- nextPageToken (optional): Pagination token from a previous response.
- Recommended flow
- Use Who am I to verify the connected user identity. Use List user recordings or Get meeting recordings to find available recording files, then call Download recording file with the
download_urlof the desired file. Look forrecording_typevalues ofaudio_transcriptfor transcripts andchat_filefor post-meeting chat logs.
To use the Zoom connector, you need to create a Server-to-Server OAuth app in the Zoom Marketplace:
Create a Server-to-Server OAuth app:
- Go to the Zoom App Marketplace
- Click Develop > Build App
- Select Server-to-Server OAuth
- Provide an app name and click Create
Note your credentials:
- Account ID: Displayed on the app credentials page
- Client ID: Displayed on the app credentials page
- Client Secret: Displayed on the app credentials page
Configure scopes:
- Navigate to the Scopes tab
- Add the following granular scopes:
user:read:user:admin— verify connectionmeeting:read:meeting:admin— get meeting detailsmeeting:read:list_meetings:admin— list meetingsmeeting:read:past_meeting:admin— get past meeting detailsmeeting:read:list_past_participants:admin— list past meeting participantsmeeting:read:list_registrants:admin— list meeting registrantscloud_recording:read:list_recording_files:admin— get meeting recordingscloud_recording:read:list_user_recordings:admin— list user recordings
Activate the app:
- Navigate to the Activation tab
- Click Activate your app
Generate an access token:
Use the following command to generate a token (valid for 1 hour):
curl -X POST "https://zoom.us/oauth/token?grant_type=account_credentials&account_id=YOUR_ACCOUNT_ID" \ -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"Copy the
access_tokenfrom the JSON response and paste it into the connector configuration in Kibana.
Zoom Server-to-Server OAuth tokens expire after 1 hour. You will need to regenerate the token when it expires. Cloud recordings (including transcripts and chat logs) require a Zoom Pro plan or higher.