WeKan Settings API
The Settings API from WeKan — 5 operation(s) for settings.
The Settings API from WeKan — 5 operation(s) for settings.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/wekan:wekan-settings-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Wekan Settings API
version: '1.0'
description: 'Operations tagged Settings across 2 of this provider''s published API definitions: wekan-meteor3-openapi.yml, wekan-openapi.yml. Each path carries the servers of the definition it was published in.'
tags:
- name: Settings
paths:
/api/admin/attachment-settings:
get:
operationId: get_attachment_settings
summary: Get the attachment storage / upload-block settings (GlobalAdmin)
description: 'Only the global admin can call this. Returns the Admin Panel >
Attachments settings document, including `limitSettings.attachmentsUploadBlocked`
and `limitSettings.avatarsUploadBlocked` plus the size limits. Cloud-storage
secret keys (S3 secretAccessKey, Azure accountKey/connectionString, GCS
credentials) are masked and never returned; a boolean `Set` marker
shows whether a value exists.'
tags:
- Settings
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: Object
put:
operationId: update_attachment_settings
summary: Update the attachment storage / upload-block settings (GlobalAdmin)
description: 'Only the global admin can call this. The request body is a
partial settings object (for example
`{"limitSettings": {"avatarsUploadBlocked": true}}`). It is applied through
the same update path as the `updateAttachmentStorageSettings` Meteor method,
so validation and `$set` semantics are identical: cloud-storage secrets left
blank are preserved. The masked, updated settings document is returned.'
tags:
- Settings
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: Object
/api/settings:
get:
operationId: get_global_settings
summary: Get the global Admin Panel settings
description: 'Only the global admin can call this. SMTP/mail-server
credentials are never returned.'
tags:
- Settings
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/Settings'
put:
operationId: update_global_settings
summary: Update the global Admin Panel settings
description: 'Only the global admin can call this. The request body is an
object whose keys are settings fields to update (see get_global_settings for
the list). Unknown keys and `mailServer` are ignored.'
tags:
- Settings
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/Settings'
/api/admin/oauth-providers:
get:
operationId: get_oauth_provider_settings
summary: Get the OAuth login provider and passwordless settings
description: 'The Admin Panel / People / Login section for Meteor''s own
accounts-* login services (Google, GitHub, Facebook, X/Twitter, Meteor
Developer, Weibo, Meetup) and passwordless email codes. For every provider
field, the shared login style, the merge switch and passwordless it reports
which source is in effect - `env` (the `OAUTH_*` / `PASSWORDLESS_ENABLED`
environment variable), `admin` (a value saved in the Admin Panel) or
`unset` - and the resolved value. A provider''s secret is reported ONLY as
`{ source, hasValue }`; its value is never returned. Only the global admin
can call this.'
tags:
- Settings
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
providers:
type: object
loginStyle:
type: object
properties:
source:
type: string
value:
type: string
mergeExistingUsers:
type: object
properties:
source:
type: string
value:
type: string
passwordless:
type: object
properties:
source:
type: string
value:
type: string
/api/admin/oauth-providers/{providerKey}:
put:
operationId: update_oauth_provider_settings
summary: Update one OAuth login provider's Admin Panel settings
description: 'The same save the Admin Panel makes: `enabled` and `id` are
stored as given, `secret` only when non-empty (an empty or missing secret
leaves the stored one untouched), and `loginStyle` must be `popup` or
`redirect` (anything else clears the per-provider override). The two
settings shared by every provider, `globalLoginStyle` and
`mergeExistingUsers`, may ride along. A value saved here wins over the
environment variable, and the provider is reconfigured at once, without a
restart. The response is the same source report as
get_oauth_provider_settings and never contains a secret. Only the global
admin can call this.'
tags:
- Settings
parameters:
- name: providerKey
in: path
description: 'one of google, github, facebook, twitter, meteor-developer, weibo, meetup
'
required: true
schema:
type: string
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
providers:
type: object
loginStyle:
type: object
properties:
source:
type: string
value:
type: string
mergeExistingUsers:
type: object
properties:
source:
type: string
value:
type: string
passwordless:
type: object
properties:
source:
type: string
value:
type: string
/api/admin/passwordless:
put:
operationId: update_passwordless_settings
summary: Turn passwordless (email sign-in code) login on or off
description: 'The Admin Panel override of `PASSWORDLESS_ENABLED`. While it
is off, the sign-in-code form is not shown and the token request and the
login attempt are both refused, so the package can neither create accounts
nor send codes. Takes effect at once, without a restart. Only the global
admin can call this.'
tags:
- Settings
security:
- UserSecurity: []
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
passwordless:
type: object
properties:
source:
type: string
value:
type: string
components:
schemas:
Settings:
type: object
properties:
disableRegistration:
type:
- boolean
- 'null'
disableForgotPassword:
type:
- boolean
- 'null'
renderLinksAsPlainText:
type:
- boolean
- 'null'
alwaysShowCodeAsText:
type:
- boolean
- 'null'
disableActivities:
type:
- boolean
- 'null'
disableNotifications:
type:
- boolean
- 'null'
disableWatch:
type:
- boolean
- 'null'
enablePermanentDelete:
type:
- boolean
- 'null'
disableAllExport:
type:
- boolean
- 'null'
disableAllImport:
type:
- boolean
- 'null'
disableExportAvatars:
type:
- boolean
- 'null'
disableImportAvatars:
type:
- boolean
- 'null'
anonymizeExportUsers:
type:
- boolean
- 'null'
anonymizeImportUsers:
type:
- boolean
- 'null'
mailServer:
$ref: '#/components/schemas/SettingsMailserver'
productName:
type:
- string
- 'null'
themeColor:
description: 'The site theme, set in Admin Panel / Settings / Visibility / Change color.
It is the layer between WeKan''s default theme and a user''s own override
(docs/Theme/Theme.md): whoever has not picked a theme of their own sees
this one. On a multitenancy host the Organization''s own value replaces it
(models/lib/tenants.js BRANDING_FIELDS).
'
type:
- string
- 'null'
themeCustomColors:
description: 'The custom colours of that theme: one for a flat theme, two for a clear
(gradient) one.
'
type:
- array
- 'null'
items:
type:
- string
- 'null'
displayAuthenticationMethod:
type:
- boolean
- 'null'
defaultAuthenticationMethod:
type: string
spinnerName:
type:
- string
- 'null'
hideLogo:
type:
- boolean
- 'null'
hideCardCounterList:
type:
- boolean
- 'null'
cardsLoading:
type:
- string
- 'null'
enum:
- all
- lazy
hideBoardMemberList:
type:
- boolean
- 'null'
hideBoardActivitiesOnAllBoards:
type:
- boolean
- 'null'
customLoginLogoImageUrl:
type:
- string
- 'null'
customLoginLogoLinkUrl:
type:
- string
- 'null'
customHelpLinkUrl:
type:
- string
- 'null'
textBelowCustomLoginLogo:
type:
- string
- 'null'
automaticLinkedUrlSchemes:
type:
- string
- 'null'
customTopLeftCornerLogoImageUrl:
type:
- string
- 'null'
customTopLeftCornerLogoLinkUrl:
type:
- string
- 'null'
customTopLeftCornerLogoHeight:
type:
- string
- 'null'
oidcBtnText:
type:
- string
- 'null'
mailDomainName:
type:
- string
- 'null'
legalNotice:
type:
- string
- 'null'
customHeadEnabled:
type:
- boolean
- 'null'
customHeadMetaTags:
type:
- string
- 'null'
customHeadLinkTags:
type:
- string
- 'null'
customManifestEnabled:
type:
- boolean
- 'null'
customManifestContent:
type:
- string
- 'null'
customAssetLinksEnabled:
type:
- boolean
- 'null'
customAssetLinksContent:
type:
- string
- 'null'
accessibilityPageEnabled:
type:
- boolean
- 'null'
accessibilityTitle:
type:
- string
- 'null'
accessibilityContent:
type:
- string
- 'null'
supportPopupText:
type:
- string
- 'null'
supportPageEnabled:
type:
- boolean
- 'null'
supportPagePublic:
type:
- boolean
- 'null'
boardMembersFromSameOrgOnly:
type:
- boolean
- 'null'
boardMembersFromSameTeamOnly:
type:
- boolean
- 'null'
boardMembersFromSameOrgOrTeamOnly:
type:
- boolean
- 'null'
supportTitle:
type:
- string
- 'null'
supportPageText:
type:
- string
- 'null'
createdAt:
type: string
modifiedAt:
type: string
required:
- defaultAuthenticationMethod
- createdAt
- modifiedAt
SettingsMailserver:
type: object
properties:
username:
type: string
password:
type: string
host:
type: string
port:
type: string
enableTLS:
type: boolean
from:
type: string
enabled:
type: boolean
service:
type: string
configurations:
type: object
passwords:
type: object
passwordSet:
type: object
Settings_2:
type: object
properties:
disableRegistration:
type:
- boolean
- 'null'
disableForgotPassword:
type:
- boolean
- 'null'
renderLinksAsPlainText:
type:
- boolean
- 'null'
alwaysShowCodeAsText:
type:
- boolean
- 'null'
externalLinkPatternPrefix:
type:
- string
- 'null'
externalLinkPatternUrl:
type:
- string
- 'null'
externalLinkRules:
type:
- string
- 'null'
externalLinkIdentifierAliases:
type:
- string
- 'null'
disableActivities:
type:
- boolean
- 'null'
enableSyncCronEffects:
type:
- boolean
- 'null'
disableNotifications:
type:
- boolean
- 'null'
disableWatch:
type:
- boolean
- 'null'
enablePermanentDelete:
type:
- boolean
- 'null'
disableAllExport:
type:
- boolean
- 'null'
disableAllImport:
type:
- boolean
- 'null'
disableExportAvatars:
type:
- boolean
- 'null'
disableImportAvatars:
type:
- boolean
- 'null'
anonymizeExportUsers:
type:
- boolean
- 'null'
anonymizeImportUsers:
type:
- boolean
- 'null'
mailServer:
$ref: '#/components/schemas/SettingsMailserver'
inboundMail:
type:
- object
- 'null'
emailBounces:
type:
- object
- 'null'
productName:
type:
- string
- 'null'
themeColor:
description: 'The site theme, set in Admin Panel / Settings / Visibility / Change color.
It is the layer between WeKan''s default theme and a user''s own override
(docs/Theme/Theme.md): whoever has not picked a theme of their own sees
this one. On a multitenancy host the Organization''s own value replaces it
(models/lib/tenants.js BRANDING_FIELDS).
'
type:
- string
- 'null'
themeCustomColors:
description: 'The custom colours of that theme: one for a flat theme, two for a clear
(gradient) one.
'
type:
- array
- 'null'
items:
type:
- string
- 'null'
displayAuthenticationMethod:
type:
- boolean
- 'null'
defaultAuthenticationMethod:
type: string
spinnerName:
type:
- string
- 'null'
hideLogo:
type:
- boolean
- 'null'
hideCardCounterList:
type:
- boolean
- 'null'
featureStates:
type:
- object
- 'null'
webhookInternalHosts:
type:
- array
- 'null'
items:
type:
- string
- 'null'
accountWebhook:
type:
- object
- 'null'
sqrlEnabled:
type:
- boolean
- 'null'
activityPubEnabled:
type:
- boolean
- 'null'
rulesReadOnlyForMembers:
type:
- boolean
- 'null'
optionalApis:
type:
- object
- 'null'
featureApprovalRequired:
type:
- boolean
- 'null'
featureKnownKeys:
type:
- array
- 'null'
items:
type:
- string
- 'null'
featurePreviewAdmins:
type:
- boolean
- 'null'
cardFieldStates:
type:
- object
- 'null'
cardsLoading:
type:
- string
- 'null'
enum:
- all
- lazy
hideDateFormat:
type:
- boolean
- 'null'
globalDateFormat:
type:
- string
- 'null'
enum:
- yyyy-mm-dd
- dd-mm-yyyy
- mm-dd-yyyy
- yyyy-mm-dd-date-only
- dd-mm-yyyy-date-only
- mm-dd-yyyy-date-only
hideBoardMemberList:
type:
- boolean
- 'null'
hideBoardActivitiesOnAllBoards:
type:
- boolean
- 'null'
customLoginLogoImageUrl:
type:
- string
- 'null'
customLoginLogoLinkUrl:
type:
- string
- 'null'
customHelpLinkUrl:
type:
- string
- 'null'
textBelowCustomLoginLogo:
type:
- string
- 'null'
automaticLinkedUrlSchemes:
type:
- string
- 'null'
customTopLeftCornerLogoImageUrl:
type:
- string
- 'null'
customTopLeftCornerLogoLinkUrl:
type:
- string
- 'null'
customTopLeftCornerLogoHeight:
type:
- string
- 'null'
oidcBtnText:
type:
- string
- 'null'
mailDomainName:
type:
- string
- 'null'
legalNotice:
type:
- string
- 'null'
customPrivateBoardDesc:
type:
- string
- 'null'
customPublicBoardDesc:
type:
- string
- 'null'
customHeadEnabled:
type:
- boolean
- 'null'
customHeadMetaTags:
type:
- string
- 'null'
customHeadLinkTags:
type:
- string
- 'null'
customManifestEnabled:
type:
- boolean
- 'null'
customManifestContent:
type:
- string
- 'null'
customAssetLinksEnabled:
type:
- boolean
- 'null'
customAssetLinksContent:
type:
- string
- 'null'
accessibilityPageEnabled:
type:
- boolean
- 'null'
accessibilityTitle:
type:
- string
- 'null'
accessibilityContent:
type:
- string
- 'null'
supportPopupText:
type:
- string
- 'null'
supportPageEnabled:
type:
- boolean
- 'null'
supportPagePublic:
type:
- boolean
- 'null'
boardMembersFromSameOrgOnly:
type:
- boolean
- 'null'
boardMembersFromSameTeamOnly:
type:
- boolean
- 'null'
boardMembersFromSameOrgOrTeamOnly:
type:
- boolean
- 'null'
notifyDefaultTray:
type:
- boolean
- 'null'
notifyDefaultEmail:
type:
- boolean
- 'null'
notificationDelivery:
type:
- object
- 'null'
inviteEmailSubjectTemplate:
type:
- string
- 'null'
inviteEmailBodyTemplate:
type:
- string
- 'null'
activityEmailSubjectTemplate:
type:
- string
- 'null'
activityEmailBodyTemplate:
type:
- string
- 'null'
supportTitle:
type:
- string
- 'null'
supportPageText:
type:
- string
- 'null'
saml:
type:
- object
- 'null'
ldap:
type:
- object
- 'null'
oidc:
type:
- object
- 'null'
cas:
type:
- object
- 'null'
headerLogin:
type:
- object
- 'null'
loginOptions:
type:
- object
- 'null'
attachmentRetention:
type:
- object
- 'null'
backupOptions:
type:
- object
- 'null'
inboundMailLimits:
type:
- object
- 'null'
windowsSso:
type:
- object
- 'null'
oauthProviders:
type:
- object
- 'null'
oauthProvidersLoginStyle:
type:
- string
- 'null'
enum:
- popup
- redirect
oauthProvidersMergeExistingUsers:
type:
- boolean
- 'null'
oauthProvidersAllowedEmailDomains:
type:
- string
- 'null'
passwordlessEnabled:
type:
- boolean
- 'null'
createdAt:
type: string
modifiedAt:
type: string
required:
- defaultAuthenticationMethod
- createdAt
- modifiedAt
securitySchemes:
UserSecurity:
type: apiKey
in: header
name: Authorization
x-refined-from:
- wekan-meteor3-openapi.yml
- wekan-openapi.yml