# Meeting notetaker API guide

Source: https://developer.nylas.com/docs/cookbook/notetaker/notetaker-api-guide/

You want recordings and transcripts of your users' Zoom, Google Meet, and Microsoft Teams calls. Building that in-house means writing a separate meeting bot for each platform, handling three different join flows and media-capture paths, then wiring up speech-to-text on top. The Notetaker API replaces all three integrations with one endpoint: you send a bot to a meeting link, it joins the call, and it returns the recording, transcript, summary, and action items. You write the integration once and it works across every supported platform.

## What the Notetaker API does

The Notetaker API sends a bot that joins an online meeting as a participant, records the audio and video, and transcribes the conversation. After the meeting ends, it produces four outputs: an MP4 recording, a JSON transcript with speaker labels, an AI-generated summary, and a list of action items. One endpoint covers all 3 supported platforms: Zoom, Google Meet, and Microsoft Teams.

You toggle each output through the `meeting_settings` object, where `transcription` requires recording on, and `summary` and `action_items` each require transcription. See [Using Notetaker](/docs/v3/notetaker/) for the full settings reference.

## Supported meeting platforms

Notetaker joins meetings on Zoom, Google Meet, and Microsoft Teams using the join URL you pass in `meeting_link`. The bot always joins as a non-signed-in guest, so each of the 3 platforms handles admission differently. If a meeting restricts entry and nobody admits the bot within 10 minutes, the join times out with a `failed_entry` status and you get no recording.

The table below shows the join URL format and lobby behavior for each platform.

| Platform | Join URL example | Admit/lobby behavior | Notes |
| --- | --- | --- | --- |
| Google Meet | `https://meet.google.com/abc-defg-hij` | Set "Anyone with the link can join" or admit the bot from the lobby. | Records the participant grid and shared screen. |
| Zoom | `https://us05web.zoom.us/j/12345?pwd=...` | Disable the waiting room, or have the host admit the bot. | Records the full meeting window. |
| Microsoft Teams | `https://teams.microsoft.com/l/meetup-join/...` | Allow anonymous users to join, or admit the bot from the lobby. | Records the main meeting area. |

For the platform-specific recipes, see [Transcribe a Zoom meeting](/docs/cookbook/notetaker/transcribe-zoom-meeting/), [Transcribe a Google Meet meeting](/docs/cookbook/notetaker/transcribe-google-meet/), and [Transcribe a Teams meeting](/docs/cookbook/notetaker/transcribe-teams-meeting/).

## The Notetaker flow

The Notetaker flow runs from a single create request to a media download, with webhooks signaling each transition. You don't poll for status; you subscribe to the 5 Notetaker triggers and react when media becomes available. The media download URLs expire 3,600 seconds (60 minutes) after they're generated, so download promptly or regenerate them. Here's the end-to-end sequence:

1. Create the bot with a `POST /v3/grants/{grant_id}/notetakers` request (or the standalone `POST /v3/notetakers`) containing the `meeting_link`.
2. The bot joins the call and starts recording, emitting `notetaker.meeting_state` webhooks as it connects.
3. The meeting ends or the bot leaves, and Nylas processes the recording and transcript.
4. A `notetaker.media` webhook fires once each file is ready for download.
5. Fetch the output with `GET /v3/grants/{grant_id}/notetakers/{id}/media`.
6. Download each file within the 3,600-second window, or call the media endpoint again for fresh URLs.

For the full create-to-download walkthrough, see [Record and transcribe meetings](/docs/cookbook/use-cases/build/record-transcribe-meetings/). For media formats and storage, see [Handling Notetaker media files](/docs/v3/notetaker/media-handling/).

## Notetaker recipes

Each recipe below covers one task end-to-end with runnable requests, building on the 6 core endpoints: create, list, get by ID, get media, cancel, and leave. The 3 platform recipes share the same flow but differ in lobby setup, so start with the one that matches your meeting provider. Use the cross-cutting recipes for media retrieval, webhooks, and scheduling.

- [Transcribe a Zoom meeting](/docs/cookbook/notetaker/transcribe-zoom-meeting/) sends a bot to a Zoom call and walks through waiting-room and admission handling.
- [Transcribe a Google Meet meeting](/docs/cookbook/notetaker/transcribe-google-meet/) covers Google Meet join links and the "anyone with the link" setting.
- [Transcribe a Teams meeting](/docs/cookbook/notetaker/transcribe-teams-meeting/) explains anonymous-join configuration for Microsoft Teams.
- [Get the transcript and recording](/docs/cookbook/notetaker/get-transcript-and-recording/) shows how to fetch media and regenerate expired download URLs.
- [Handle Notetaker webhooks](/docs/cookbook/notetaker/notetaker-webhooks/) covers subscribing to the 5 triggers and reacting to media events.
- [Record and transcribe meetings](/docs/cookbook/use-cases/build/record-transcribe-meetings/) is the standalone create-to-download walkthrough with a single API key.
- [Scheduling with notetaking](/docs/cookbook/use-cases/build/scheduling-with-notetaking/) wires Scheduler to Notetaker so booked meetings record themselves.

## What's next

The pages below cover the API reference, media handling, and the underlying endpoints in depth. The reference documents all 6 grant-based endpoints plus their standalone variants at `/v3/notetakers`. Start with the Notetaker overview for settings and webhook triggers, then use the media guide when you build your download pipeline.

- [Using Notetaker](/docs/v3/notetaker/) for settings, transcription languages, and the 5 webhook triggers
- [Handling Notetaker media files](/docs/v3/notetaker/media-handling/) for recording formats and the 3,600-second URL window
- [API reference](/docs/reference/api/) for every Notetaker endpoint and request field