---
type: api
title: Creates a new user
description: Creates a new user.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/operation/operation-create-user
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/operation/operation-create-user
products:
  - Elastic Cloud Enterprise
---

# Creates a new user

## Paths

- `POST` `/users`

- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/authentication#basicauth)
- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/authentication#apikey)

## Description

Creates a new user.

## Request Body

`application/json`

The user to create

- `user_name` (string) — required
  The user's identifier
- `security` ({} UserSecurity) — required
  A user's security information
  - `roles` ([] string) — optional
    The set of roles assigned to a user
  - `permissions` ([] string) — optional
    The distinct set of permissions allowed by the user's roles. These correspond to operationId values in the OpenAPI definition.
  - `elevated_permissions` ({} ElevatedPermissions) — optional
    A user's elevated permissions status
    - `enabled` (boolean) — required
      True if the user has elevated permissions
    - `expires_at` (string) — optional
      The time at which the user's elevated permissions expire
  - `password` (string) — optional
    The user's password. Only used when modifying a user.
  - `enabled` (boolean) — optional
    True if the user is enabled
  - `security_realm` ({} UserSecurityRealm) — optional
    The security realm the user belongs to
    - `type` (enum) — required
      The type of the security realm
      Values: `native`, `ldap`, `saml`, `active_directory`
    - `id` (string) — required
      The identifier for the security realm
- `metadata` ({} UserMetadata) — optional
  Metadata for a user
  - `created_by` (string) — optional
    The Id of the user that created this user
  - `created_at` (string) — optional
    The date and time when the user was created
  - `updated_by` (string) — optional
    The Id of the user that last updated this user
  - `updated_at` (string) — optional
    The date and time when the user was last updated
  - `first_login_at` (string) — optional
    The date and time when the user first logged in
  - `last_login_at` (string) — optional
    The date and time when the user last logged in
- `full_name` (string) — optional
  The user's optional full name
- `email` (string) — optional
  The user's optional email address
- `builtin` (boolean) — optional
  True if the user is a built-in read-only user

## Responses

#### `200`

User successfully created

`application/json`

- `user_name` (string)
  The user's identifier
- `security` ({} UserSecurity)
  A user's security information
  Same fields as `security`
- `metadata` ({} UserMetadata)
  Metadata for a user
  - `created_by` (string)
    The Id of the user that created this user
  - `created_at` (string)
    The date and time when the user was created
  - `updated_by` (string)
    The Id of the user that last updated this user
  - `updated_at` (string)
    The date and time when the user was last updated
  - `first_login_at` (string)
    The date and time when the user first logged in
  - `last_login_at` (string)
    The date and time when the user last logged in
- `full_name` (string)
  The user's optional full name
- `email` (string)
  The user's optional email address
- `builtin` (boolean)
  True if the user is a built-in read-only user
#### `400`

* The provided user name is invalid. Check that it is not empty and it does not contain special characters. (code: `user.user_name.invalid`)
* Some of the provided roles are invalid. (code: `user.roles.invalid`)
* Some of the provided roles are forbidden. (code: `user.roles.forbidden`)
* Trying to set a restricted field. (code: `user.restricted_field`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` ([] string)
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response Headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `409`

The username is already in use. (code: `user.user_name.conflict`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` ([] string)
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response Headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

## Code Examples

#### Console

```console
POST /users
```

#### curl

```curl
curl -X POST "/users"
```

