Logto Well-known API
Well-Known routes provide information and resources that can be discovered by clients without the need for authentication.
Well-Known routes provide information and resources that can be discovered by clients without the need for authentication.
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/logto-well-known-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: Logto API references Account center Well Known API
description: 'API references for Logto services.
Note: The documentation is for Logto Cloud. If you are using Logto OSS, please refer to the response of `/api/swagger.json` endpoint on your Logto instance.'
version: Cloud
servers:
- url: https://[tenant_id].logto.app/
description: Logto endpoint address.
security:
- OAuth2:
- all
tags:
- name: Well-known
description: Well-Known routes provide information and resources that can be discovered by clients without the need for authentication.
paths:
/api/.well-known/sign-in-exp:
get:
operationId: GetSignInExperienceConfig
tags:
- Well-known
parameters:
- name: organizationId
in: query
required: false
schema:
type: string
- name: appId
in: query
required: false
schema:
type: string
responses:
'200':
description: The full sign-in experience configuration.
content:
application/json:
schema:
type: object
required:
- tenantId
- id
- color
- branding
- hideLogtoBranding
- languageInfo
- termsOfUseUrl
- privacyPolicyUrl
- agreeToTermsPolicy
- signIn
- signUp
- socialSignIn
- socialSignInConnectorTargets
- signInMode
- customCss
- customContent
- customUiAssets
- passwordPolicy
- mfa
- adaptiveMfa
- singleSignOnEnabled
- supportEmail
- supportWebsiteUrl
- unknownSessionRedirectUrl
- captchaPolicy
- sentinelPolicy
- emailBlocklistPolicy
- passkeySignIn
- signUpProfileFields
- socialConnectors
- ssoConnectors
- forgotPassword
- isDevelopmentTenant
- customProfileFields
properties:
tenantId:
type: string
maxLength: 21
id:
type: string
minLength: 1
maxLength: 21
color:
type: object
required:
- primaryColor
- isDarkModeEnabled
- darkPrimaryColor
properties:
primaryColor:
type: string
format: regex
pattern: /^#[\da-f]{3}([\da-f]{3})?$/i
isDarkModeEnabled:
type: boolean
darkPrimaryColor:
type: string
format: regex
pattern: /^#[\da-f]{3}([\da-f]{3})?$/i
branding:
type: object
properties:
logoUrl:
type: string
format: url
darkLogoUrl:
type: string
format: url
favicon:
type: string
format: url
darkFavicon:
type: string
format: url
hideLogtoBranding:
type: boolean
languageInfo:
type: object
required:
- autoDetect
- fallbackLanguage
properties:
autoDetect:
type: boolean
fallbackLanguage:
type: string
enum:
- af-ZA
- am-ET
- ar
- ar-AR
- as-IN
- az-AZ
- be-BY
- bg-BG
- bn-IN
- br-FR
- bs-BA
- ca-ES
- cb-IQ
- co-FR
- cs
- cs-CZ
- cx-PH
- cy-GB
- da-DK
- de
- de-DE
- el-GR
- en
- en-GB
- en-US
- eo-EO
- es
- es-ES
- es-419
- et-EE
- eu-ES
- fa-IR
- ff-NG
- fi
- fi-FI
- fo-FO
- fr
- fr-CA
- fr-FR
- fy-NL
- ga-IE
- gl-ES
- gn-PY
- gu-IN
- ha-NG
- he-IL
- hi-IN
- hr-HR
- ht-HT
- hu-HU
- hy-AM
- id-ID
- ik-US
- is-IS
- it
- it-IT
- iu-CA
- ja
- ja-JP
- ja-KS
- jv-ID
- ka-GE
- kk-KZ
- km-KH
- kn-IN
- ko
- ko-KR
- ku-TR
- ky-KG
- lo-LA
- lt-LT
- lv-LV
- mg-MG
- mk-MK
- ml-IN
- mn-MN
- mr-IN
- ms-MY
- mt-MT
- my-MM
- nb-NO
- ne-NP
- nl
- nl-BE
- nl-NL
- nn-NO
- or-IN
- pa-IN
- pl-PL
- ps-AF
- pt
- pt-BR
- pt-PT
- ro-RO
- ru
- ru-RU
- rw-RW
- sc-IT
- si-LK
- sk-SK
- sl-SI
- sn-ZW
- sq-AL
- sr-RS
- sv
- sv-SE
- sw-KE
- sy-SY
- sz-PL
- ta-IN
- te-IN
- tg-TJ
- th
- th-TH
- tl-PH
- tr
- tr-TR
- tt-RU
- tz-MA
- uk-UA
- ur-PK
- uz-UZ
- vi-VN
- zh
- zh-CN
- zh-HK
- zh-MO
- zh-TW
- zz-TR
termsOfUseUrl:
type:
- string
- 'null'
maxLength: 2048
privacyPolicyUrl:
type:
- string
- 'null'
maxLength: 2048
agreeToTermsPolicy:
type: string
enum:
- Automatic
- ManualRegistrationOnly
- Manual
signIn:
type: object
required:
- methods
properties:
methods:
type: array
items:
type: object
required:
- identifier
- password
- verificationCode
- isPasswordPrimary
properties:
identifier:
type: string
enum:
- username
- email
- phone
password:
type: boolean
verificationCode:
type: boolean
isPasswordPrimary:
type: boolean
signUp:
type: object
required:
- identifiers
- password
- verify
properties:
identifiers:
type: array
items:
type: string
enum:
- username
- email
- phone
password:
type: boolean
verify:
type: boolean
secondaryIdentifiers:
type: array
items:
type: object
required:
- identifier
properties:
identifier:
oneOf:
- type: string
enum:
- username
- email
- phone
- type: string
enum:
- emailOrPhone
verify:
type: boolean
socialSignIn:
type: object
properties:
automaticAccountLinking:
type: boolean
skipRequiredIdentifiers:
type: boolean
socialSignInConnectorTargets:
type: array
items:
type: string
signInMode:
type: string
enum:
- SignIn
- Register
- SignInAndRegister
customCss:
type:
- string
- 'null'
customContent:
type: object
additionalProperties:
type: string
customUiAssets:
type:
- object
- 'null'
required:
- id
- createdAt
properties:
id:
type: string
createdAt:
type: number
passwordPolicy:
type: object
properties:
length:
default: {}
type: object
required:
- min
- max
properties:
min:
default: 8
type: number
max:
default: 256
type: number
characterTypes:
default: {}
type: object
required:
- min
properties:
min:
default: 1
type: number
rejects:
default: {}
type: object
required:
- pwned
- repetitionAndSequence
- userInfo
- words
properties:
pwned:
default: true
type: boolean
repetitionAndSequence:
default: true
type: boolean
userInfo:
default: true
type: boolean
words:
default: []
type: array
items:
type: string
mfa:
type: object
required:
- factors
- policy
properties:
factors:
type: array
items:
type: string
enum:
- Totp
- WebAuthn
- BackupCode
- EmailVerificationCode
- PhoneVerificationCode
policy:
type: string
enum:
- UserControlled
- Mandatory
- PromptOnlyAtSignIn
- PromptAtSignInAndSignUp
- NoPrompt
- PromptAtSignInAndSignUpMandatory
- PromptOnlyAtSignInMandatory
organizationRequiredMfaPolicy:
type: string
enum:
- NoPrompt
- Mandatory
adaptiveMfa:
type: object
properties:
enabled:
type: boolean
singleSignOnEnabled:
type: boolean
supportEmail:
type:
- string
- 'null'
supportWebsiteUrl:
type:
- string
- 'null'
unknownSessionRedirectUrl:
type:
- string
- 'null'
captchaPolicy:
type: object
properties:
enabled:
type: boolean
sentinelPolicy:
type: object
properties:
maxAttempts:
type: number
lockoutDuration:
type: number
emailBlocklistPolicy:
type: object
properties:
blockDisposableAddresses:
type: boolean
blockSubaddressing:
type: boolean
customBlocklist:
type: array
items:
type: string
passkeySignIn:
type: object
properties:
enabled:
type: boolean
showPasskeyButton:
type: boolean
allowAutofill:
type: boolean
signUpProfileFields:
type:
- array
- 'null'
items:
type: object
required:
- name
properties:
name:
type: string
socialConnectors:
type: array
items:
type: object
required:
- id
- target
- name
- logo
- logoDark
- platform
properties:
id:
type: string
target:
type: string
name:
type: object
description: Validator function
logo:
type: string
logoDark:
type:
- string
- 'null'
fromEmail:
type: string
platform:
type:
- string
- 'null'
enum:
- Native
- Universal
- Web
isStandard:
type: boolean
isTokenStorageSupported:
type: boolean
ssoConnectors:
type: array
items:
type: object
required:
- id
- connectorName
- logo
properties:
id:
type: string
connectorName:
type: string
logo:
type: string
darkLogo:
type: string
forgotPassword:
type: object
required:
- phone
- email
properties:
phone:
type: boolean
email:
type: boolean
isDevelopmentTenant:
type: boolean
googleOneTap:
type: object
required:
- clientId
- connectorId
properties:
isEnabled:
type: boolean
autoSelect:
type: boolean
closeOnTapOutside:
type: boolean
itpSupport:
type: boolean
clientId:
type: string
connectorId:
type: string
captchaConfig:
type: object
required:
- type
- siteKey
properties:
type:
type: string
enum:
- RecaptchaEnterprise
- Turnstile
siteKey:
type: string
domain:
type: string
mode:
type: string
enum:
- invisible
- checkbox
customProfileFields:
type: array
items:
type: object
required:
- tenantId
- id
- name
- type
- label
- description
- required
- config
- createdAt
- sieOrder
properties:
tenantId:
type: string
maxLength: 21
id:
type: string
minLength: 1
maxLength: 21
name:
type: string
minLength: 1
maxLength: 128
type:
type: string
enum:
- Text
- Number
- Date
- Checkbox
- Select
- Url
- Regex
- Address
- Fullname
label:
type: string
maxLength: 128
description:
type:
- string
- 'null'
maxLength: 256
required:
type: boolean
config:
type: object
properties:
placeholder:
type: string
maxLength: 256
minLength:
type: number
maxLength:
type: number
minValue:
type: number
maxValue:
type: number
format:
type: string
maxLength: 128
customFormat:
type: string
maxLength: 128
options:
type: array
items:
type: object
required:
- value
properties:
label:
type: string
value:
type: string
defaultValue:
type: string
parts:
type: array
items:
type: object
required:
- enabled
- name
- type
- required
properties:
enabled:
type: boolean
name:
type: string
type:
type: string
enum:
- Text
- Number
- Date
- Checkbox
- Select
- Url
- Regex
- Address
- Fullname
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
properties:
placeholder:
type: string
maxLength: 256
minLength:
type: number
maxLength:
type: number
minValue:
type: number
maxValue:
type: number
format:
type: string
maxLength: 128
customFormat:
type: string
maxLength: 128
options:
type: array
items:
type: object
required:
- value
properties:
label:
type: string
value:
type: string
defaultValue:
type: string
createdAt:
type: number
sieOrder:
type: number
'400':
description: Bad Request
security: []
deprecated: true
summary: Get full sign-in experience
description: Get the full sign-in experience configuration.
/api/.well-known/phrases:
get:
operationId: GetSignInExperiencePhrases
tags:
- Well-known
parameters:
- name: lng
in: query
required: false
schema:
type: string
description: The language tag for localization.
responses:
'200':
description: Localized phrases for the specified language.
content:
application/json:
schema:
type: object
additionalProperties:
oneOf:
- type: string
- type: object
additionalProperties:
example: {}
'400':
description: Bad Request
security: []
summary: Get localized phrases
description: Get localized phrases based on the specified language.
/api/.well-known/experience:
get:
operationId: GetWellKnownExperience
tags:
- Well-known
parameters:
- name: organizationId
in: query
required: false
schema:
type: string
- name: appId
in: query
required: false
schema:
type: string
responses:
'200':
description: The full sign-in experience configuration.
content:
application/json:
schema:
type: object
required:
- tenantId
- id
- color
- branding
- hideLogtoBranding
- languageInfo
- termsOfUseUrl
- privacyPolicyUrl
- agreeToTermsPolicy
- signIn
- signUp
- socialSignIn
- socialSignInConnectorTargets
- signInMode
- customCss
- customContent
- customUiAssets
- passwordPolicy
- mfa
- adaptiveMfa
- singleSignOnEnabled
- supportEmail
- supportWebsiteUrl
- unknownSessionRedirectUrl
- captchaPolicy
- sentinelPolicy
- emailBlocklistPolicy
- passkeySignIn
- signUpProfileFields
- socialConnectors
- ssoConnectors
- forgotPassword
- isDevelopmentTenant
- customProfileFields
properties:
tenantId:
type: string
maxLength: 21
id:
type: string
minLength: 1
maxLength: 21
color:
type: object
required:
- primaryColor
- isDarkModeEnabled
- darkPrimaryColor
properties:
primaryColor:
type: string
format: regex
pattern: /^#[\da-f]{3}([\da-f]{3})?$/i
isDarkModeEnabled:
type: boolean
darkPrimaryColor:
type: string
format: regex
pattern: /^#[\da-f]{3}([\da-f]{3})?$/i
branding:
type: object
properties:
logoUrl:
type: string
format: url
darkLogoUrl:
type: string
format: url
favicon:
type: string
format: url
darkFavicon:
type: string
format: url
hideLogtoBranding:
type: boolean
languageInfo:
type: object
required:
- autoDetect
- fallbackLanguage
properties:
autoDetect:
type: boolean
fallbackLanguage:
type: string
enum:
- af-ZA
- am-ET
- ar
- ar-AR
- as-IN
- az-AZ
- be-BY
- bg-BG
- bn-IN
- br-FR
- bs-BA
- ca-ES
- cb-IQ
- co-FR
- cs
- cs-CZ
- cx-PH
- cy-GB
- da-DK
- de
- de-DE
- el-GR
- en
- en-GB
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/logto/refs/heads/main/openapi/logto-well-known-api-openapi.yml