Nylas · Schema

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.

CalendarCommunicationsContactsEmailMessagingSchedulingA2A

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
View JSON Schema on GitHub

JSON Schema

nylas-notetaker-media.schema.json Raw ↑
{
  "$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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/nylas-notetaker-media.schema"
All schemas
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.