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

# Creating a user



## OpenAPI

````yaml /api-reference/openapi.json post /v1/users
openapi: 3.1.0
info:
  title: Qminder API
  version: '1.0'
  description: >-
    The Qminder API allows you to integrate queue management into your own
    applications.
servers:
  - url: https://api.qminder.com
security:
  - sec0: []
tags:
  - name: Locations
    description: Manage physical service locations
  - name: Lines
    description: Manage virtual queues within locations
  - name: Input Fields
    description: Manage custom data fields for locations
  - name: Tickets
    description: Manage visitor queue entries
  - name: Appointments
    description: Manage scheduled appointments
  - name: Users
    description: Manage user accounts and permissions
  - name: Webhooks
    description: Manage webhook subscriptions
paths:
  /v1/users:
    post:
      tags:
        - Users
      summary: Creating a user
      operationId: creating-a-user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - email
                - firstName
                - lastName
                - roles
              properties:
                email:
                  type: string
                  description: >-
                    The email address of the new user. They must be able to
                    receive an e-mail. The maximum length is 100 characters.
                firstName:
                  type: string
                  description: >-
                    The first name of the new user. The maximum length is 50
                    characters.
                lastName:
                  type: string
                  description: >-
                    The last name of the new user. The maximum length is 50
                    characters.
                roles:
                  type: string
                  description: >-
                    Array of access roles for the user. The array must have at
                    least one access role. Access roles are JSON objects with
                    the following fields: type (string) Mandatory. The access
                    level. Either "CLERK", "MANAGER", or "ADMIN". location
                    (number) Optional. The location where to grant access.
                    Mandatory for CLERK and MANAGER access levels.
                  format: json
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - email
                - firstName
                - lastName
                - roles
              properties:
                email:
                  type: string
                  description: >-
                    The email address of the new user. They must be able to
                    receive an e-mail. The maximum length is 100 characters.
                firstName:
                  type: string
                  description: >-
                    The first name of the new user. The maximum length is 50
                    characters.
                lastName:
                  type: string
                  description: >-
                    The last name of the new user. The maximum length is 50
                    characters.
                roles:
                  type: string
                  description: >-
                    Array of access roles for the user. The array must have at
                    least one access role. Access roles are JSON objects with
                    the following fields: type (string) Mandatory. The access
                    level. Either "CLERK", "MANAGER", or "ADMIN". location
                    (number) Optional. The location where to grant access.
                    Mandatory for CLERK and MANAGER access levels.
                  format: json
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: |-
                    {
                      "statusCode": 200,
                      "id": "226859"
                    }
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 200
                    default: 0
                  id:
                    type: string
                    example: '226859'
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: X-Qminder-REST-API-Key
      x-default: yourbusinessapikey

````