Update a user

This endpoint is only available to organization administrators.

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

PATCH https://zulip.cs.ut.ee/api/v1/users/{user_id}

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.
user_id = 10
result = client.update_user_by_id(user_id, full_name="New Name")
# Change value of the custom profile field with ID 9.
user_id = 8
result = client.update_user_by_id(user_id, profile_data=[{"id": 9, "value": "some data"}])

curl -sSX PATCH https://zulip.cs.ut.ee/api/v1/users/12 \
    --data-urlencode full_name=NewName \
    --data-urlencode role=400 \
    --data-urlencode 'profile_data=[{"id": 4, "value": "vim"}, {"id": 5, "value": "1909-04-05"}]'


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": "vim"}, {"id": 5, "value": "1909-04-05"}]

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


Example response

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"