# Update platform settings Update multiple platform-wide settings in a single operation. Each setting must be provided as a complete object with all required fields. Partial updates are not supported to ensure system stability and prevent configuration errors. Endpoint: PUT /api/v1/settings Version: 1.0 Security: ## Request fields (application/json): - `wellesley.access` (object) - `wellesley.access.visibility` (string, required) Whether the server is visible to the public Enum: "PUBLIC", "PRIVATE" - `wellesley.uploads.policy.audio` (object) - `wellesley.uploads.policy.audio.extensions` (array) Allowed audio file extensions - `wellesley.uploads.policy.audio.extensions.value` (string) - `wellesley.uploads.policy.audio.keepOriginal` (boolean) Whether to keep the original audio file - `wellesley.uploads.policy.audio.maxSize` (integer) Maximum allowed audio file size in bytes - `wellesley.admin.auth` (object) - `wellesley.admin.auth.tokenKey` (string) Token encryption key - `wellesley.branding` (object) - `wellesley.branding.color` (string, required) Color theme of the homepage in HEX format - `wellesley.branding.description` (string, required) Server description shown on the homepage - `wellesley.branding.displayName` (string, required) Display name shown on the homepage - `wellesley.branding.image` (string, required) Image URL shown on the homepage - `wellesley.branding.imageThumbnail` (string, required) Thumbnail of the image URL shown on the homepage - `wellesley.branding.shortDescription` (string, required) Short description shown on the homepage - `wellesley.admin.captcha` (object) - `wellesley.admin.captcha.secretKey` (string) hCaptcha Account secret key - `wellesley.admin.captcha.siteKey` (string) Sitekey if the same account is used on several sites - `wellesley.captcha` (object) - `wellesley.confirmationCode` (object) - `wellesley.confirmationCode.codeExpirationMinutes` (integer) Expiration time for confirmation code - `wellesley.confirmationCode.counterExpirationMinutes` (integer) Time duration after which the counter for unsuccessful attempts will be reset - `wellesley.confirmationCode.limitCheckAttempts` (integer) Maximum number of attempts to check confirmation code - `wellesley.confirmationCode.limitStoreAttempts` (integer) Maximum number of attempts to request confirmation code - `wellesley.uploads.policy.doc` (object) - `wellesley.uploads.policy.doc.extensions` (array) Allowed doc file extensions - `wellesley.uploads.policy.doc.maxSize` (integer) Maximum allowed doc file size in bytes - `wellesley.instance.domainBlocks` (object) - `wellesley.instance.domainBlocks.domainBlocksAccess` (string, required) Who can see domains that are blocked by this instance Enum: "NONE", "USER", "ALL" - `wellesley.instance.domainBlocks.domainBlocksReasonAccess` (string, required) Who can see reasons for domain blocks by this instance Enum: "NONE", "USER", "ALL" - `wellesley.uploads.policy.emoji` (object) - `wellesley.uploads.policy.emoji.maxImageSize` (integer) Maximum allowed single emoji image size in bytes - `wellesley.uploads.policy.emoji.maxZipSize` (integer) Maximum allowed ZIP size in bytes for emoji import - `wellesley.uploads.policy.image` (object) - `wellesley.uploads.policy.image.extensions` (array) Allowed image file extensions - `wellesley.uploads.policy.image.keepOriginal` (boolean) Whether to keep the original image file - `wellesley.uploads.policy.image.maxMatrix` (integer) Maximum allowed image matrix resolution (width * height) - `wellesley.uploads.policy.image.maxResolution` (integer) Maximum allowed image resolution in pixels at the longest side - `wellesley.uploads.policy.image.maxSize` (integer) Maximum allowed image file size in bytes - `wellesley.uploads.policy.image.resolutions` (array) List of resolutions to convert the image to - `wellesley.instance.admin` (object) - `wellesley.instance.admin.email` (string, required) Email of the server admin - `wellesley.instance.admin.name` (string, required) Name of the server admin - `wellesley.instance.admin.username` (string, required) Username of the server admin - `wellesley.instance.contacts` (object) - `wellesley.instance.contacts.email` (string, required) Contact email for the server - `wellesley.instance.contacts.username` (string, required) Contact username for the server - `wellesley.instance.legal` (object) - `wellesley.instance.legal.privacyPolicy` (string, required) Privacy policy text - `wellesley.instance.legal.termsOfUse` (string, required) Terms of use text - `wellesley.admin.language` (object) - `wellesley.admin.language.key` (string) Language detection key, depends on type - `wellesley.admin.language.service` (string) Language detection service type Enum: "internal", "detectlanguage", "languagelayer", "deepl" - `wellesley.admin.mediacache` (object) - `wellesley.admin.mediacache.checkInterval` (integer) - `wellesley.admin.mediacache.enabled` (boolean) Whether media cache is enabled or not - `wellesley.admin.mediacache.limitPerRun` (integer) - `wellesley.admin.mediacache.maxFileSize` (integer) Maximum size of a single cached media file in bytes - `wellesley.admin.mediacache.maxTotalSize` (integer) Maximum total size of cached media in bytes - `wellesley.admin.mediacache.singleRun` (boolean) - `wellesley.admin.openai` (object) - `wellesley.admin.openai.apiKey` (string) - `wellesley.admin.openai.model` (string) OpenAI model to use - `wellesley.posts` (object) - `wellesley.posts.max_characters` (integer, required) Maximum post size in characters - `wellesley.posts.max_media_attachments` (integer, required) Maximum number of attachments in post - `wellesley.posts.max_pins` (integer, required) Maximum number of pinned posts - `wellesley.registration` (object) - `wellesley.registration.ask_for_info` (boolean, required) Whether reason to join should be provided when signing up - `wellesley.registration.captcha` (boolean, required) Whether captcha is shown to new users when signing up - `wellesley.registration.invites` (boolean, required) Whether existing users can invite other users to join - `wellesley.registration.message` (string, required) Message shown to guests when registration is closed - `wellesley.registration.mode` (string, required) Registration mode on this instance Enum: "OPEN", "APPROVAL", "EMAIL_DOMAIN_ALLOWLIST", "CLOSED" - `wellesley.admin.link_service` (object) - `wellesley.admin.link_service.url` (object) - `wellesley.admin.link_service.url.scheme` (string) - `wellesley.admin.link_service.url.fragment` (string) - `wellesley.admin.link_service.url.authority` (string) - `wellesley.admin.link_service.url.userInfo` (string) - `wellesley.admin.link_service.url.host` (string) - `wellesley.admin.link_service.url.port` (integer) - `wellesley.admin.link_service.url.path` (string) - `wellesley.admin.link_service.url.query` (string) - `wellesley.admin.link_service.url.schemeSpecificPart` (string) - `wellesley.admin.link_service.url.hash` (integer) - `wellesley.admin.link_service.url.decodedUserInfo` (string) - `wellesley.admin.link_service.url.decodedAuthority` (string) - `wellesley.admin.link_service.url.decodedPath` (string) - `wellesley.admin.link_service.url.decodedQuery` (string) - `wellesley.admin.link_service.url.decodedFragment` (string) - `wellesley.admin.link_service.url.decodedSchemeSpecificPart` (string) - `wellesley.admin.link_service.url.string` (string) - `wellesley.admin.sms` (object) - `wellesley.admin.sms.countries` (array) List of supported countries Example: "[US,CA]" - `wellesley.admin.sms.enabled` (boolean) Enable SMS service - `wellesley.admin.sms.provider` (string) SMS service provider to use - `wellesley.admin.sms.aws` (object) - `wellesley.admin.sms.aws.accessKey` (string) - `wellesley.admin.sms.aws.fromUS` (string) - `wellesley.admin.sms.aws.region` (string) - `wellesley.admin.sms.aws.secretKey` (string) - `wellesley.admin.sms.aws.senderId` (string) - `wellesley.admin.sms.sinch` (object) - `wellesley.admin.sms.sinch.accessSecret` (string) - `wellesley.admin.sms.sinch.projectId` (string) - `wellesley.admin.sms.twilio` (object) - `wellesley.admin.sms.twilio.accountSid` (string) - `wellesley.admin.sms.twilio.authToken` (string) - `wellesley.admin.sms.twilio.serviceSid` (string) - `wellesley.translation` (object) - `wellesley.translation.enabled` (boolean) Whether translation is enabled on this server or not - `wellesley.admin.translation` (object) - `wellesley.admin.translation.key` (string) Translation service key, depends on type - `wellesley.admin.translation.service` (string) Translation service type Enum: "none", "deepl" - `wellesley.admin.uploads` (object) - `wellesley.admin.uploads.baseUrl` (object) - `wellesley.admin.uploads.cdn` (object) - `wellesley.admin.uploads.cdn.media` (string) - `wellesley.admin.uploads.cdn.static` (string) - `wellesley.admin.uploads.domain` (string) - `wellesley.admin.uploads.local` (object) - `wellesley.admin.uploads.local.basePath` (string) - `wellesley.admin.uploads.localBasePath` (object) - `wellesley.admin.uploads.provider` (object) - `wellesley.admin.uploads.s3` (object) - `wellesley.admin.uploads.s3.buckets` (object) - `wellesley.admin.uploads.s3.endpoint` (string) - `wellesley.admin.uploads.s3.presignedUrlExpiration` (integer) - `wellesley.admin.uploads.s3.s3Region` (object) - `wellesley.admin.uploads.s3.s3Region.isGlobalRegion` (boolean) - `wellesley.admin.uploads.s3.s3Region.id` (string) - `wellesley.admin.uploads.uploadsBasePath` (object) - `wellesley.username.release` (object) - `wellesley.username.release.enabled` (boolean) Whether username release is enabled - `wellesley.username.release.releasePeriodDays` (integer) Days after which deleted local users are completely purged, releasing their usernames - `wellesley.uploads.policy.video` (object) - `wellesley.uploads.policy.video.extensions` (array) Allowed video file extensions - `wellesley.uploads.policy.video.keepOriginal` (boolean) Whether to keep the original video file - `wellesley.uploads.policy.video.maxDuration` (integer) Maximum allowed video duration in seconds - `wellesley.uploads.policy.video.maxMatrix` (integer) Maximum allowed video matrix resolution (width * height) - `wellesley.uploads.policy.video.maxResolution` (integer) Maximum allowed video resolution in pixels at the longest side - `wellesley.uploads.policy.video.maxSize` (integer) Maximum allowed video file size in bytes - `wellesley.uploads.policy.video.resolutions` (array) List of resolutions to convert the video to - `wellesley.uploads.policy.video.streamingThreshold` (integer) Threshold in seconds to convert video to m3u8 ## Response 400 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 401 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 403 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 500 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 200 fields