> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cyrisma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a user



## OpenAPI

````yaml /api/partner-api/provisioning.json post /v1/msp/admin/users
openapi: 3.1.1
info:
  title: 'Cyrisma New Partner API: Provisioning'
  version: v1
servers:
  - url: https://{instance}.cyrisma.com/ta
    description: Tenant Authority, served under the partner's own CYRISMA instance host.
    variables:
      instance:
        default: ccnnnnnn
        description: The instance label of the tenant host issued to the partner.
security:
  - bearerAuth: []
tags:
  - name: Auth
  - name: MSP Administration
paths:
  /v1/msp/admin/users:
    post:
      tags:
        - MSP Administration
      summary: Create a user
      operationId: CreateMspAdminUserV1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MspAdminUserCreateRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MspAdminUserResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/HttpValidationProblemDetails'
components:
  schemas:
    MspAdminUserCreateRequest:
      required:
        - tenant_id
        - first_name
        - last_name
        - email
        - password
        - role
      type: object
      properties:
        tenant_id:
          type: string
          format: uuid
        first_name:
          type: string
        last_name:
          type:
            - 'null'
            - string
        email:
          type: string
        password:
          type: string
        role:
          type: string
    MspAdminUserResponse:
      required:
        - user_id
        - first_name
        - last_name
        - display_name
        - email
        - tenant_id
        - tenant_name
        - roles
        - scopes
        - status
        - last_login_at
        - selected_mfa_method
        - enrolled_mfa_methods
      type: object
      properties:
        user_id:
          type: string
          format: uuid
        first_name:
          type: string
        last_name:
          type: string
        display_name:
          type: string
        email:
          type: string
        tenant_id:
          type: string
          format: uuid
        tenant_name:
          type: string
        roles:
          type: array
          items:
            type: string
        scopes:
          type: array
          items:
            type: string
        status:
          type: string
        last_login_at:
          type:
            - 'null'
            - string
          format: date-time
        selected_mfa_method:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CanonicalMfaType'
        enrolled_mfa_methods:
          type: array
          items:
            $ref: '#/components/schemas/CanonicalMfaType'
    HttpValidationProblemDetails:
      type: object
      properties:
        type:
          type:
            - 'null'
            - string
        title:
          type:
            - 'null'
            - string
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        detail:
          type:
            - 'null'
            - string
        instance:
          type:
            - 'null'
            - string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    CanonicalMfaType:
      enum:
        - email
        - totp
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        A machine-client token from POST /v1/auth/client-token. Provisioning and
        user management need the pulse.write scope; reads need pulse.read.
      scheme: bearer
      bearerFormat: JWT

````