Update a user

This endpoint is only available to organization administrators.

PATCH https://sb38.zulipchat.com/api/v1/users/{user_id}

Administrative endpoint to update the details of another user in the organization.

Supports everything an administrator can do to edit details of another user's account, including editing full name, role, and custom profile fields.

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")

# Change a user's full name given a user ID.
result = client.update_user_by_id(user_id, full_name="New Name")
# Change value of the custom profile field with ID 9.
result = client.update_user_by_id(user_id, profile_data=[{"id": 9, "value": "some data"}])
print(result)

curl -sSX PATCH https://sb38.zulipchat.com/api/v1/users/12 \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    --data-urlencode full_name=NewName \
    --data-urlencode role=400 \
    --data-urlencode 'profile_data=[{"id": 4, "value": "0"}, {"id": 5, "value": "1909-04-05"}]' \
    --data-urlencode new_email=username@example.com

Parameters

user_id integer required in path

Example: 12

The target user's ID.


full_name string optional

Example: "NewName"

The user's full name.

Changes: Removed unnecessary JSON-encoding of this parameter in Zulip 5.0 (feature level 106).


role integer optional

Example: 400

New role for the user. Roles are encoded as:

  • Organization owner: 100
  • Organization administrator: 200
  • Organization moderator: 300
  • Member: 400
  • Guest: 600

Only organization owners can add or remove the owner role.

The owner role cannot be removed from the only organization owner.

Changes: New in Zulip 3.0 (feature level 8), replacing the previous pair of is_admin and is_guest boolean parameters. Organization moderator role added in Zulip 4.0 (feature level 60).


profile_data (object)[] optional

Example: [{"id": 4, "value": "0"}, {"id": 5, "value": "1909-04-05"}]

A dictionary containing the updated custom profile field data for the user.


new_email string optional

Example: "username@example.com"

New email address for the user. Requires the user making the request to be an organization owner and additionally have the .can_change_user_emails special permission.

Changes: New in Zulip 10.0 (feature level 285).


Response

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"
}

A typical unsuccessful JSON response:

{
    "code": "BAD_REQUEST",
    "msg": "Guests cannot be organization administrators",
    "result": "error"
}