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

# Create a user

`POST /users`

Creates a user.

Sends an email with a generated password if the password is missing.

## Request body

- UserDto
  - `email` string, required — Email address of the user.
  - `password` string, nullable — Password for the user. Password must include atleast one lowercase character, uppercase character, numeric character as well as a special character.
  - `expireAfterDays` integer, nullable — Expire after the specified days. Must be left blank for users that do not expire.
  - `isInternal` boolean — Creates the user as an internal user. Internal users are excluded from billing and license counts. Use this option for testing, background services, or other non-customer-facing purposes.
  - `bypassMfa` boolean — Bypasses multi-factor authentication for the user. When enabled, the user will not be prompted for two factor authentication during login.

## Response `202`

When request is accepted. Returns a hypermedia 'Link' object of the user to be created.

- Link
  - `id` string, nullable
  - `href` string, nullable
  - `relation` string, nullable
  - `method` string, nullable

## Other responses

- `400` — When user or password validation fails.

---

[API](https://skmtc.net/smokeball/apis/api.md) · [All operations](https://skmtc.net/smokeball/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smokeball/api/revisions/197984da9b42/schema)
