Nylas notetaker.media notification object
Sent when a recording or transcription is processing, available, or deleted. When the [retention window](/docs/v3/notetaker/retention-policies/) elapses, Nylas sends a final `notetaker.media` notification with `status: media_deleted` and no `media` object. This schema describes `data.object` inside the Nylas notification envelope.
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for the Notetaker bot. |
| grant_id | string | The grant ID that owns this Notetaker. |
| object | string | Always `notetaker`. |
| meeting_settings | object | Configuration for what the Notetaker captured. |
| meeting_provider | string | The video conferencing provider. |
| meeting_link | string | URL of the meeting the Notetaker attended. |
| join_time | integer | Unix timestamp when the Notetaker joined. |
| event | object | Calendar event associated with this Notetaker. |
| status | string | Media processing status. |
| state | string | Current state matching the media status. |
| media | object | Signed URLs for the media artifacts. Only present when `status` is `available`. Each sub-field is individually optional depending on the notetaker's `meeting_settings` — for example, `transcript` is o |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/nylas/refs/heads/main/json-schema/nylas-notetaker-media.schema.json",
"title": "Nylas notetaker.media notification object",
"description": "Sent when a recording or transcription is processing, available, or deleted. When the [retention window](/docs/v3/notetaker/retention-policies/) elapses, Nylas sends a final `notetaker.media` notification with `status: media_deleted` and no `media` object. This schema describes `data.object` inside the Nylas notification envelope.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the Notetaker bot."
},
"grant_id": {
"type": "string",
"description": "The grant ID that owns this Notetaker."
},
"object": {
"type": "string",
"description": "Always `notetaker`.",
"enum": [
"notetaker"
]
},
"meeting_settings": {
"type": "object",
"description": "Configuration for what the Notetaker captured.",
"properties": {
"video_recording": {
"type": "boolean",
"description": "Whether video recording was enabled."
},
"audio_recording": {
"type": "boolean",
"description": "Whether audio recording was enabled."
},
"transcription": {
"type": "boolean",
"description": "Whether transcription was enabled."
},
"summary": {
"type": "boolean",
"description": "Whether AI summary generation was enabled."
},
"summary_settings": {
"type": "object",
"description": "Custom instructions for summary generation.",
"properties": {
"custom_instructions": {
"type": "string",
"description": "Prompt instructions for the AI summary."
}
}
},
"action_items": {
"type": "boolean",
"description": "Whether AI action item extraction was enabled."
},
"action_items_settings": {
"type": "object",
"description": "Custom instructions for action item extraction.",
"properties": {
"custom_instructions": {
"type": "string",
"description": "Prompt instructions for action item extraction."
}
}
},
"leave_after_silence_seconds": {
"type": "integer",
"description": "Seconds of silence before the bot automatically left the meeting."
},
"messages": {
"type": "object",
"description": "Custom announcements posted by the bot to the meeting chat. Present only when configured. See [Custom announcements](/docs/v3/notetaker/custom-announcements/).",
"properties": {
"on_join": {
"type": "array",
"description": "Messages posted shortly after the bot joins, each on its own delay.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text"
],
"description": "Message format. Currently only `text`."
},
"content": {
"type": "string",
"description": "The message text (1\u20131,000 characters, HTML stripped)."
},
"send_after_ms": {
"type": "integer",
"description": "Delay in milliseconds from bot-join before posting (1\u2013600,000)."
}
}
}
},
"on_participant_join": {
"type": "array",
"description": "Messages posted on a trailing debounce when participants join.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text"
],
"description": "Message format. Currently only `text`."
},
"content": {
"type": "string",
"description": "The message text (1\u20131,000 characters, HTML stripped)."
},
"debounce_ms": {
"type": "integer",
"description": "Trailing debounce window in milliseconds (1\u2013600,000)."
}
}
}
}
}
}
}
},
"meeting_provider": {
"type": "string",
"description": "The video conferencing provider.",
"enum": [
"Google Meet",
"Zoom",
"Microsoft Teams"
]
},
"meeting_link": {
"type": "string",
"description": "URL of the meeting the Notetaker attended."
},
"join_time": {
"type": "integer",
"description": "Unix timestamp when the Notetaker joined."
},
"event": {
"type": "object",
"description": "Calendar event associated with this Notetaker.",
"properties": {
"ical_uid": {
"type": "string",
"description": "iCalendar UID of the associated event."
},
"event_id": {
"type": "string",
"description": "Nylas event ID of the associated event."
},
"master_event_id": {
"type": "string",
"description": "Master event ID for recurring events."
}
}
},
"status": {
"type": "string",
"description": "Media processing status.",
"enum": [
"available",
"media_deleted",
"media_error",
"processing"
]
},
"state": {
"type": "string",
"description": "Current state matching the media status.",
"enum": [
"available",
"media_deleted",
"media_error",
"processing"
]
},
"media": {
"type": "object",
"description": "Signed URLs for the media artifacts. Only present when `status` is `available`. Each sub-field is individually optional depending on the notetaker's `meeting_settings` \u2014 for example, `transcript` is only present if `transcription` was enabled, and `recording_file_format` is `mp3` instead of `mp4` for audio-only recordings.",
"properties": {
"recording": {
"type": "string",
"description": "Signed URL to download the video/audio recording. Omitted when not available."
},
"recording_duration": {
"type": "string",
"description": "Duration of the recording in seconds. Omitted when not available."
},
"recording_file_format": {
"type": "string",
"description": "File format of the recording. `mp4` for video recordings, `mp3` for audio-only recordings. Omitted when not available.",
"enum": [
"mp4",
"mp3"
]
},
"thumbnail": {
"type": "string",
"description": "Signed URL for the recording thumbnail image. Omitted when not available."
},
"transcript": {
"type": "string",
"description": "Signed URL to download the transcript. Omitted when not available."
},
"summary": {
"type": "string",
"description": "Signed URL to download the AI-generated summary. Omitted when not available."
},
"action_items": {
"type": "string",
"description": "Signed URL to download the AI-extracted action items. Omitted when not available."
},
"retained_until": {
"type": "integer",
"description": "Unix timestamp when the media files will be automatically deleted per the notetaker's resolved `retention_time`. The clock starts when the media was first stored. Present whenever media is available; see [Notetaker retention policies](/docs/v3/notetaker/retention-policies/)."
}
}
}
},
"required": [
"id",
"object",
"status"
],
"x-nylas-trigger": "notetaker.media",
"x-nylas-category": "Notetaker",
"x-provenance": {
"method": "authored",
"publisher": "Nylas",
"source": "https://developer.nylas.com/docs/reference/notifications/notetaker/notetaker-media/",
"derived_from": "nylas/developer.nylas.com@a7995fb6:src/_component-data/notification-schemas.json",
"generated": "2026-09-28"
},
"examples": [
{
"id": "<NOTETAKER_ID>",
"grant_id": "<NYLAS_GRANT_ID>",
"object": "notetaker",
"meeting_settings": {
"video_recording": true,
"audio_recording": true,
"transcription": true,
"summary": true,
"summary_settings": {
"custom_instructions": "Focus on action items related to the product launch."
},
"action_items": true,
"action_items_settings": {
"custom_instructions": "Group action items by team member."
},
"leave_after_silence_seconds": 300,
"messages": {
"on_join": [
{
"type": "text",
"content": "\ud83d\udc4b Hey team! I'm your AI notetaker \u2014 here to capture the key points.",
"send_after_ms": 5000
}
],
"on_participant_join": [
{
"type": "text",
"content": "\ud83d\udc4b Welcome! Recording and transcription are running.",
"debounce_ms": 3000
}
]
}
},
"meeting_provider": "Google Meet",
"meeting_link": "https://meet.google.com/abc-defg-hij",
"join_time": 1737500936,
"event": {
"ical_uid": "<ICAL_UID>",
"event_id": "<EVENT_ID>",
"master_event_id": "<MASTER_EVENT_ID>"
},
"status": "available",
"state": "available",
"media": {
"recording": "<SIGNED_URL>",
"recording_duration": "1800",
"recording_file_format": "mp4",
"thumbnail": "<SIGNED_URL>",
"transcript": "<SIGNED_URL>",
"summary": "<SIGNED_URL>",
"action_items": "<SIGNED_URL>"
}
}
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/nylas-notetaker-media.schema"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.