---
title: "PATCH /api/v1/users/{user}/settings/{setting}"
method: PATCH
path: "/api/v1/users/{user}/settings/{setting}"
tags: ["UserService"]
---

# PATCH /api/v1/users/{user}/settings/{setting}

`PATCH /api/v1/users/{user}/settings/{setting}`

UpdateUserSetting updates the user setting.

## Path parameters

- `user` string, required
- `setting` string, required

## Query parameters

- `updateMask` string, field-mask

## Request body

- UserSetting — User settings message
  - `name` string — The name of the user setting. Format: users/{user}/settings/{setting}, {setting} is the key for the setting. For example, "users/steven/settings/GENERAL" for general settings.
  - `generalSetting` UserSettingGeneralSetting — General user settings configuration.
    - `locale` string — The preferred locale of the user.
    - `memoVisibility` string — The default visibility of the memo.
    - `theme` string — The preferred theme of the user. This references a CSS file in the web/public/themes/ directory. If not set, the default theme will be used.
    - `saveMediaMetadata` boolean — Whether the official client should save metadata from future media uploads.
  - `webhooksSetting` UserSettingWebhooksSetting — User webhooks configuration.
    - `webhooks` UserWebhook[] — List of user webhooks.
      - `name` string — The name of the webhook. Format: users/{user}/webhooks/{webhook}
      - `url` string — The URL to send the webhook to.
      - `displayName` string — Optional. Human-readable name for the webhook.
      - `createTime` string, date-time — The creation time of the webhook.
      - `updateTime` string, date-time — The last update time of the webhook.
      - `signingSecret` string — Optional. Signing secret used to HMAC-SHA256 sign the webhook request body. This field is input-only; it is never returned in responses.
      - `signingSecretSet` boolean — Whether a signing secret is configured for this webhook.
  - `tagsSetting` UserSettingTagsSetting — User-specific tag metadata.
    - `tags` object — Map of tag name pattern to tag metadata. Each key is treated as an anchored regular expression (^pattern$).

## Response `200`

OK

- UserSetting — User settings message
  - `name` string — The name of the user setting. Format: users/{user}/settings/{setting}, {setting} is the key for the setting. For example, "users/steven/settings/GENERAL" for general settings.
  - `generalSetting` UserSettingGeneralSetting — General user settings configuration.
    - `locale` string — The preferred locale of the user.
    - `memoVisibility` string — The default visibility of the memo.
    - `theme` string — The preferred theme of the user. This references a CSS file in the web/public/themes/ directory. If not set, the default theme will be used.
    - `saveMediaMetadata` boolean — Whether the official client should save metadata from future media uploads.
  - `webhooksSetting` UserSettingWebhooksSetting — User webhooks configuration.
    - `webhooks` UserWebhook[] — List of user webhooks.
      - `name` string — The name of the webhook. Format: users/{user}/webhooks/{webhook}
      - `url` string — The URL to send the webhook to.
      - `displayName` string — Optional. Human-readable name for the webhook.
      - `createTime` string, date-time — The creation time of the webhook.
      - `updateTime` string, date-time — The last update time of the webhook.
      - `signingSecret` string — Optional. Signing secret used to HMAC-SHA256 sign the webhook request body. This field is input-only; it is never returned in responses.
      - `signingSecretSet` boolean — Whether a signing secret is configured for this webhook.
  - `tagsSetting` UserSettingTagsSetting — User-specific tag metadata.
    - `tags` object — Map of tag name pattern to tag metadata. Each key is treated as an anchored regular expression (^pattern$).

## Other responses

- `default` — Default error response

## Changes

- **2026-08-11** `415db6a974da` — 2 info
  - added the new optional request property `generalSetting/saveMediaMetadata`
  - added the optional property `generalSetting/saveMediaMetadata` to the response with the `200` status
- **2026-06-26** `c1e9c9e8f325` — 1 warning, 1 info
  - removed the optional property `webhooksSetting/webhooks/items/hasSigningSecret` from the response with the `200` status
  - added the optional property `webhooksSetting/webhooks/items/signingSecretSet` to the response with the `200` status
- **2026-06-25** `bd6926f3e8c2` — 1 info
  - added the optional property `webhooksSetting/webhooks/items/hasSigningSecret` to the response with the `200` status
- **2026-06-09** `2739ede31e9a` — 2 info
  - added the new optional request property `webhooksSetting/webhooks/items/signingSecret`
  - added the optional write-only property `webhooksSetting/webhooks/items/signingSecret` to the response with the `200` status
- **2026-06-07** `ad20d5c442ae` — 2 info
  - added the new optional request property `tagsSetting`
  - added the optional property `tagsSetting` to the response with the `200` status

[Full history](https://skmtc.dev/usememos/apis/untitled-api/changes/api/v1/users/:user/settings/:setting/patch.md)

---

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