My Notes

  • OpenAPI Version: 3.1.1
  • API Version: 2

The My Notes API lets developers access My Notes content programmatically. With the My Notes API, you can surface content in external tools, automate organization, and connect Zoom’s AI meeting recaps to your apps. The My Notes API leverages the Canvas Search API for note search. Rather than duplicating the API documentation here,use this link to the Canvas File Search endpoint Canvas Search API.

Servers

  • URL: https://api.zoom.us/v2

Operations

List my notes

  • Method: GET
  • Path: /my_notes/notes
  • Tags: My Notes Management

Retrieves the user's notes associated with a specific meeting.

Scopes: my_notes:read

Granular Scopes: my_notes:read:note

Rate Limit Label: LIGHT

Responses

Status: 200 A list of notes associated with the meeting.
Content-Type: application/json
  • notes (required)

    array — The list of notes associated with the meeting.

    Items:

    • created_time (required)

      string, format: date-time — The time when the note was created.

    • modified_time (required)

      string, format: date-time — The time when the note was last modified.

    • note_id (required)

      string — The unique identifier of the note.

    • note_link (required)

      string, format: uri — The URL for accessing the note.

    • note_name (required)

      string — The display name of the note.

Example:

{
  "notes": [
    {
      "note_id": "note_abc123",
      "note_name": "Weekly sync notes",
      "note_link": "https://zoom.us/my-notes/note_abc123",
      "created_time": "2026-07-01T08:30:00Z",
      "modified_time": "2026-07-01T09:15:00Z"
    }
  ]
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get My Notes content and transcript

  • Method: GET
  • Path: /my_notes/notes/{noteId}/content
  • Tags: My Notes Management

Retrieve a note from My Notes, including its metadata and note content. Optionally include the associated meeting transcript by setting include=transcript.

Scopes: my_notes_content:read

Granular Scopes: my_notes:read:content

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 The note metadata and content.
Content-Type: application/json
  • manual_note_content (required)

    string — User-authored note content in Markdown format. An empty string when the user has not authored any manual content.

  • note_id (required)

    string — The unique ID of this note.

  • note_name (required)

    string — The note name.

  • note_url (required)

    string, format: uri — HTTPS URL that opens this note in the browser.

  • generated_note_content

    string — AI-generated note content in Markdown format. Omitted when no AI-generated content exists for this note.

  • transcript

    object — Transcript associated with this note. Returned only when the request's `include` query parameter contains `transcript` and this note has an associated transcript.

    • items

      array — Transcript segments ordered by start time.

      Items:

      • end_time (required)

        string — End offset of this segment (not a timestamp), formatted as `HH:MM:SS.mmm`, relative to the start of the transcript.

      • speaker_id (required)

        string — Identifier of the speaker for this segment. Matches `speaker_id` in the `speakers` list.

      • start_time (required)

        string — Start offset of this segment (not a timestamp), formatted as `HH:MM:SS.mmm`, relative to the start of the transcript.

      • text (required)

        string — Transcribed text of this transcript segment.

    • speakers

      array — Speakers referenced by transcript items through `speaker_id`. Each element represents a participant in the meeting, identified either as a Zoom user or through voice recognition.

      Items:

      • display_name (required)

        string — The display name of the speaker — the participant's Zoom display name if identified as a Zoom user, or the name assigned during voice recognition otherwise (for example, "Speaker 1").

      • speaker_id (required)

        string — Identifier of this speaker. Transcript items reference the speaker using this value. This identifier is scoped to the current meeting only; the same person may have a different `speaker_id` in another meeting.

      • zoom_user_id

        string — The unique Zoom user ID of the participant. Present only when the speaker can be identified as a Zoom user.

Example:

{
  "note_id": "lXyU1N4sTzSON6cgVwQ48Q",
  "note_name": "Weekly Sync Notes",
  "note_url": "https://docs.zoom.us/doc/9S1Vnf13RmqZ0ZYAD-k6uA",
  "manual_note_content": "Discussion follow-ups to review before the next sync.",
  "generated_note_content": "## Summary\n- Reviewed API rollout\n- Confirmed self-test plan",
  "transcript": {
    "items": [
      {
        "text": "Hello hello hello.",
        "start_time": "00:00:21.743",
        "end_time": "00:00:23.923",
        "speaker_id": "2049487510"
      }
    ],
    "speakers": [
      {
        "speaker_id": "2049487510",
        "display_name": "William Smith",
        "zoom_user_id": "OnsTZFMpTUWD_YTo2Z_3Lg"
      },
      {
        "speaker_id": "2049486460",
        "display_name": "Speaker 1"
      }
    ]
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request parameters.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission to access this resource.
Status: 404 **HTTP Status Code:** `404` <br> Not Found The requested resource was not found.
Status: 413 **HTTP Status Code:** `413` <br> Payload Too Large The requested content is too large to return.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error An internal server error occurred. Please try again later.