# Give your agent call recordings

Source: https://developer.nylas.com/docs/v3/getting-started/agent-notetaker/

Your agent needs call recordings to extract action items, summarize discussions, follow up on commitments, and keep a searchable record of meetings. The Nylas Notetaker API sends a bot to Zoom, Microsoft Teams, or Google Meet calls to record audio, video, and generate transcripts -- all accessible via simple API calls.

## Prerequisites

You need a Nylas API key and grant ID. If not set up yet, follow the [AI agents quickstart](/docs/v3/getting-started/cli-for-agents/) first.

```bash
nylas auth whoami --json
```

Export your credentials for the curl examples below:

```bash
export NYLAS_API_KEY=$(nylas auth token)
export NYLAS_GRANT_ID=$(nylas auth whoami --json | jq -r '.grant_id')
```

## Send a notetaker to a meeting

Give it any Zoom, Teams, or Meet link and it joins within seconds.

```bash
curl --request POST \
  --url "https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/notetakers" \
  --header "Authorization: Bearer $NYLAS_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "meeting_link": "https://zoom.us/j/123456789",
    "name": "Meeting Notes"
  }'
```

Save the `id` from the response -- you'll need it to retrieve the recording.

## Get the transcript and recording

After the meeting ends, retrieve the media files. The response includes download URLs for the video, audio, and transcript.

```bash
curl --request GET \
  --url "https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/notetakers/<NOTETAKER_ID>/media" \
  --header "Authorization: Bearer $NYLAS_API_KEY"
```

The transcript is available as a JSON file with timestamps and speaker labels -- structured data your agent can parse, summarize, or search.

## Auto-record all meetings

Instead of sending a notetaker to each meeting manually, configure it to automatically join every meeting on a user's calendar.

```bash
curl --request PUT \
  --url "https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/calendars/primary" \
  --header "Authorization: Bearer $NYLAS_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "notetaker": {
      "name": "Meeting Notes",
      "meeting_settings": {
        "video_recording": true,
        "audio_recording": true,
        "transcription": true
      },
      "rules": {
        "event_selection": ["all"]
      }
    }
  }'
```

Once enabled, Notetaker automatically joins any meeting on that calendar that has a video conferencing link.

### Check notetaker status

List all notetakers to see which are waiting, recording, or finished.

```bash
curl --request GET \
  --url "https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/notetakers" \
  --header "Authorization: Bearer $NYLAS_API_KEY"
```

### Example: meeting follow-up workflow

Here's a realistic pattern for an agent that processes meeting recordings:

```bash
# 1. List today's calendar events to find meetings that happened
nylas calendar events list --days 1 --json

# 2. Check which notetakers have finished recording
curl -s --request GET \
  --url "https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/notetakers" \
  --header "Authorization: Bearer $NYLAS_API_KEY" \
  | jq '.data[] | select(.status == "completed")'

# 3. Get the transcript
curl -s --request GET \
  --url "https://api.us.nylas.com/v3/grants/$NYLAS_GRANT_ID/notetakers/<NOTETAKER_ID>/media" \
  --header "Authorization: Bearer $NYLAS_API_KEY"

# 4. (Agent processes the transcript with its LLM to extract
#     action items, decisions, and follow-ups)

# 5. Send follow-up email with meeting summary
nylas email send \
  --to "team@example.com" \
  --subject "Meeting notes: Q3 planning" \
  --body "Here are the key decisions and action items from today..." \
  --yes
```

This combines calendar (find meetings), notetaker (get transcripts), and email (send follow-ups) into a single agent workflow.

## What's next

- **[Give your agent email access](/docs/v3/getting-started/agent-email/)** -- read, send, and search email
- **[Give your agent calendar access](/docs/v3/getting-started/agent-calendar/)** -- manage events and check availability
- **[Notetaker API quickstart](/docs/v3/getting-started/notetaker/)** -- full SDK examples for all languages
- **[Handling media files](/docs/v3/notetaker/media-handling/)** -- downloading, storing, and processing recordings
- **[Calendar sync deep dive](/docs/v3/notetaker/calendar-sync/)** -- event selection rules and filtering