Skip to main content

Users Management - User Create

Endpoint

/i/users/create

Overview

Creates a new dashboard user account.

Authentication

  • API Key (parameter): api_key=YOUR_API_KEY
  • Auth Token (parameter): auth_token=YOUR_AUTH_TOKEN
  • Auth Token (header): countly-token: YOUR_AUTH_TOKEN

Permissions

  • Global admin required.

Request Parameters

ParameterTypeRequiredDescription
api_keyStringYes (or use auth_token)Dashboard API key.
auth_tokenStringYes (or use api_key)Dashboard auth token.
argsJSON String (Object)YesNew user payload.

args Object Structure

FieldTypeRequiredDescription
full_nameStringYesDisplay name.
usernameStringYesUsername (trimmed before save).
passwordStringYesPlain password, validated against security password policy, then hashed before save.
emailStringYesEmail (trimmed + lowercased before save).
langStringNoLanguage code.
permissionObjectNoFull permission object.
admin_ofArrayNoBackward-compatible app-admin shorthand.
user_ofArrayNoBackward-compatible app-user shorthand.
global_adminBooleanNoGlobal admin flag for new user.

Example args value:

{
"full_name": "Jane Manager",
"username": "jane",
"password": "StrongPass123!",
"email": "jane@example.com",
"global_admin": false
}

Configuration Impact

SettingDefaultAffectsUser-visible impact
security.password_minServer configPassword validationEnforces minimum password length.
security.password_numberServer configPassword validationRequires number characters when enabled.
security.password_charServer configPassword validationRequires uppercase characters when enabled.
security.password_symbolServer configPassword validationRequires symbol characters when enabled.

Response

Success Response

{
"_id": "67b3055b87d9f49e2f5f3201",
"full_name": "Jane Manager",
"username": "jane",
"email": "jane@example.com",
"permission": {
"c": {},
"r": {},
"u": {},
"d": {},
"_": {
"a": [],
"u": []
}
},
"global_admin": false,
"password_changed": 0,
"created_at": 1739795210,
"locked": false,
"api_key": "generated_api_key"
}

Response Fields

FieldTypeDescription
_idStringCreated dashboard user id.
full_nameStringSaved user full name.
usernameStringSaved username.
emailStringSaved lowercased email.
permissionObjectStored permissions after compatibility expansion.
global_adminBooleanGlobal admin flag.
password_changedNumberInitialized as 0.
created_atNumberCreation timestamp (Unix seconds).
lockedBooleanInitial lock state.
api_keyStringGenerated dashboard API key for new user.

Error Responses

Status Code: 400 Bad Request

{
"result": [
"Validation error details"
]
}

Status Code: 400 Bad Request

{
"result": [
"Email or username already exists"
]
}

Status Code: 400 Bad Request

{
"result": [
"Error creating user"
]
}

Behavior/Processing

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Create userValid payload and unique username/emailHash password, normalize fields, insert user, create invite/reset record.Raw user object payload.
Validation/duplicate failInvalid payload or duplicate username/emailReject before insert.Wrapped error array.

Impact on Other Data

  • Creates an invite/reset record for the new user in countly.password_reset.

Audit & System Logs

ActionTrigger
user_createdSuccessful user creation (when System Logs module is enabled).

Database Collections

CollectionUsed forData touched by this endpoint
countly.membersPrimary user storage.Checks duplicate email/username, inserts new user.
countly.password_resetInvite/reset lifecycle.Inserts initial invite/reset record for new user.

Examples

Example 1: Create dashboard user

/i/users/create?api_key=YOUR_API_KEY&args={"full_name":"Jane Manager","username":"jane","password":"StrongPass123!","email":"jane@example.com"}

Limitations

  • Global-admin-only endpoint.
  • args must be valid JSON string.

Last Updated

2026-02-17