Skip to content
Skip to main content

Give your agent call recordings

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.

You need a Nylas API key and grant ID. If not set up yet, follow the AI agents quickstart first.

nylas auth whoami --json

Export your credentials for the curl examples below:

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

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

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.

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

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.

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

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.

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

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

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

# 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 \
--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.