How to Get Zoom Meeting Transcripts via the API

Zoom exposes cloud recording transcripts through its Cloud Recording API. Once a meeting is recorded to the cloud with the audio transcript setting on, the API returns a recording_files entry with file_type: TRANSCRIPT that you can download as a .vtt file using an OAuth server-to-server app. It inherits every limitation of the underlying feature: the meeting still needs a paid plan, cloud recording, and transcription enabled first.
How to Pull a Zoom Transcript Programmatically
- Confirm the meeting qualifies: it has to be on a paid Zoom plan, recorded to the cloud, with the account's audio transcript setting turned on. The API only returns a transcript for meetings that Zoom already generates one for natively — it doesn't create transcripts on its own.
- Authenticate with an OAuth server-to-server app. This is what Zoom's Cloud Recording API requires for programmatic access; there's no way to fetch recording data without it.
- Query the Cloud Recording API for the meeting's recording files.
- Look through the response for the
recording_filesentry withfile_type: TRANSCRIPT— cloud recordings return several file types (video, audio, chat), and the transcript is just one of them. - Download that entry's file URL to get the
.vttfile, and parse it yourself. Zoom returns the raw WebVTT text, not a structured or summarized output.
What This Actually Takes to Maintain
Pulling one transcript by hand through the API is straightforward once authentication works. Building a pipeline that does it automatically for every meeting is a different amount of work. You need to:
- Build and maintain the OAuth server-to-server app and its credentials
- Set up webhook subscriptions so your system knows when a new cloud recording (and its transcript) is ready, instead of polling the API on a schedule
- Parse the downloaded
.vttfile yourself — Zoom doesn't provide the transcript in JSON or any structured format, only raw WebVTT
And the API doesn't remove any of the prerequisites of the native feature: if the meeting wasn't on a paid plan, wasn't recorded to the cloud, or didn't have the audio transcript setting enabled, there is no transcript for the API to return, no matter how the request is built.
When the API Is More Than You Need
If you don't specifically need programmatic access and just want a transcript out of a Zoom call, building against the API is more work than the problem requires. Downloading the .vtt file directly from the Zoom web portal is faster for a one-off meeting — see our guide on finding your Zoom transcript after the meeting for where it lives and how long processing takes.
Recording system audio locally with a tool like MeetWave produces the same transcript, plus an AI summary, without writing any integration code or depending on a paid Zoom plan or admin-enabled cloud recording.
Frequently Asked Questions
Does the Zoom API generate transcripts, or just return existing ones?
Just return existing ones. The Cloud Recording API doesn't run transcription itself — it exposes whatever Zoom already generated for that meeting because cloud recording and the audio transcript setting were enabled. If those weren't on, there's no file_type: TRANSCRIPT entry to fetch, regardless of how the API is called.
What format does the Zoom API return the transcript in?
A .vtt (WebVTT) file — the same timestamped, plain-text format available for manual download from the Zoom web portal. The API doesn't offer a JSON or structured alternative; parsing the WebVTT into your own format is left to you.
Do I need a paid Zoom plan to use the API for transcripts?
Yes. The API inherits the same requirements as the native feature: a paid plan (Pro or above), cloud recording enabled, and the audio transcript setting turned on for the account. There's no API-only path that bypasses these.
Can I get notified automatically when a new transcript is ready, instead of polling?
Yes, that's what webhook subscriptions are for in this workflow — they let your system react when a new cloud recording (and its transcript file) becomes available, rather than checking the API on a schedule. Setting up and maintaining those subscriptions is part of the integration work, not something the API handles for you.
Is building the API integration worth it for a single meeting?
Usually not. The OAuth setup, webhook subscriptions, and VTT parsing are worth the effort for a pipeline pulling transcripts automatically after every meeting. For a one-off transcript, downloading the .vtt file from the Zoom web portal, or recording locally with a tool like MeetWave, gets you the same text with none of the integration work.
Ready to try AI meeting summaries?
Try MeetWave free — no credit card required.
Still comparing tools?
See how MeetWave stacks up against the tools most teams evaluate alongside it.
- MeetWave vs GranolaSee how MeetWave compares to Granola for bot-free meeting notes
- MeetWave vs TactiqSee how MeetWave compares to Tactiq for meeting transcripts
- MeetWave vs NottaSee how MeetWave compares to Notta for meeting transcription