---
title: "Invite Notetaker to meeting"
method: POST
path: "/v3/grants/{grant_id}/notetakers"
tags: ["Notetaker"]
---

# Invite Notetaker to meeting

`POST /v3/grants/{grant_id}/notetakers`

Adds a Notetaker bot to the specified meeting.

<div id="admonition-info">ℹ️ <b>Nylas doesn't de-duplicate Notetaker bots</b>. Every <code>POST /v3/grants/&lt;NYLAS_GRANT_ID&gt;/notetakers</code> request you make invites a new Notetaker to the specified meeting.</div>

## Request body

- Notetakers
  - `join_time` integer — When the Notetaker bot should join the meeting, in seconds using the Unix timestamp format. If you don't specify a time, Notetaker joins the meeting immediately. If you provide a time that's in the past, Nylas returns an error.
  - `meeting_link` string, required — A meeting invitation link that Notetaker uses to join the meeting.
  - `meeting_settings` MeetingSettings — A collection of settings for the Notetaker bot.
    - `action_items` boolean — When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
    - `action_items_settings` object
      - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the list of action items it generates. `action_items` must be `true` to use this field.
    - `audio_recording` boolean — When `true`, Notetaker records the meeting's audio.
    - `leave_after_silence_seconds` integer — The number of seconds of silence after which the Notetaker bot automatically leaves the meeting. This helps end recordings when meetings have concluded but participants haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
    - `summary` boolean — When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
    - `summary_settings` object
      - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates. `summary` must be `true` to use this field.
    - `transcription` boolean — When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`, `video_recording` and `audio_recording` must also be `true`.
    - `video_recording` boolean — When `true`, Notetaker records the meeting's video.
    - `transcription_settings` object, nullable — Optional settings that tune how Notetaker transcribes audio. `transcription` must be `true` for these settings to take effect. Provide any combination of the fields below. The fields fall into two independent groups: - **Language hints** (`expected_languages`, `fallback_language`) constrain automatic language detection. This declares the languages you expect; it does not translate transcripts or force the recording into a specific language. - **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward domain-specific terms such as names, acronyms, and product names. Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar, events inherit the value unless the event's own request overrides it. Send `null` or `{}` to clear inherited settings and return to default transcription behavior. See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for supported language codes and validation rules.
      - `expected_languages` string[] — Language codes the audio is expected to contain. Optional. When provided, it must contain at least one supported code and cannot be `null` or empty. When omitted, transcription considers all supported languages.
      - `fallback_language` string — Language to use if Notetaker does not detect one of the `expected_languages`. Optional. When `expected_languages` is set, the fallback must be one of those codes. When `expected_languages` is omitted, transcription considers all supported languages and the fallback may be any supported code. When `fallback_language` is omitted, the transcriber auto-detects the language. The field is not stored, so responses do not return it.
      - `keywords` string[] — Domain-specific terms that bias transcription toward recognizing them correctly, such as names, acronyms, and product names. Optional. Up to 200 terms; each term must be 1 to 200 characters and cannot contain control characters. Cannot be `null`.
      - `use_speaker_names_as_keywords` boolean — When `true`, Notetaker adds known speaker names to the keyword set so they are transcribed accurately. Optional. Cannot be `null`.
  - `name` string — The display name for the Notetaker bot.

## Response `201`

Success. Returns information about Notetaker bot.

- object
  - `request_id` string — The request ID.
  - `data` object — The response object.
    - `grant_id` string — The ID of the grant associated with this Notetaker bot.
    - `id` string — The Notetaker ID.
    - `join_time` integer — When Notetaker joined the meeting, in seconds using the Unix timestamp format.
    - `meeting_link` string — The meeting link.
    - `meeting_provider` 'Google Meet' | 'Zoom Meeting' | 'Microsoft Teams' — The meeting provider.
    - `meeting_settings` MeetingSettings — A collection of settings for the Notetaker bot.
      - `action_items` boolean — When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
      - `action_items_settings` object
        - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the list of action items it generates. `action_items` must be `true` to use this field.
      - `audio_recording` boolean — When `true`, Notetaker records the meeting's audio.
      - `leave_after_silence_seconds` integer — The number of seconds of silence after which the Notetaker bot automatically leaves the meeting. This helps end recordings when meetings have concluded but participants haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
      - `summary` boolean — When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
      - `summary_settings` object
        - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates. `summary` must be `true` to use this field.
      - `transcription` boolean — When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`, `video_recording` and `audio_recording` must also be `true`.
      - `video_recording` boolean — When `true`, Notetaker records the meeting's video.
      - `transcription_settings` object, nullable — Optional settings that tune how Notetaker transcribes audio. `transcription` must be `true` for these settings to take effect. Provide any combination of the fields below. The fields fall into two independent groups: - **Language hints** (`expected_languages`, `fallback_language`) constrain automatic language detection. This declares the languages you expect; it does not translate transcripts or force the recording into a specific language. - **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward domain-specific terms such as names, acronyms, and product names. Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar, events inherit the value unless the event's own request overrides it. Send `null` or `{}` to clear inherited settings and return to default transcription behavior. See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for supported language codes and validation rules.
        - `expected_languages` string[] — Language codes the audio is expected to contain. Optional. When provided, it must contain at least one supported code and cannot be `null` or empty. When omitted, transcription considers all supported languages.
        - `fallback_language` string — Language to use if Notetaker does not detect one of the `expected_languages`. Optional. When `expected_languages` is set, the fallback must be one of those codes. When `expected_languages` is omitted, transcription considers all supported languages and the fallback may be any supported code. When `fallback_language` is omitted, the transcriber auto-detects the language. The field is not stored, so responses do not return it.
        - `keywords` string[] — Domain-specific terms that bias transcription toward recognizing them correctly, such as names, acronyms, and product names. Optional. Up to 200 terms; each term must be 1 to 200 characters and cannot contain control characters. Cannot be `null`.
        - `use_speaker_names_as_keywords` boolean — When `true`, Notetaker adds known speaker names to the keyword set so they are transcribed accurately. Optional. Cannot be `null`.
    - `name` string — The display name for the Notetaker bot.
    - `object` string — The type of object.
    - `state` 'scheduled' | 'connecting' | 'waiting_for_entry' | 'attending' | 'disconnected' | 'worker_finished' | 'processing' | 'available' | 'media_error' | 'media_deleted' | 'failed_entry' — The current state of the Notetaker bot.
    - `status` string — The current status of the Notetaker bot.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `429` — Rate Limit

---

[API](https://skmtc.dev/nylas/apis/nylas-api.md) · [All operations](https://skmtc.dev/nylas/apis/nylas-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nylas/nylas-api/revisions/51c2c1b4ecff/schema)
