---
title: "Update my settings"
method: PATCH
path: "/me/settings"
tags: ["Settings"]
---

# Update my settings

`PATCH /me/settings`

## Request

- Base URL: `https://demodesk.com/api/v2`
- URL: `https://demodesk.com/api/v2/me/settings`
- Auth: HTTP bearer

Changes the personal settings of the user represented by the API key or OAuth token. Only the fields in
the body are changed, and an empty body changes nothing. `null` is never a valid value: omit a field
instead of sending `null`. All changes of one request are saved together or not at all.

Changes to which meetings the notetaker records take effect the same way as in the web app, including
for meetings that are already scheduled: recording choices made for single upcoming meetings are reset.

`customVocabulary` and `excludedMeetingKeywords` replace the whole list. To add an entry, read the
list first and send it back with the new entry. A `customVocabulary` entry with a comma, semicolon
or line break returns `400` with the code `invalid_field`. A keyword list longer than 10000
characters in total, or an invalid `timeZone`, return `400` with the code `validation_failed`. Unknown
fields return `400` with the code `unknown_field`, and values of the wrong type return `400` with the
code `invalid_field`.

Rate limits:
- Global: 120 requests per minute per API key.
- Endpoint-specific: 30 requests per minute per API key, shared with `PATCH /company/settings`.

## Request body

- UserSettingsUpdateRequest: All fields are optional; omitted fields stay unchanged. `null` is never a valid value.
  - `customVocabulary` string[]: Your personal keyword list for transcription: product names, people and jargon that transcripts should spell correctly, in priority order. Your keywords are used before the company's. Terms are trimmed and must not contain commas, semicolons or line breaks. Duplicates are removed when reading. All terms joined by commas may have at most 10000 characters.
  - `recordInternalMeetings` boolean: Let the notetaker record your internal meetings, where all participants are from your company.
  - `recordExternalMeetings` boolean: Let the notetaker record your external meetings, where at least one participant is from outside your company.
  - `recordPrivateMeetings` boolean: Let the notetaker record meetings that have private visibility in your calendar.
  - `recordMeetingsWithoutAttendees` boolean: Let the notetaker record online meetings that have a meeting link but no other participants.
  - `onlyImportMeetingsWhereUserIsHost` boolean: Only record meetings that you organize. With `false`, the notetaker also records meetings where someone else is the organizer.
  - `skipCancelledMeetings` boolean: Don't record meetings that were cancelled in your calendar.
  - `excludedMeetingKeywords` string[]: Don't record meetings whose title or participants' email addresses contain one of these keywords, ignoring case.
  - `audioOnly` boolean: Record audio only instead of audio and video.
  - `sendSummaryEmails` boolean: Email me the summary of meetings I host after they are recorded.
  - `sendSummaryEmailsForDialers` boolean: Also email me summaries of phone calls from dialers (Aircall, Teams Phone or a CRM dialer). Only applies when `sendSummaryEmails` is `true`.
  - `sendScorecardEmails` boolean: Email me the scorecard of meetings I host after they are scored. Phone calls follow `sendScorecardEmailsForDialers` instead.
  - `sendScorecardEmailsForDialers` boolean: Email me the scorecard of phone calls from dialers (Aircall, Teams Phone or a CRM dialer) after they are scored.
  - `sendTeamRecordingsDailyDigest` boolean: Email me a daily digest of my team's recordings.
  - `sendReportResultEmails` boolean: Email me when one of my reports has a new result.
  - `sendAutoCrmSyncReadyForAcceptanceNotification` boolean: Email me when a CRM update from one of my meetings waits for my approval, or when nothing from it could be synced to the CRM.
  - `sendHandoverNotificationEmails` boolean: Email me when a meeting is handed over to me.
  - `sendAutoSignupApprovalNotifications` boolean: Only has an effect for company admins: email me when someone from the company's domain signs up and waits for approval. Any user can change it, but only admins receive these emails.
  - `allowAiEmails` boolean: Allow the AI assistant to email me, or to email support on my behalf.
  - `locale` 'da' | 'de' | 'el' | 'en' | 'es' | 'fr' | 'he' | 'it' | 'ja' | 'nb' | 'nl' | 'pl' | 'pt' | 'sv': Language of the web app and of my emails.
  - `timeZone` string: My time zone, as an IANA time zone name.

## Response `200`

Settings updated, or unchanged for an empty body.

- UserSettingsResponse
  - `data` UserSettings, required
    - `customVocabulary` string[], required: Your personal keyword list for transcription: product names, people and jargon that transcripts should spell correctly, in priority order. Your keywords are used before the company's. Terms are trimmed and must not contain commas, semicolons or line breaks. Duplicates are removed when reading. All terms joined by commas may have at most 10000 characters.
    - `recordInternalMeetings` boolean, required: Let the notetaker record your internal meetings, where all participants are from your company.
    - `recordExternalMeetings` boolean, required: Let the notetaker record your external meetings, where at least one participant is from outside your company.
    - `recordPrivateMeetings` boolean, required: Let the notetaker record meetings that have private visibility in your calendar.
    - `recordMeetingsWithoutAttendees` boolean, required: Let the notetaker record online meetings that have a meeting link but no other participants.
    - `onlyImportMeetingsWhereUserIsHost` boolean, required: Only record meetings that you organize. With `false`, the notetaker also records meetings where someone else is the organizer.
    - `skipCancelledMeetings` boolean, required: Don't record meetings that were cancelled in your calendar.
    - `excludedMeetingKeywords` string[], required: Don't record meetings whose title or participants' email addresses contain one of these keywords, ignoring case.
    - `audioOnly` boolean, required: Record audio only instead of audio and video.
    - `sendSummaryEmails` boolean, required: Email me the summary of meetings I host after they are recorded.
    - `sendSummaryEmailsForDialers` boolean, required: Also email me summaries of phone calls from dialers (Aircall, Teams Phone or a CRM dialer). Only applies when `sendSummaryEmails` is `true`.
    - `sendScorecardEmails` boolean, required: Email me the scorecard of meetings I host after they are scored. Phone calls follow `sendScorecardEmailsForDialers` instead.
    - `sendScorecardEmailsForDialers` boolean, required: Email me the scorecard of phone calls from dialers (Aircall, Teams Phone or a CRM dialer) after they are scored.
    - `sendTeamRecordingsDailyDigest` boolean, required: Email me a daily digest of my team's recordings.
    - `sendReportResultEmails` boolean, required: Email me when one of my reports has a new result.
    - `sendAutoCrmSyncReadyForAcceptanceNotification` boolean, required: Email me when a CRM update from one of my meetings waits for my approval, or when nothing from it could be synced to the CRM.
    - `sendHandoverNotificationEmails` boolean, required: Email me when a meeting is handed over to me.
    - `sendAutoSignupApprovalNotifications` boolean, required: Only has an effect for company admins: email me when someone from the company's domain signs up and waits for approval. Any user can change it, but only admins receive these emails.
    - `allowAiEmails` boolean, required: Allow the AI assistant to email me, or to email support on my behalf.
    - `locale` 'da' | 'de' | 'el' | 'en' | 'es' | 'fr' | 'he' | 'it' | 'ja' | 'nb' | 'nl' | 'pl' | 'pt' | 'sv', required: Language of the web app and of my emails.
    - `timeZone` string, required: My time zone, as an IANA time zone name.

## Other responses

- `400`: Request validation failed.
- `401`: API key is missing or invalid.
- `403`: The authenticated user is not allowed to access this resource, e.g. it is not assigned to a company.
- `429`: Rate limit exceeded.

## Changes

- **2026-10-22** `944429ffb0f7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/demodesk/apis/demodesk-public-api/changes/me/settings/patch.md)

---

[API](https://skmtc.dev/demodesk/apis/demodesk-public-api.md) - [All operations](https://skmtc.dev/demodesk/apis/demodesk-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/demodesk/apis/demodesk-public-api/revisions/8729e4025dc9?raw)
