Update a user group

PATCH https://perestroika.zulipchat.com/api/v1/user_groups/{user_group_id}

Update the name or description of a user group.

Usage examples

#!/usr/bin/env python3

import zulip

# Pass the path to your zuliprc file here.
client = zulip.Client(config_file="~/zuliprc")

request = {
    "group_id": user_group_id,
    "name": "leadership",
    "description": "The leadership team.",
}
result = client.update_user_group(request)
print(result)

curl -sSX PATCH https://perestroika.zulipchat.com/api/v1/user_groups/35 \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    --data-urlencode 'name=marketing team' \
    --data-urlencode 'description=The marketing team.' \
    --data-urlencode 'can_add_members_group={"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}' \
    --data-urlencode 'can_join_group={"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}' \
    --data-urlencode 'can_leave_group={"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 15}' \
    --data-urlencode 'can_manage_group={"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}' \
    --data-urlencode 'can_mention_group={"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}'

Parameters

user_group_id integer required in path

Example: 35

The ID of the target user group.


name string optional

Example: "marketing team"

The new name of the group.

Changes: Before Zulip 7.0 (feature level 165), this was a required field.


description string optional

Example: "The marketing team."

The new description of the group.

Changes: Before Zulip 7.0 (feature level 165), this was a required field.


can_add_members_group object optional

Example: {"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}

The set of users who have permission to add members to this user group expressed as an update to a group-setting value.

Changes: New in Zulip 10.0 (feature level 305). Previously, this permission was controlled by the can_manage_group setting.

can_add_members_group object details:

  • new: integer | object required

    The new group-setting value for the set of users who would have the permission to add members to the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.

  • old: integer | object optional

    The expected current group-setting value for the set of users who have the permission to add members to the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.


can_join_group object optional

Example: {"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}

The set of users who have permission to join this user group expressed as an update to a group-setting value.

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

can_join_group object details:

  • new: integer | object required

    The new group-setting value for who would have the permission to join the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.

  • old: integer | object optional

    The expected current group-setting value for who has the permission to join the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.


can_leave_group object optional

Example: {"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 15}

The set of users who have permission to leave this user group expressed as an update to a group-setting value.

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

can_leave_group object details:

  • new: integer | object required

    The new group-setting value for who would have the permission to leave the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.

  • old: integer | object optional

    The expected current group-setting value for who has the permission to leave the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.


can_manage_group object optional

Example: {"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}

The set of users who have permission to manage this user group expressed as an update to a group-setting value.

This setting cannot be set to "role:internet" and "role:everyone" system groups.

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

can_manage_group object details:

  • new: integer | object required

    The new group-setting value for who would have the permission to manage the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.

  • old: integer | object optional

    The expected current group-setting value for who has the permission to manage the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.


can_mention_group object optional

Example: {"new": {"direct_members": [10], "direct_subgroups": [11]}, "old": 11}

The set of users who have permission to mention this group, expressed as an update to a group-setting value.

This setting cannot be set to "role:internet" and "role:owners" system groups.

Changes: In Zulip 9.0 (feature level 260), this parameter was updated to only accept an object with the old and new fields described below. Prior to this feature level, this parameter could be either of the two forms of a group-setting value.

Before Zulip 9.0 (feature level 258), this parameter could only be the integer form of a group-setting value.

Before Zulip 8.0 (feature level 198), this parameter was named can_mention_group_id.

New in Zulip 8.0 (feature level 191). Previously, groups could be mentioned only if they were not system groups.

can_mention_group object details:

  • new: integer | object required

    The new group-setting value for who would have the permission to mention the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.

  • old: integer | object optional

    The expected current group-setting value for who has the permission to mention the group.

    This parameter must be one of the following:

    1. The ID of the user group with this permission.

    2. An object with the following fields:

      • direct_members: (integer)[]

        The list of IDs of individual users in the collection of users with this permission.

        Changes: Prior to Zulip 10.0 (feature level 303), this list would include deactivated users who had the permission before being deactivated.

      • direct_subgroups: (integer)[]

        The list of IDs of the groups in the collection of users with this permission.


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

An example JSON response when the user group ID is invalid:

{
    "code": "BAD_REQUEST",
    "msg": "Invalid user group",
    "result": "error"
}