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

# Register new user



## OpenAPI

````yaml post /api/auth/register
openapi: 3.0.1
info:
  title: Shared Desk System
  description: OpenApi documentation for Shared Desk System
  version: '1.0'
servers:
  - url: http://localhost
    description: Local Cors
  - url: http://localhost:8080
    description: Local
  - url: https://production.shared-desk.cloud
    description: Production
  - url: https://staging.shared-desk.cloud
    description: Staging
security:
  - bearerAuth: []
  - cookieAuth: []
tags:
  - name: Stats
    description: Endpoints for retrieving statistics
  - name: User
    description: Endpoints for managing users
  - name: Password
    description: API for password reset
  - name: Authentication
    description: API for authentication
  - name: Search
    description: >-
      Advanced search operations. Allows to search for departments, rooms and
      desks.
  - name: Department
    description: API for department management
  - name: Equipment
    description: Endpoints for managing equipment
  - name: Desk
    description: API for desk management
  - name: Actuator
    description: Monitor and interact
    externalDocs:
      description: Spring Boot Actuator Web API Documentation
      url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
  - name: Room
    description: API for room management
  - name: Session
    description: Endpoints for managing user sessions
externalDocs:
  description: Public Service Documentation
  url: https://docs.shared-desk.cloud/api/introduction
paths:
  /api/auth/register:
    post:
      tags:
        - Authentication
      summary: Register new user
      operationId: register
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RegisterRequestDTO'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RegisterRequestDTO'
      responses:
        '200':
          description: User successfully registered
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RegisterResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                RegistrationDisabledExample:
                  description: Occurs when user registration is disabled
                  value:
                    status: 400
                    error: Bad Request
                    message: User registration is disabled
                    details: []
                    path: /api/auth/register
                    timestamp: '2024-05-29T12:34:56'
                EmailAlreadyExistsExample:
                  description: Another user with the same email already exists
                  value:
                    status: 400
                    error: Bad Request
                    message: Email already exists
                    details: []
                    path: /api/auth/register
                    timestamp: '2024-05-29T12:34:56'
                EmailNotAllowedExample:
                  description: The email don't match the configured regex
                  value:
                    status: 400
                    error: Bad Request
                    message: >-
                      This Email is not allowed to register, please contact the
                      administrator.
                    details: []
                    path: /api/auth/register
                    timestamp: '2024-05-29T12:34:56'
                AdminRoleDisabledExample:
                  description: >-
                    Occurs when the user registers as an admin and the default
                    disabled setting is enabled
                  value:
                    status: 400
                    error: Bad Request
                    message: >-
                      Because you registered as an admin, your account is
                      disabled by default. Please contact the administrator to
                      enable your account.
                    details: []
                    path: /api/auth/register
                    timestamp: '2024-05-29T12:34:56'
        '401':
          description: Bad credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                BadCredentialsExample:
                  description: BadCredentialsExample
                  value:
                    status: 401
                    error: Unauthorized
                    message: Full authentication is required to access this resource
                    details: []
                    path: /
                    timestamp: '2024-05-29T12:34:56'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                ForbiddenExample:
                  description: ForbiddenExample
                  value:
                    status: 403
                    error: Forbidden
                    message: Access denied
                    details: []
                    path: /api/
                    timestamp: '2024-05-29T12:34:56'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    RegisterRequestDTO:
      required:
        - email
        - firstName
        - lastName
        - password
        - role
      type: object
      properties:
        firstName:
          maxLength: 255
          minLength: 1
          pattern: ^[\p{L} .'-]+$
          type: string
        lastName:
          maxLength: 255
          minLength: 1
          pattern: ^[\p{L} .'-]+$
          type: string
        email:
          maxLength: 255
          minLength: 1
          type: string
        password:
          maxLength: 128
          minLength: 8
          pattern: ^(?=.*\p{Ll})(?=.*\p{Lu})(?=.*\d)[\p{L}0-9!@#$%^&*]{8,}$
          type: string
        role:
          type: string
          enum:
            - USER
            - ADMIN
    RegisterResponseDTO:
      type: object
      properties:
        success:
          type: boolean
    ApiError:
      type: object
      properties:
        timestamp:
          type: string
          example: '2024-05-29T12:34:56'
        status:
          type: integer
          format: int32
        error:
          type: string
        message:
          type: string
        details:
          type: array
          example: []
          items:
            type: object
            example: []
        path:
          type: string
          example: /api/?
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    cookieAuth:
      type: apiKey
      name: Authorization
      in: cookie

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.