Dust Identity Users API

Manage user accounts and profiles

Operations 3

GET /api/v1/users/profile Get current profile #
PATCH /api/v1/users/profile Update profile #
GET /api/v1/users/{user_id} Get a user's profile #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dust-identity-users-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

dust-identity-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DUST Users API
  description: DUST Platform API
  version: 2026.7.4
servers:
- url: https://apid.dustid.io
  description: DUST API for trusted provenance.
security:
- Bearer: []
tags:
- name: Users
  description: Manage user accounts and profiles
paths:
  /api/v1/users/profile:
    get:
      operationId: users.get_profile
      summary: Get current profile
      description: Get current profile of authenticated user
      tags:
      - Users
      responses:
        '200':
          description: Profile of authenticated user
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    $ref: '#/components/schemas/User'
                  orgs:
                    type: array
                    items:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        metadata:
                          anyOf:
                          - type: number
                          - type: object
                          - type: string
                          - type: boolean
                          - type: 'null'
                        orgId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        role:
                          anyOf:
                          - type: string
                          - type: 'null'
                        status:
                          anyOf:
                          - type: string
                          - type: 'null'
                        updatedAt:
                          type: string
                        userId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        org:
                          type: object
                          properties:
                            createdAt:
                              type: string
                            logo:
                              anyOf:
                              - type: string
                              - type: 'null'
                            name:
                              type: string
                            orgId:
                              type: string
                              description: a RFC-4122-compliant UUID
                              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                            slug:
                              anyOf:
                              - type: string
                              - type: 'null'
                            updatedAt:
                              type: string
                            website:
                              anyOf:
                              - type: string
                              - type: 'null'
                          required:
                          - createdAt
                          - logo
                          - name
                          - orgId
                          - slug
                          - updatedAt
                          - website
                      required:
                      - createdAt
                      - metadata
                      - orgId
                      - role
                      - status
                      - updatedAt
                      - userId
                  teams:
                    type: array
                    items:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        metadata:
                          anyOf:
                          - type: number
                          - type: object
                          - type: string
                          - type: boolean
                          - type: 'null'
                        role:
                          type: string
                        teamId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        updatedAt:
                          type: string
                        userId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        depth:
                          type: number
                        path:
                          type: string
                        team:
                          type: object
                          properties:
                            createdAt:
                              type: string
                            description:
                              anyOf:
                              - type: string
                              - type: 'null'
                            detail:
                              anyOf:
                              - type: string
                              - type: 'null'
                            logo:
                              anyOf:
                              - type: string
                              - type: 'null'
                            name:
                              anyOf:
                              - type: string
                              - type: 'null'
                            orgId:
                              anyOf:
                              - type: string
                                description: a UUID
                                format: uuid
                                pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                              - const: 00000000-0000-0000-0000-000000000000
                                description: a UUID
                                format: uuid
                              - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                                description: a UUID
                                format: uuid
                              description: a UUID
                              format: uuid
                            teamId:
                              anyOf:
                              - type: string
                                description: a UUID
                                format: uuid
                                pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                              - const: 00000000-0000-0000-0000-000000000000
                                description: a UUID
                                format: uuid
                              - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                                description: a UUID
                                format: uuid
                              description: a UUID
                              format: uuid
                            updatedAt:
                              type: string
                            depth:
                              type: number
                            num_members:
                              type: number
                            path:
                              type: string
                          required:
                          - createdAt
                          - description
                          - detail
                          - logo
                          - name
                          - orgId
                          - teamId
                          - updatedAt
                      required:
                      - createdAt
                      - metadata
                      - role
                      - teamId
                      - updatedAt
                      - userId
                required:
                - user
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
    patch:
      operationId: users.update_profile
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateProfileRequest'
      summary: Update profile
      description: Update profile of authenticated user
      tags:
      - Users
      responses:
        '200':
          description: Updated Profile information
          content:
            application/json:
              schema:
                type: object
                properties:
                  avatar:
                    anyOf:
                    - type: string
                    - type: 'null'
                  createdAt:
                    type: string
                  email:
                    type: string
                  emailVerified:
                    type: boolean
                  familyName:
                    anyOf:
                    - type: string
                    - type: 'null'
                  name:
                    anyOf:
                    - type: string
                    - type: 'null'
                  phone:
                    anyOf:
                    - type: string
                    - type: 'null'
                  profileId:
                    type: string
                    description: a RFC-4122-compliant UUID
                    pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                  updatedAt:
                    type: string
                required:
                - avatar
                - createdAt
                - email
                - emailVerified
                - familyName
                - name
                - phone
                - profileId
                - updatedAt
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
  /api/v1/users/{user_id}:
    get:
      operationId: users.get
      parameters:
      - in: path
        name: user_id
        schema:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          format: uuid
        required: true
        description: a UUID
      summary: Get a user's profile
      tags:
      - Users
      responses:
        '200':
          description: User's Profile
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    $ref: '#/components/schemas/User'
                  orgs:
                    type: array
                    items:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        metadata:
                          anyOf:
                          - type: number
                          - type: object
                          - type: string
                          - type: boolean
                          - type: 'null'
                        orgId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        role:
                          anyOf:
                          - type: string
                          - type: 'null'
                        status:
                          anyOf:
                          - type: string
                          - type: 'null'
                        updatedAt:
                          type: string
                        userId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        org:
                          type: object
                          properties:
                            createdAt:
                              type: string
                            logo:
                              anyOf:
                              - type: string
                              - type: 'null'
                            name:
                              type: string
                            orgId:
                              type: string
                              description: a RFC-4122-compliant UUID
                              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                            slug:
                              anyOf:
                              - type: string
                              - type: 'null'
                            updatedAt:
                              type: string
                            website:
                              anyOf:
                              - type: string
                              - type: 'null'
                          required:
                          - createdAt
                          - logo
                          - name
                          - orgId
                          - slug
                          - updatedAt
                          - website
                      required:
                      - createdAt
                      - metadata
                      - orgId
                      - role
                      - status
                      - updatedAt
                      - userId
                  teams:
                    type: array
                    items:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        metadata:
                          anyOf:
                          - type: number
                          - type: object
                          - type: string
                          - type: boolean
                          - type: 'null'
                        role:
                          type: string
                        teamId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        updatedAt:
                          type: string
                        userId:
                          anyOf:
                          - type: string
                            description: a UUID
                            format: uuid
                            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                          - const: 00000000-0000-0000-0000-000000000000
                            description: a UUID
                            format: uuid
                          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                            description: a UUID
                            format: uuid
                          description: a UUID
                          format: uuid
                        depth:
                          type: number
                        path:
                          type: string
                        team:
                          type: object
                          properties:
                            createdAt:
                              type: string
                            description:
                              anyOf:
                              - type: string
                              - type: 'null'
                            detail:
                              anyOf:
                              - type: string
                              - type: 'null'
                            logo:
                              anyOf:
                              - type: string
                              - type: 'null'
                            name:
                              anyOf:
                              - type: string
                              - type: 'null'
                            orgId:
                              anyOf:
                              - type: string
                                description: a UUID
                                format: uuid
                                pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                              - const: 00000000-0000-0000-0000-000000000000
                                description: a UUID
                                format: uuid
                              - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                                description: a UUID
                                format: uuid
                              description: a UUID
                              format: uuid
                            teamId:
                              anyOf:
                              - type: string
                                description: a UUID
                                format: uuid
                                pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                              - const: 00000000-0000-0000-0000-000000000000
                                description: a UUID
                                format: uuid
                              - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                                description: a UUID
                                format: uuid
                              description: a UUID
                              format: uuid
                            updatedAt:
                              type: string
                            depth:
                              type: number
                            num_members:
                              type: number
                            path:
                              type: string
                          required:
                          - createdAt
                          - description
                          - detail
                          - logo
                          - name
                          - orgId
                          - teamId
                          - updatedAt
                      required:
                      - createdAt
                      - metadata
                      - role
                      - teamId
                      - updatedAt
                      - userId
                required:
                - user
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
components:
  schemas:
    User:
      type: object
      properties:
        banExpires:
          anyOf:
          - type: string
          - type: 'null'
        banReason:
          anyOf:
          - type: string
          - type: 'null'
        banned:
          anyOf:
          - type: boolean
          - type: 'null'
        createdAt:
          type: string
        kind:
          type: string
        role:
          type: string
        twoFactorEnabled:
          anyOf:
          - type: boolean
          - type: 'null'
        updatedAt:
          type: string
        userId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        auth:
          type: object
          properties:
            banExpires:
              anyOf:
              - type: string
              - type: 'null'
            banReason:
              anyOf:
              - type: string
              - type: 'null'
            createdAt:
              type: string
            email:
              type: string
              pattern: ^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$
              format: email
            familyName:
              anyOf:
              - type: string
              - type: 'null'
            id:
              type: string
            image:
              anyOf:
              - type: string
              - type: 'null'
            name:
              type: string
            role:
              type: string
            updatedAt:
              type: string
            banned:
              anyOf:
              - type: boolean
              - type: 'null'
              default: false
            emailVerified:
              anyOf:
              - type: boolean
              - type: 'null'
              default: false
            twoFactorEnabled:
              anyOf:
              - type: boolean
              - type: 'null'
              default: false
            activeOrgRole:
              anyOf:
              - type: string
              - type: 'null'
          required:
          - banExpires
          - banReason
          - createdAt
          - email
          - familyName
          - id
          - image
          - name
          - role
          - updatedAt
        profile:
          $ref: '#/components/schemas/Principal'
      required:
      - banExpires
      - banReason
      - banned
      - createdAt
      - kind
      - role
      - twoFactorEnabled
      - updatedAt
      - userId
    UpdateProfileRequest:
      type: object
      properties:
        familyName:
          type: string
        image:
          anyOf:
          - description: A file object representing the user's profile image. Can be null to remove the existing image.
          - type: 'null'
            description: A file object representing the user's profile image. Can be null to remove the existing image.
          description: A file object representing the user's profile image. Can be null to remove the existing image.
        name:
          type: string
    Principal:
      type: object
      properties:
        avatar:
          anyOf:
          - type: string
          - type: 'null'
        createdAt:
          type: string
        email:
          anyOf:
          - type: string
          - type: 'null'
        emailVerified:
          anyOf:
          - type: boolean
          - type: 'null'
        familyName:
          anyOf:
          - type: string
          - type: 'null'
        kind:
          enum:
          - human
          - service
        name:
          anyOf:
          - type: string
          - type: 'null'
        phone:
          anyOf:
          - type: string
          - type: 'null'
        profileId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
        updatedAt:
          type: string
        userId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
      required:
      - avatar
      - createdAt
      - email
      - emailVerified
      - familyName
      - kind
      - name
      - phone
      - profileId
      - updatedAt
      - userId
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT issued by the DUST auth serv

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dust-identity/refs/heads/main/openapi/dust-identity-users-api-openapi.yml