My Notes, transcripts, and APIs

I’ve been doing a lot of searching through the forums and API docs, as well as testing out a bunch of API calls with both user-scoped and admin-scoped tokens. But I’m still having trouble figuring out the whole picture for when transcripts and/or AI Companion meeting summaries are available for a given meeting. I’m hoping someone can help me piece this puzzle together :slight_smile:

From what I can see, if AI Companion is on and generates a meeting summary, the a user-scoped API token for the host should be able to call the following:

https://api.zoom.us/v2/meetings/{meetingUuid}/meeting_summary

And get back the summary markdown content.

Similarly, if “generate transcript” for the AI Companion is also on, then the following should also work for the user-scoped API token for the host of the meeting:

https://api.zoom.us/v2/meetings/{meetingUuid}/transcript

But if I want to get that data and don’t have the host’s API token, the only alternative, I believe, is to have an admin-scoped API token (ex: meeting:read:summary:admin and cloud_recording:read:meeting_transcript:admin respectively).

And regardless of user-scope or admin-scoped API tokens, these two payload will only work if the AI Companion was activated to 1) make a summary and 2) capture the transcript.

Is all this correct so far? :sweat_smile:

OK, so now let’s turn to the new “My notes” feature. I love this feature because it appear to decentralize the summaries and transcription capabilities. Even when I’m not the host and the host hasn’t turned on AI Companion, I can still get the transcript of the meeting and summarize it:

Here is my problem: I can’t see any way to get the summary and/or transcript for a meeting that was strictly captured through “My notes”. The docs and in-meeting UI seem to suggest it’s individualized (My notes highlights “for you” for example), so I guess I can kindasorta see how it wouldn’t show up in the same API results as above. But then the question is: how DO I get this data via the REST API?

The data is definitely stored somewhere in the cloud: I can fetch when viewing the “My notes” doc and see it in the desktop app, web app, and mobile app. But every attempt to get that data using user-scoped or admin-scoped API tokens has failed. Is this content just unavailable via the API? Note: I can get the doc itself (if I have the file ID), but the doc doesn’t appear to hold the actual transcript even though I can see the the transcript in the docs UI. And it doesn’t even, as far as I can tell, have any metadata that associates the meeting and the contents of the doc, so it makes it difficult to rely on as a vector for fetching meeting summeries and/or transcripts.

Ultimately what I’m trying to do is quite simple: for any given user who has auth’d in my app, I want to be able to fetch the same summaries and transcripts that the Zoom app itself shows the user. I’m open to doing this with an admin-installed integration or a user-installed one. But so far, I’m finding that I can’t do that with either of this.

What am I missing? Or is this just a gap in the APIs today?

Thanks!

Ah, one more discovery I’ll note: I can get the “My notes” content (including transcript!) via MCP. Ideally, I’d just use the REST APIs since they fit my need better, but if MCP is the only option, we’ll make it work.

But really, I’d love it if someone could shed some light on how all this is supposed to work. Thank you!

Based on Zoom’s public documentation, My notes and Meeting Summary transcripts are handled differently. Zoom describes My notes as a personal note-taking feature, and says the resulting notes are yours and are not automatically shared with the host or other participants. By contrast, Zoom documents explicit host and admin access flows for Meeting Summary transcripts.

Where this matters for API access is the public developer surface. Zoom publicly documents Zoom Docs APIs as generic file APIs, but it does not document a My notes-specific endpoint, a meeting-linked retrieval route, or an admin retrieval path for another user’s My notes transcript. Zoom also says there is no API counterpart for Zoom Notes. So based on the current public docs, this looks like a gap in the public API rather than a missing scope or permission issue.

If you would prefer not to manage this integration complexity on your end, you might want to try out Recall.ai’s Meeting Bot API. It’s a simple API that allows you to fetch recordings and transcripts from Zoom calls, both live and after the call has ended.

Thanks for the reply, but I’m hoping to hear from someone (ideally a Zoom employee) about their APIs. We’ll keep Recall in mind, but right now we’re just focusing on Zoom.

@Lightbody_DBX we are working on the publishing of documentation for the API. Meanwhile I’ll ping you over PM

Thank you for the reply! :folded_hands: It appears that the doc (which holds the generated meeting notes) does not give us access to the underlying transcript, is that right? I’m still finding that MCP is the only place to get that item. I’m also finding that the get_meeting_assets is nice because it appears to search for transcripts and/or summaries in across three places: cloud recordings, AI Companion, and My notes. It’s pretty nice in that way. But I’m open to using an equivalent REST API to conduct the same retrieval of assets.

Hi ,

I was just wondering if I can get some guidance here , My Boss gave me this task and to be honest I am not quite clued up with API and all these

This is the request

an automation that pulls consult transcripts and generates a Google doc. There’s going to be more steps involved for a Zoom phone consult.

The intent is to generate case studies for videos, which can be repurposed across all social media platforms.

Bonus challenge - pull transcripts from past consults.

Can someone please help me on what to do or where to start?

Hello!
I’m solving the same problem and trying to pull the same transcripts. Could you ping me in PMs as well? Thank you

@chunsiong.zoom Hi, also in the same position! Would appreciate any info going :folded_hands:

@chunsiong.zoom I’ve spent several hours at this point searching the documentation and the internet for these! Thank you for the confirmation that they don’t exist yet! Would love to see them very soon.

I would appreciate a PM with this info also, many thanks.

Would really appreciate a PM too.

One question I have is more or less when is my notes feature planned to have API support so transcripts and summaries can be retrieved.

Same need here, a my notes API to grab transcripts would be game changer. PM would be so appreciated

@chunsiong.zoom Hi, would appreciate an update and PM on any info you can offer.

Hi @chunsiong.zoom — adding my voice to this thread, same use case as the others here.

I’m building an internal tool that pulls meeting transcripts into our planning system. I’ve already added the my_notes:read:content:admin scope to my Server-to-Server OAuth app and confirmed the token carries it, but every endpoint path I’ve tried returns 404 (/v2/notes, /v2/my_notes, /v2/users/{userId}/my_notes/content, etc.), which lines up with your note that the API isn’t published yet.

Would really appreciate a PM with the current endpoint reference (or early-access details) for reading My Notes content — transcript included. Happy to test against it and give feedback.

Two quick questions if you can share:

  1. Is my_notes:read:content:admin the correct/final scope for reading another (or one’s own) user’s My Notes transcript via S2S, or is a user-managed OAuth scope required?
  2. Any rough timeline for the public docs?

Thanks for keeping this thread alive.

@nicom @Dan8 @AndrewEI @antoniooliver @jordan.carvell @Karen4 @Armand @Alex29 @ShaunO

If you want to get transcript, this is possible via the MCP server. The specific tool “get_recording_resource” allows you to specify the meeting uuid, and returns the list of resources associated with the meeting recording. You will need scope “cloud_recording:read:content”.

While MCP are generally build for LLM to call directly, you can invoke this as a JSON-RPC call with the correctly scoped access token to https://mcp.zoom.us/mcp/zoom/streamable

It will be something like this

curl https://mcp.zoom.us/mcp/zoom/streamable
-H “Authorization: Bearer $ZOOM_ACCESS_TOKEN”
-H “Content-Type: application/json”
-H “Accept: application/json, text/event-stream”
-d ‘{
“jsonrpc”: “2.0”,
“id”: 1,
“method”: “tools/call”,
“params”: {
“name”: “get_recording_resource”,
“arguments”: {
“meetingId”: “YOUR_MEETING_UUID”
}
}
}’

Hi Chun,

Thanks for this. One follow-up the **cloud_recording:read:content** scope on **get_recording_resource** ... does that requirement mean the meeting needs cloud recording enabled to retrieve the transcript, or does it also work for AI Companion-generated transcripts on meetings with no cloud recording (recording-less meetings with summary/AI Companion only)?

I ask because I’ve tested **get_recording_resource** via MCP on a meeting with AI Companion on but no cloud recording, and got a 404 ‘This recording does not exist’ - despite the transcript being visible and downloadable from the Zoom web UI for that same meeting.

Would be good to get your confirmation on whether the MCP/JSON-RPC route actually solves that specific gap, or whether it’s still gated by cloud recording.

@Dan8 this is dependent on cloud recording.

MCP does not have stability guarantees though, right?