---
title: "PATCH /api/instance/{instance}/*"
method: PATCH
path: "/api/instance/{instance}/*"
tags: ["InstanceService"]
---

# PATCH /api/instance/{instance}/\*

`PATCH /api/instance/{instance}/*`

## Request

- The document declares no server URL.
- Auth: none declared

UpdateInstanceSetting replaces an instance setting. Admin only. Fields declarative configuration manages cannot be
 changed. Empty write-only credentials keep the stored values.

## Path parameters

- `instance` string, required

## Query parameters

- `updateMask` string, field-mask

## Request body

- InstanceSetting: InstanceSetting is one group of instance-wide settings, selected by its key.
  - `name` string: Identifier. The resource name of the instance setting. {setting} is a Key value, such as GENERAL. Format: instance/settings/{setting}
  - `generalSetting` InstanceSettingGeneralSetting: GeneralSetting is the general instance configuration.
    - `customProfile` GeneralSettingCustomProfile: CustomProfile is the instance branding.
      - `title` string: The instance title.
      - `description` string: The instance description.
      - `logoUrl` string: The URL of the instance logo.
    - `disallowUserRegistration` boolean: Whether user self-registration is disabled.
    - `disallowPasswordAuth` boolean: Whether password authentication is disabled.
    - `disallowChangeUsername` boolean: Whether users are prevented from changing their username.
    - `disallowChangeNickname` boolean: Whether users are prevented from changing their nickname.
    - `weekStartDayOffset` integer: The first day of the week as an offset from Sunday. 0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday. Default is Sunday.
    - `additionalStyle` string: Custom CSS injected into the web app.
    - `additionalScript` string: Custom JavaScript injected into the web app.
  - `storageSetting` InstanceSettingStorageSetting: StorageSetting is the attachment storage configuration.
    - `storages` InstanceSettingStorage[]: Configured storage instances, including inactive instances still referenced by attachments.
      - `id` string: The stable identifier referenced by attachments.
      - `name` string: The human-readable storage name.
      - `type` 'STORAGE_TYPE_UNSPECIFIED' | 'DATABASE' | 'LOCAL' | 'S3', enum: The storage backend.
      - `s3Config` StorageS3Config: S3Config is the configuration of an S3-compatible object store. Reference: https://developers.cloudflare.com/r2/examples/aws/aws-sdk-go/
        - `endpoint` string: The S3 endpoint URL.
        - `region` string: The S3 region.
        - `bucket` string: The S3 bucket.
        - `accessKeyId` string: The S3 access key ID.
        - `accessKeySecret` string: Input only. The S3 access key secret. Never returned; an empty value keeps the stored secret.
        - `usePathStyle` boolean: Whether to use path-style addressing instead of virtual-hosted-style.
        - `insecureSkipTlsVerify` boolean: Whether to skip TLS certificate verification when connecting to the S3 endpoint. Only enable this for trusted endpoints that use a self-signed certificate; it removes protection against man-in-the-middle attacks.
    - `defaultStorageId` string: The ID of the storage used for new attachments.
    - `filepathTemplate` string: The template of attachment file paths. Default is assets/{timestamp}_{uuid}_{filename}.
    - `storageType` 'STORAGE_TYPE_UNSPECIFIED' | 'DATABASE' | 'LOCAL' | 'S3', enum: Legacy compatibility field. New clients use default_storage_id.
    - `s3Config` StorageSettingS3Config: S3Config is the legacy S3 configuration, retained for compatibility with existing clients. Reference: https://developers.cloudflare.com/r2/examples/aws/aws-sdk-go/
      - `endpoint` string: The S3 endpoint URL.
      - `region` string: The S3 region.
      - `bucket` string: The S3 bucket.
      - `accessKeyId` string: The S3 access key ID.
      - `accessKeySecret` string: Input only. The S3 access key secret. Never returned; an empty value keeps the stored secret.
      - `usePathStyle` boolean: Whether to use path-style addressing instead of virtual-hosted-style.
      - `insecureSkipTlsVerify` boolean: Whether to skip TLS certificate verification when connecting to the S3 endpoint. Only enable this for trusted endpoints that use a self-signed certificate; it removes protection against man-in-the-middle attacks.
  - `memoRelatedSetting` InstanceSettingMemoRelatedSetting: MemoRelatedSetting is the memo-related instance configuration.
    - `reactions` string[]: The reactions users can choose from. Defaults to a built-in emoji set when empty.
  - `tagsSetting` InstanceSettingTagsSetting: TagsSetting is the instance-wide tag metadata configuration. Active tag metadata is stored in per-user tag settings. This message remains for backward compatibility with existing clients and migrations.
    - `tags` object: Map of tag name pattern to tag metadata. Each key is treated as an anchored regular expression (^pattern$), so a single entry like "project/.*" matches all tags under that prefix. Exact tag names are also valid.
  - `notificationSetting` InstanceSettingNotificationSetting: NotificationSetting is the notification transport configuration.
    - `email` NotificationSettingEmailSetting: EmailSetting is the SMTP configuration for notification emails.
      - `enabled` boolean: Whether email notifications are enabled.
      - `smtpHost` string: The SMTP server host.
      - `smtpPort` integer: The SMTP server port.
      - `smtpUsername` string: The SMTP username.
      - `smtpPassword` string: Input only. The SMTP password. Never returned. An empty value keeps the stored password, unless the host, port, username or encryption settings change.
      - `useTls` boolean: Whether to use STARTTLS.
      - `useSsl` boolean: Whether to use implicit SSL/TLS.
      - `fromEmail` string: The sender email address.
      - `fromName` string: The sender display name.
      - `replyTo` string: The Reply-To email address.
  - `aiSetting` InstanceSettingAISetting: AISetting is the AI provider configuration.
    - `providers` InstanceSettingAIProviderConfig[]: The AI provider configurations available instance-wide.
      - `id` string: The provider ID. Generated when empty on update.
      - `title` string: The provider display title.
      - `type` 'AI_PROVIDER_TYPE_UNSPECIFIED' | 'OPENAI' | 'GEMINI', enum: The provider implementation type.
      - `endpoint` string: The provider API endpoint. Defaults to the provider's public endpoint when empty.
      - `apiKey` string: Input only. The provider API key. Never returned; an empty value keeps the stored key.
      - `apiKeySet` boolean: Output only. Whether an API key is stored for this provider.
      - `apiKeyHint` string: Output only. A masked hint of the stored API key.
    - `transcription` InstanceSettingTranscriptionConfig: TranscriptionConfig is the speech-to-text feature configuration.
      - `providerId` string: The ID of the provider used for transcription; must reference an entry in AISetting.providers. Empty means transcription is disabled.
      - `model` string: The provider-specific model identifier. Hidden from non-admins. Empty falls back to the engine default (whisper-1 for OPENAI providers, gemini-2.5-flash for GEMINI providers).
      - `language` string: The default ISO 639-1 language hint sent to the provider. Hidden from non-admins. Empty lets the provider auto-detect.
      - `prompt` string: A default spelling and vocabulary hint passed to the provider. Hidden from non-admins.
  - `accessSetting` InstanceSettingAccessSetting: AccessSetting is the instance access policy.
    - `accessMode` 'INSTANCE_ACCESS_MODE_UNSPECIFIED' | 'INSTANCE_ACCESS_MODE_PRIVATE' | 'INSTANCE_ACCESS_MODE_PUBLIC', enum: Whether unauthenticated users may access instance content. Must be PRIVATE or PUBLIC on update.
  - `usageLimitsSetting` InstanceSettingUsageLimitsSetting: UsageLimitsSetting is an ordered list of limit sets. The first entry that names a user is that user's limit set, whole. The last entry has all_users set and is the default. The setting is read and replaced whole. Admins are limited like everyone else.
    - `limits` UsageLimitsSettingUsageLimit[]: The entries, in the order they are checked. At most 100, naming at most 1,000 users in all.
      - `users` string[]: The users the entry applies to. Not repeated within an entry. Format: users/{user}
      - `allUsers` boolean: Whether the entry applies to every user. Exactly one entry has it, and it is the last entry. An entry has users or all_users, never both.
      - `memoCount` string: The number of memos the user may have created, comments and archived memos included.
      - `memoContentBytes` string: The UTF-8 size in bytes of one memo's content.
      - `storageBytes` string: The total size in bytes of the user's uploads. External links do not count.
      - `uploadBytes` string: The size in bytes of one uploaded file.

## Response `200`

OK

- InstanceSetting: InstanceSetting is one group of instance-wide settings, selected by its key.
  - `name` string: Identifier. The resource name of the instance setting. {setting} is a Key value, such as GENERAL. Format: instance/settings/{setting}
  - `generalSetting` InstanceSettingGeneralSetting: GeneralSetting is the general instance configuration.
    - `customProfile` GeneralSettingCustomProfile: CustomProfile is the instance branding.
      - `title` string: The instance title.
      - `description` string: The instance description.
      - `logoUrl` string: The URL of the instance logo.
    - `disallowUserRegistration` boolean: Whether user self-registration is disabled.
    - `disallowPasswordAuth` boolean: Whether password authentication is disabled.
    - `disallowChangeUsername` boolean: Whether users are prevented from changing their username.
    - `disallowChangeNickname` boolean: Whether users are prevented from changing their nickname.
    - `weekStartDayOffset` integer: The first day of the week as an offset from Sunday. 0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday. Default is Sunday.
    - `additionalStyle` string: Custom CSS injected into the web app.
    - `additionalScript` string: Custom JavaScript injected into the web app.
  - `storageSetting` InstanceSettingStorageSetting: StorageSetting is the attachment storage configuration.
    - `storages` InstanceSettingStorage[]: Configured storage instances, including inactive instances still referenced by attachments.
      - `id` string: The stable identifier referenced by attachments.
      - `name` string: The human-readable storage name.
      - `type` 'STORAGE_TYPE_UNSPECIFIED' | 'DATABASE' | 'LOCAL' | 'S3', enum: The storage backend.
      - `s3Config` StorageS3Config: S3Config is the configuration of an S3-compatible object store. Reference: https://developers.cloudflare.com/r2/examples/aws/aws-sdk-go/
        - `endpoint` string: The S3 endpoint URL.
        - `region` string: The S3 region.
        - `bucket` string: The S3 bucket.
        - `accessKeyId` string: The S3 access key ID.
        - `accessKeySecret` string: Input only. The S3 access key secret. Never returned; an empty value keeps the stored secret.
        - `usePathStyle` boolean: Whether to use path-style addressing instead of virtual-hosted-style.
        - `insecureSkipTlsVerify` boolean: Whether to skip TLS certificate verification when connecting to the S3 endpoint. Only enable this for trusted endpoints that use a self-signed certificate; it removes protection against man-in-the-middle attacks.
    - `defaultStorageId` string: The ID of the storage used for new attachments.
    - `filepathTemplate` string: The template of attachment file paths. Default is assets/{timestamp}_{uuid}_{filename}.
    - `storageType` 'STORAGE_TYPE_UNSPECIFIED' | 'DATABASE' | 'LOCAL' | 'S3', enum: Legacy compatibility field. New clients use default_storage_id.
    - `s3Config` StorageSettingS3Config: S3Config is the legacy S3 configuration, retained for compatibility with existing clients. Reference: https://developers.cloudflare.com/r2/examples/aws/aws-sdk-go/
      - `endpoint` string: The S3 endpoint URL.
      - `region` string: The S3 region.
      - `bucket` string: The S3 bucket.
      - `accessKeyId` string: The S3 access key ID.
      - `accessKeySecret` string: Input only. The S3 access key secret. Never returned; an empty value keeps the stored secret.
      - `usePathStyle` boolean: Whether to use path-style addressing instead of virtual-hosted-style.
      - `insecureSkipTlsVerify` boolean: Whether to skip TLS certificate verification when connecting to the S3 endpoint. Only enable this for trusted endpoints that use a self-signed certificate; it removes protection against man-in-the-middle attacks.
  - `memoRelatedSetting` InstanceSettingMemoRelatedSetting: MemoRelatedSetting is the memo-related instance configuration.
    - `reactions` string[]: The reactions users can choose from. Defaults to a built-in emoji set when empty.
  - `tagsSetting` InstanceSettingTagsSetting: TagsSetting is the instance-wide tag metadata configuration. Active tag metadata is stored in per-user tag settings. This message remains for backward compatibility with existing clients and migrations.
    - `tags` object: Map of tag name pattern to tag metadata. Each key is treated as an anchored regular expression (^pattern$), so a single entry like "project/.*" matches all tags under that prefix. Exact tag names are also valid.
  - `notificationSetting` InstanceSettingNotificationSetting: NotificationSetting is the notification transport configuration.
    - `email` NotificationSettingEmailSetting: EmailSetting is the SMTP configuration for notification emails.
      - `enabled` boolean: Whether email notifications are enabled.
      - `smtpHost` string: The SMTP server host.
      - `smtpPort` integer: The SMTP server port.
      - `smtpUsername` string: The SMTP username.
      - `smtpPassword` string: Input only. The SMTP password. Never returned. An empty value keeps the stored password, unless the host, port, username or encryption settings change.
      - `useTls` boolean: Whether to use STARTTLS.
      - `useSsl` boolean: Whether to use implicit SSL/TLS.
      - `fromEmail` string: The sender email address.
      - `fromName` string: The sender display name.
      - `replyTo` string: The Reply-To email address.
  - `aiSetting` InstanceSettingAISetting: AISetting is the AI provider configuration.
    - `providers` InstanceSettingAIProviderConfig[]: The AI provider configurations available instance-wide.
      - `id` string: The provider ID. Generated when empty on update.
      - `title` string: The provider display title.
      - `type` 'AI_PROVIDER_TYPE_UNSPECIFIED' | 'OPENAI' | 'GEMINI', enum: The provider implementation type.
      - `endpoint` string: The provider API endpoint. Defaults to the provider's public endpoint when empty.
      - `apiKey` string: Input only. The provider API key. Never returned; an empty value keeps the stored key.
      - `apiKeySet` boolean: Output only. Whether an API key is stored for this provider.
      - `apiKeyHint` string: Output only. A masked hint of the stored API key.
    - `transcription` InstanceSettingTranscriptionConfig: TranscriptionConfig is the speech-to-text feature configuration.
      - `providerId` string: The ID of the provider used for transcription; must reference an entry in AISetting.providers. Empty means transcription is disabled.
      - `model` string: The provider-specific model identifier. Hidden from non-admins. Empty falls back to the engine default (whisper-1 for OPENAI providers, gemini-2.5-flash for GEMINI providers).
      - `language` string: The default ISO 639-1 language hint sent to the provider. Hidden from non-admins. Empty lets the provider auto-detect.
      - `prompt` string: A default spelling and vocabulary hint passed to the provider. Hidden from non-admins.
  - `accessSetting` InstanceSettingAccessSetting: AccessSetting is the instance access policy.
    - `accessMode` 'INSTANCE_ACCESS_MODE_UNSPECIFIED' | 'INSTANCE_ACCESS_MODE_PRIVATE' | 'INSTANCE_ACCESS_MODE_PUBLIC', enum: Whether unauthenticated users may access instance content. Must be PRIVATE or PUBLIC on update.
  - `usageLimitsSetting` InstanceSettingUsageLimitsSetting: UsageLimitsSetting is an ordered list of limit sets. The first entry that names a user is that user's limit set, whole. The last entry has all_users set and is the default. The setting is read and replaced whole. Admins are limited like everyone else.
    - `limits` UsageLimitsSettingUsageLimit[]: The entries, in the order they are checked. At most 100, naming at most 1,000 users in all.
      - `users` string[]: The users the entry applies to. Not repeated within an entry. Format: users/{user}
      - `allUsers` boolean: Whether the entry applies to every user. Exactly one entry has it, and it is the last entry. An entry has users or all_users, never both.
      - `memoCount` string: The number of memos the user may have created, comments and archived memos included.
      - `memoContentBytes` string: The UTF-8 size in bytes of one memo's content.
      - `storageBytes` string: The total size in bytes of the user's uploads. External links do not count.
      - `uploadBytes` string: The size in bytes of one uploaded file.

## Other responses

- `default`: Default error response

## Changes

- **2026-10-20** `8df50a23c879`: 2 warning
  - removed the request property `memoRelatedSetting/allOf[#/components/schemas/InstanceSetting_MemoRelatedSetting]/enableDoubleClickEdit`
  - removed the optional property `memoRelatedSetting/allOf[#/components/schemas/InstanceSetting_MemoRelatedSetting]/enableDoubleClickEdit` from the response with the `200` status
- **2026-10-15** `1e6b7d859eb8`: 2 info
  - added the new optional request property `usageLimitsSetting`
  - added the optional property `usageLimitsSetting` to the response with the `200` status
- **2026-10-12** `7928165faf36`: 2 warning
  - removed the request property `memoRelatedSetting/allOf[#/components/schemas/InstanceSetting_MemoRelatedSetting]/contentLengthLimit`
  - removed the optional property `memoRelatedSetting/allOf[#/components/schemas/InstanceSetting_MemoRelatedSetting]/contentLengthLimit` from the response with the `200` status
- **2026-10-11** `37e0e63583fa`: 2 warning
  - removed the request property `storageSetting/allOf[#/components/schemas/InstanceSetting_StorageSetting]/uploadSizeLimitMb`
  - removed the optional property `storageSetting/allOf[#/components/schemas/InstanceSetting_StorageSetting]/uploadSizeLimitMb` from the response with the `200` status
- **2026-10-08** `1846a777b0ef`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usememos/apis/untitled-api/changes/api/instance/:instance/*/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.dev/usememos/apis/untitled-api/revisions/f587355e35b4?raw)
