Logo

Zoom

Authentication Type: Server-to-Server OAuth (Account ID + Client ID + Client Secret)
Description: Pull Zoom meeting metadata, cloud recordings, participants, and WebVTT transcripts for call analysis and downstream processing.


Authentication

These tools authenticate to Zoom using a Server-to-Server OAuth app. You'll need:

  • Account ID — found on the app's credentials page
  • Client ID — found on the app's credentials page
  • Client Secret — found on the app's credentials page

Required Scopes:

  • meeting:read:meeting:admin (or meeting:read) — read meeting metadata
  • cloud_recording:read:list_user_recordings:admin — list a user's cloud recordings
  • cloud_recording:read:recording:admin — access individual meeting recordings and transcripts
  • report:read:list_meeting_participants:admin (or report:read:admin) — list past meeting participants

Cloud recording and audio transcription must be enabled on the account for transcripts to be produced.


Meetings

Fetch metadata, cloud recordings, and transcripts for individual Zoom meetings.

Get Meeting

Fetch metadata for a Zoom meeting — topic, host, scheduled start time, duration, timezone, agenda, and join URL.

Operation Type: Query (Read)

Parameters:

  • meetingId string (required): The meeting numeric ID or UUID. UUIDs containing / or starting with / are double URL-encoded automatically per Zoom's rules
  • occurrenceId string (nullable): For recurring meetings, the specific occurrence ID

Returns:

  • id number: Numeric meeting ID
  • uuid string: Meeting UUID
  • hostId string (nullable): Host's Zoom user ID
  • hostEmail string (nullable): Host's email
  • topic string: Meeting topic
  • type number (nullable): Meeting type code (e.g. 2 = scheduled, 8 = recurring)
  • status string (nullable): Meeting status
  • startTime string (nullable): Scheduled start time (ISO 8601)
  • duration number (nullable): Duration in minutes
  • timezone string (nullable): IANA timezone
  • agenda string (nullable): Meeting agenda
  • createdAt string (nullable): Creation timestamp (ISO 8601)
  • joinUrl string (nullable): URL attendees use to join

Example Usage:

{
  "meetingId": "83925123456",
  "occurrenceId": null
}

Get Meeting Recordings

List all cloud recording files (audio, video, chat, transcript) for a single Zoom meeting instance, including download URLs.

Operation Type: Query (Read)

Parameters:

  • meetingId string (required): Meeting numeric ID or UUID. UUIDs are handled with Zoom's double-encoding rules

Returns:

  • uuid string: Meeting UUID
  • id number (nullable): Numeric meeting ID
  • topic string (nullable): Meeting topic
  • startTime string (nullable): Meeting start time (ISO 8601)
  • duration number (nullable): Duration in minutes
  • totalSize number (nullable): Combined size of all recording files in bytes
  • recordingCount number (nullable): Number of recording files
  • recordingFiles array of objects: All recording files attached to the meeting
    • id string (nullable): Recording file ID
    • fileType string (nullable): File type (e.g. MP4, M4A, TRANSCRIPT, CHAT)
    • fileExtension string (nullable): File extension
    • recordingType string (nullable): Recording type (e.g. shared_screen_with_speaker_view, audio_transcript)
    • fileSize number (nullable): File size in bytes
    • playUrl string (nullable): URL to play the recording in a browser
    • downloadUrl string (nullable): URL to download the raw file (requires the Zoom access token)
    • status string (nullable): Processing status
    • recordingStart string (nullable): Recording start time (ISO 8601)
    • recordingEnd string (nullable): Recording end time (ISO 8601)

Example Usage:

{
  "meetingId": "83925123456"
}

Get Meeting Transcript

Fetch the cloud recording transcript (WebVTT) for a Zoom meeting. Requires that cloud recording and audio transcription were enabled for the meeting.

Operation Type: Query (Read)

Parameters:

  • meetingId string (required): The meeting numeric ID or UUID. UUIDs containing / or starting with / are double URL-encoded automatically

Returns:

  • meetingId string: The meeting ID echoed from input
  • meetingUuid string: The meeting UUID from Zoom
  • topic string (nullable): The meeting topic
  • startTime string (nullable): Meeting start time (ISO 8601)
  • transcriptVtt string (nullable): The full transcript content in WebVTT format. null when no transcript is available for the meeting
  • downloadUrl string (nullable): The Zoom download URL for the transcript file

Example Usage:

{
  "meetingId": "abcDEFghiJKL1234567=="
}

Past Meetings

Resolve per-occurrence UUIDs and look up who actually attended.

List Past Meeting Instances

List the UUIDs of all past occurrences of a recurring Zoom meeting. Transcripts and recordings are keyed per-occurrence, so you typically need these UUIDs before fetching them.

Operation Type: Query (Read)

Parameters:

  • meetingId string (required): Numeric meeting ID (not UUID). For a recurring meeting, returns one entry per occurrence

Returns:

  • meetings array of objects: Past occurrences of the meeting
    • uuid string: Occurrence UUID — use this with the transcript/recording tools
    • startTime string (nullable): Occurrence start time (ISO 8601)

Example Usage:

{
  "meetingId": "83925123456"
}

List Past Meeting Participants

List the participants who attended a past Zoom meeting instance. Useful for attributing transcript content to specific attendees.

Operation Type: Query (Read)

Parameters:

  • meetingUuid string (required): Meeting UUID (not the numeric ID). Double-encoding is handled automatically
  • pageSize number (nullable): Max records per page, up to 300
  • nextPageToken string (nullable): Token for paging through results

Returns:

  • totalRecords number (nullable): Total number of participants across all pages
  • nextPageToken string (nullable): Token to fetch the next page, when more results are available
  • participants array of objects: Participants on this occurrence
    • id string (nullable): Zoom participant ID
    • name string: Display name in the meeting
    • userEmail string (nullable): Participant's email (when Zoom could resolve it)

Example Usage:

{
  "meetingUuid": "abcDEFghiJKL1234567==",
  "pageSize": 100,
  "nextPageToken": null
}

Users

Discover which of a user's meetings have recordings available.

List User Recordings

List cloud recordings for a Zoom user within a date range. Use this to discover past meetings that have recordings or transcripts available before fetching them individually.

Operation Type: Query (Read)

Parameters:

  • userId string (nullable): The Zoom user ID or email. Defaults to "me" (the token-owning user)
  • from string (nullable): Start date (yyyy-mm-dd). Zoom defaults to 1 month ago
  • to string (nullable): End date (yyyy-mm-dd). Zoom defaults to today
  • pageSize number (nullable): Max records per page, up to 300. Zoom defaults to 30
  • nextPageToken string (nullable): Token for paging through results

Returns:

  • from string (nullable): Start of the returned window
  • to string (nullable): End of the returned window
  • nextPageToken string (nullable): Token to fetch the next page
  • meetings array of objects: Meetings with cloud recordings in the window
    • uuid string: Meeting UUID
    • id number: Numeric meeting ID
    • topic string: Meeting topic
    • startTime string (nullable): Meeting start time (ISO 8601)
    • duration number (nullable): Duration in minutes
    • totalSize number (nullable): Combined size of all recording files in bytes
    • recordingCount number (nullable): Number of recording files
    • hasTranscript boolean: Whether a transcript file is attached to the meeting

Example Usage:

{
  "userId": "me",
  "from": "2026-03-01",
  "to": "2026-04-15",
  "pageSize": 100,
  "nextPageToken": null
}

Common Use Cases

Call transcript ingestion:

  • Use List User Recordings to discover recent meetings that have transcripts (hasTranscript: true)
  • For recurring meetings, use List Past Meeting Instances to enumerate per-occurrence UUIDs
  • Pull the WebVTT with Get Meeting Transcript, then parse it into speaker-attributed segments for summarization or search

Attribution and context:

  • Pair Get Meeting with List Past Meeting Participants to enrich transcripts with host, attendee names, and emails
  • Use Get Meeting Recordings when you need the raw audio/video file URLs alongside the transcript (e.g. for re-transcription with a different engine)