Create a user group
POST https://chat.zulip.org/api/v1/user_groups/create
Create a new 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 = {
"name": "leadership",
"description": "The leadership team.",
"members": user_ids,
}
result = client.create_user_group(request)
print(result)
curl -sSX POST https://chat.zulip.org/api/v1/user_groups/create \
-u BOT_EMAIL_ADDRESS:BOT_API_KEY \
--data-urlencode name=marketing \
--data-urlencode 'description=The marketing team.' \
--data-urlencode 'members=[1, 2, 3, 4]' \
--data-urlencode 'subgroups=[11]' \
--data-urlencode can_add_members_group=11 \
--data-urlencode can_join_group=11 \
--data-urlencode can_leave_group=15 \
--data-urlencode can_manage_group=11 \
--data-urlencode can_mention_group=11
Parameters
name string required
Example: "marketing"
The name of the user group.
description string required
Example: "The marketing team."
The description of the user group.
members (integer)[] required
Example: [1, 2, 3, 4]
An array containing the user IDs of the initial members for the
new user group.
subgroups (integer)[] optional
Example: [11]
An array containing the IDs of the initial subgroups for the new
user group.
User can add subgroups to the new group irrespective of other
permissions for the new group.
Changes: New in Zulip 10.0 (feature level 311).
can_add_members_group integer | object optional
Example: 11
A group-setting value defining the set of users who
have permission to add members to this user group.
Changes: New in Zulip 10.0 (feature level 305). Previously, this
permission was controlled by the can_manage_group
setting.
This parameter must be one of the following:
The ID of the user group with this permission.
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 integer | object optional
Example: 11
A group-setting value defining the set of users who
have permission to join this user group.
Changes: New in Zulip 10.0 (feature level 301).
This parameter must be one of the following:
The ID of the user group with this permission.
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 integer | object optional
Example: 15
A group-setting value defining the set of users who
have permission to leave this user group.
Changes: New in Zulip 10.0 (feature level 308).
This parameter must be one of the following:
The ID of the user group with this permission.
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 integer | object optional
Example: 11
A group-setting value defining the set of users who
have permission to manage this user group.
This setting cannot be set to "role:internet"
and "role:everyone"
system groups.
Changes: New in Zulip 10.0 (feature level 283).
This parameter must be one of the following:
The ID of the user group with this permission.
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 integer | object optional
Example: 11
A group-setting value defining the set of users who
have permission to mention this user group.
This setting cannot be set to "role:internet"
and "role:owners"
system groups.
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.
This parameter must be one of the following:
The ID of the user group with this permission.
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
Return values
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:
{
"group_id": 123,
"msg": "",
"result": "success"
}
An example JSON error response for when the one of the users does not exist:
{
"code": "BAD_REQUEST",
"msg": "Invalid user ID: 500",
"result": "error"
}