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.
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-custom-profile-fields-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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