Logto Custom profile fields API
An admin feature used to create a customized user profile form, which is used to collect additional user information upon successful registrations.
An admin feature used to create a customized user profile form, which is used to collect additional user information upon successful registrations.
openapi: 3.0.1
info:
title: Logto API references Account center Custom profile fields 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: Custom profile fields
description: An admin feature used to create a customized user profile form, which is used to collect additional user information upon successful registrations.
paths:
/api/custom-profile-fields:
get:
operationId: ListCustomProfileFields
tags:
- Custom profile fields
parameters: []
responses:
'200':
description: Custom profile fields ordered by sieOrder (Sign-in Experience order).
content:
application/json:
schema:
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
maxLength: 256
nullable: true
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
'401':
description: Unauthorized
'403':
description: Forbidden
summary: Get all custom profile fields
description: Get all custom profile fields.
post:
operationId: CreateCustomProfileField
tags:
- Custom profile fields
parameters: []
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required:
- name
- type
- required
properties:
name:
type: string
type:
type: string
format: '"Text"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
properties:
placeholder:
type: string
minLength:
type: number
maxLength:
type: number
- type: object
required:
- name
- type
- required
properties:
name:
type: string
type:
type: string
format: '"Number"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
properties:
placeholder:
type: string
minValue:
type: number
maxValue:
type: number
- type: object
required:
- name
- type
- required
properties:
name:
type: string
type:
type: string
format: '"Date"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
required:
- format
properties:
placeholder:
type: string
format:
type: string
customFormat:
type: string
- type: object
required:
- name
- type
- required
properties:
name:
type: string
type:
type: string
format: '"Checkbox"'
label:
type: string
minLength: 1
required:
type: boolean
format: 'false'
config:
type: object
required:
- defaultValue
properties:
defaultValue:
oneOf:
- type: string
format: '"true"'
- type: string
format: '"false"'
- type: object
required:
- name
- type
- required
- config
properties:
name:
type: string
type:
type: string
format: '"Select"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
required:
- options
properties:
placeholder:
type: string
options:
type: array
items:
type: object
required:
- value
properties:
label:
type: string
value:
type: string
- type: object
required:
- name
- type
- required
properties:
name:
type: string
type:
type: string
format: '"Url"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
properties:
placeholder:
type: string
- type: object
required:
- name
- type
- required
- config
properties:
name:
type: string
type:
type: string
format: '"Regex"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
required:
- format
properties:
placeholder:
type: string
format:
type: string
- type: object
required:
- name
- type
- required
- config
properties:
name:
type: string
type:
type: string
format: '"Address"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
required:
- parts
properties:
parts:
type: array
items:
type: object
required:
- enabled
- type
- required
- name
properties:
enabled:
type: boolean
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
name:
type: string
enum:
- formatted
- streetAddress
- locality
- region
- postalCode
- country
- type: object
required:
- name
- type
- required
- config
properties:
name:
type: string
type:
type: string
format: '"Fullname"'
label:
type: string
minLength: 1
description:
type: string
required:
type: boolean
config:
type: object
required:
- parts
properties:
parts:
type: array
items:
type: object
required:
- enabled
- type
- required
- name
properties:
enabled:
type: boolean
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
name:
type: string
enum:
- givenName
- middleName
- familyName
responses:
'201':
description: Created
content:
application/json:
schema:
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
maxLength: 256
nullable: true
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
'401':
description: Unauthorized
'403':
description: Forbidden
summary: Create a custom profile field
description: Create a custom profile field.
/api/custom-profile-fields/{name}:
get:
operationId: GetCustomProfileFieldByName
tags:
- Custom profile fields
parameters:
- name: name
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Custom profile field found successfully.
content:
application/json:
schema:
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
maxLength: 256
nullable: true
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
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Get a custom profile field by name
description: Get a custom profile field by name.
put:
operationId: UpdateCustomProfileFieldByName
tags:
- Custom profile fields
parameters:
- name: name
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
required: true
content:
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/logto/refs/heads/main/openapi/logto-custom-profile-fields-api-openapi.yml