---
title: "Create user"
method: POST
path: "/api/users"
tags: ["Users"]
---

# Create user

`POST /api/users`

Creates a new user account with the provided details and password

## Request body

- UserWithPassword
  - `user` UserCommandDTO, required — Command Data Transfer Object for creating or updating a user. Used as the request body for user creation/update endpoints.
    - `login` string, required — The login username of the user.
    - `firstName` string, nullable, required — The first name of the user. Can be `null` if not provided.
    - `lastName` string, nullable, required — The last name of the user. Can be `null` if not provided.
    - `email` string, nullable, required — The email address of the user. Can be `null` if not provided.
    - `language` 'fr' | 'en', required — Type representing a supported language.
    - `timezone` string, required — Represents a timezone as an IANA timezone string.
  - `password` string, required

## Response `201`

User created successfully

- UserDTO — Data Transfer Object for a user. Represents a user with their personal information, login credentials, preferences, and display name.
  - `id` string, required — The unique identifier of the entity.
  - `creationDate` string — Represents an instant in time as an ISO 8601 string.
  - `lastEditInstant` string — Represents an instant in time as an ISO 8601 string.
  - `login` string, required — The login username of the user.
  - `firstName` string, nullable, required — The first name of the user. Can be `null` if not provided.
  - `lastName` string, nullable, required — The last name of the user. Can be `null` if not provided.
  - `email` string, nullable, required — The email address of the user. Can be `null` if not provided.
  - `language` 'fr' | 'en', required — Type representing a supported language.
  - `timezone` string, required — Represents a timezone as an IANA timezone string.
  - `friendlyName` string, required — The friendly display name of the user.

## Changes

- **2026-01-06** `d8e7a58e006a` — 4 breaking, 2 info
  - removed the required property `createdAt` from the response with the `201` status
  - removed the required property `createdBy` from the response with the `201` status
  - removed the required property `updatedAt` from the response with the `201` status
  - removed the required property `updatedBy` from the response with the `201` status
  - …2 more

[Change history](https://skmtc.dev/optimistiksas/apis/oibus-api/changes/api/users/post.md)

---

[API](https://skmtc.dev/optimistiksas/apis/oibus-api.md) · [All operations](https://skmtc.dev/optimistiksas/apis/oibus-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/optimistiksas/oibus-api/revisions/e0febbaacdc7/schema)
