Create a user

This endpoint is only available to organization administrators.

POST https://agaric.zulipchat.com/api/v1/users

Create a new user account via the API.

Note: On Zulip Cloud, this feature is available only for organizations on a Zulip Cloud Standard or Zulip Cloud Plus plan. Administrators can request the required can_create_users permission for a bot or user by contacting Zulip Cloud support with an explanation for why it is needed. Self-hosted installations can toggle can_create_users on an account using the manage.py change_user_role management command.

Changes: Before Zulip 4.0 (feature level 36), this endpoint was available to all organization administrators.

Usage examples

#!/usr/bin/env python

import zulip

# The user for this zuliprc file must be an organization administrator
client = zulip.Client(config_file="~/zuliprc-admin")

# Create a user.
request = {
    "email": "newbie@zulip.com",
    "password": "temp",
    "full_name": "New User",
}
result = client.create_user(request)
print(result)

More examples and documentation can be found here.

const zulipInit = require("zulip-js");

// The user for this zuliprc file must be an organization administrator.
const config = { zuliprc: "zuliprc-admin" };

(async () => {
    const client = await zulipInit(config);

    const params = {
        email: "notnewbie@zulip.com",
        password: "temp",
        full_name: "New User",
    };

    console.log(await client.users.create(params));
})();

curl -sSX POST https://agaric.zulipchat.com/api/v1/users \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    --data-urlencode email=username@example.com \
    --data-urlencode password=abcd1234 \
    --data-urlencode 'full_name=New User'

Parameters

email string required

Example: "username@example.com"

The email address of the new user.


password string required

Example: "abcd1234"

The password of the new user.


full_name string required

Example: "New User"

The full name of the new user.


Response

Return values

  • user_id: integer

    The ID assigned to the newly created user.

    Changes: New in Zulip 4.0 (feature level 30).

Example response(s)

Changes: As of Zulip 7.0 (feature level 167), if any parameters sent in the request are not supported by this endpoint, a successful JSON response will include an ignored_parameters_unsupported array.

A typical successful JSON response may look like:

{
    "msg": "",
    "result": "success",
    "user_id": 25
}

A typical JSON response for when another user with the same email address already exists in the realm:

{
    "code": "BAD_REQUEST",
    "msg": "Email 'newbie@zulip.com' already in use",
    "result": "error"
}