List Meeting Recordings
zoom.list_meeting_recordings
ActionChat & messagingconnection required
Calls the Zoom API with the connection's credentials.
Read every cloud-recording file one meeting produced.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- OAuth 2.0
- Providers
- Zoom
- Secret shape
- {"account_id", "client_id", "client_secret"} — Server-to-Server OAuth
- Config it needs
- account_id
- Resolved by
- config.connection_id, else node.connection_id
Configuration
3 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
meeting_id The meeting number, as a string — an int64 read as a number loses digits. The spaced form Zoom's UI shows ('812 3456 7890') is accepted. | string | Yes | — | — | 81234567890 |
download_access_token Also return a token that authorises download_url on its own, so a later step can fetch the files without the Zoom API credential. Sent to Zoom as include_fields=download_access_token. | boolean | No | false | — | — |
ttl How long that download token stays valid, in seconds (max 604800 — one week). Only read when download_access_token is on. | number | Conditional | — | 1–604800; only with download_access_token | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"download_access_token": false,
"meeting_id": "81234567890"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
id The meeting number the recording belongs to, as a string. | string | — |
uuid The recorded instance's UUID. | string | — |
topic The meeting's topic. | string | — |
start_time When the recorded instance started. | string | — |
duration Recorded length in minutes. | number | — |
total_size Total bytes across every file. | number | — |
recording_count How many files the instance produced. | number | — |
recording_files The files themselves — see recording_files[]. | array | — |
recording_files[].id The recording file id. | string | — |
recording_files[].meeting_id The meeting UUID this file belongs to. | string | — |
recording_files[].file_type MP4, M4A, TRANSCRIPT, CHAT, CC, CSV… | string | — |
recording_files[].file_extension The file's extension. | string | — |
recording_files[].file_size Size in bytes. | number | — |
recording_files[].recording_type shared_screen_with_speaker_view, audio_only… | string | — |
recording_files[].recording_start When this file's recording started. | string | — |
recording_files[].recording_end When this file's recording ended. | string | — |
recording_files[].download_url Download link — needs the token to fetch it. | string | — |
recording_files[].play_url Browser playback link. | string | — |
recording_files[].status completed once Zoom has finished processing. | string | — |
count How many files the instance produced. | number | — |
download_access_token A token that authorises download_url, when include_fields asked for one. | string | — |
{
"count": 0,
"download_access_token": "",
"duration": 0,
"id": "",
"recording_count": 0,
"recording_files": [
{
"download_url": "",
"file_extension": "",
"file_size": 0,
"file_type": "",
"id": "",
"meeting_id": "",
"play_url": "",
"recording_end": "",
"recording_start": "",
"recording_type": "",
"status": ""
}
],
"start_time": "",
"topic": "",
"total_size": 0,
"uuid": ""
}Notes
- download_url is not public: fetching it needs the same Bearer token, or the download_access_token this node can return, in an Authorization header.
- Passing the meeting number reads the latest instance; pass an instance UUID to read a specific past occurrence.
- Zoom answers 3301 when the meeting has no cloud recording — a local recording is never visible through the API.
See List Meeting Recordings run in a workflow.
In a technical demo we add the Zoom connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.