Skip to main content
POST
POST /v1/users

Create a User

Create a new user in your organization.

Permissions

Starting in OpenMetadata 2.0.3, assigning a user to a closed team (isJoinable: false) during creation requires an administrator.

Body Parameters

string
required
Username for the user. Must be unique across the organization.
string
required
Email address of the user. Must be unique across the organization.
string
Human-readable display name for the user.
string
Description of the user in Markdown format.
boolean
default:"false"
Whether this user is a bot account.
boolean
default:"false"
Whether this user has admin privileges.
array
Array of team fully qualified names to assign the user to.
array
Array of role fully qualified names to assign to the user.
array
Array of persona references to assign to the user.
array
Fully qualified names of the domains to assign for governance purposes.
object
Profile information for the user.
POST /v1/users

Returns

Returns the created user object with all specified properties and system-generated fields.

Response

string
Unique identifier for the user (UUID format).
string
Username.
string
Fully qualified name (same as name for users).
string
Human-readable display name.
string
Email address of the user.
boolean
Whether this user is a bot account.
boolean
Whether this user has admin privileges.
array
Teams the user belongs to.
array
Roles assigned to the user.
array
Personas assigned to the user.
array
Domain assignments for governance.
number
Version number for the entity (starts at 0.1).

Create or Update (PUT)

Use PUT /v1/users instead of POST to perform an upsert. If a user with the same fullyQualifiedName already exists, it will be updated; otherwise, a new user is created. The request body is the same as POST.
PUT will not return a 409 conflict error if the entity already exists — it will update the existing entity instead.

Bulk Create or Update (PUT)

Use PUT /v1/users/bulk to create or update multiple users in a single request. The request body is an array of create request objects.

Domains

Only administrators can set a user’s domains when creating a user with POST or PUT. Other callers, including bots, get 403. Naming no domains always works.

Allowed Email Domains

When allowedEmailDomains is set, creating a user whose email domain is not allowed returns 400 with a message that names the rejected domain and the allowed ones:
  • Endpoints checked: POST /api/v1/users, PUT /api/v1/users only when the request creates the user, and CSV import rows that create a user.
  • CSV import: A row outside the allowed domains is rejected, including in a dry run. The other rows still import, so the result status is partialSuccess. It is failure when every row is rejected.
  • Updates: Updating an existing user is never checked, including a PUT to a user that already exists and CSV rows that update an existing user. You cannot change a user’s email address with PATCH or PUT.
  • Skipped: The check does not apply to bots, to users that the server creates itself such as the bootstrap admins, or when the authentication provider is basic or openmetadata.

Error Handling