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.

OpenAPI Specification

logto-custom-profile-fields-api-openapi.yml Raw ↑
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