POST /channels/create

Create a new channel, and optionally subscribe users to the newly created channel.

The initial channel settings will be determined by the optional parameters, like invite_only, detailed below.

Changes: New in Zulip 11.0 (feature level 417). Previously, this was only possible via the POST /api/subscribe endpoint, which handles both channel subscription and creation.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/x-www-form-urlencoded"

Request body fields

Name Type Required Description
description String No

The description to use for the new channel being created, in text/markdown format.

Clients should use the max_stream_description_length returned by the POST /register endpoint to determine the maximum channel description length.

can_remove_subscribers_group No

A group-setting value defining the set of users who have permission to remove subscribers from this channel.

Organization administrators can unsubscribe others from a channel as though they were in this group without being explicitly listed here.

Note that a user must have metadata access to a channel and permission to administer the channel in order to modify this setting.

Changes: Prior to Zulip 10.0 (feature level 349), channel administrators could not unsubscribe other users if they were not an organization administrator or part of can_remove_subscribers_group. Realm administrators were not allowed to unsubscribe other users from a private channel if they were not subscribed to that channel.

Prior to Zulip 10.0 (feature level 320), this value was always the integer ID of a system group.

Before Zulip 8.0 (feature level 197), the can_remove_subscribers_group setting was named can_remove_subscribers_group_id.

New in Zulip 6.0 (feature level 142).

can_delete_own_message_group No

A group-setting value defining the set of users who have permission to delete the messages that they have sent in the channel.

Note that a user must have content access to a channel in order to delete their own message in the channel.

Users with permission to delete any message in the channel and users present in the organization-level can_delete_own_message_group setting can always delete their own messages in the channel if they have content access to that channel.

Changes: New in Zulip 11.0 (feature level 407). Prior to this change, only the users in the organization-level can_delete_any_message_group and can_delete_own_message_group settings were able delete their own messages in the organization.

can_resolve_topics_group No

A group-setting value defining the set of users who have permission to resolve topics in the channel.

Users who have similar realm-level permissions can resolve topics in a channel regardless of the value of this setting.

Changes: New in Zulip 11.0 (feature level 402).

is_default_stream Boolean No

This parameter determines whether the newly created channel will be added as a default channel for new users joining the organization.

Default value: false

can_create_topic_group No

A group-setting value defining the set of users who have permission to create a new topic in this channel.

Note that using this permission requires also having permission to send messages in the channel.

Note that this must be the role:everyone system group for private channels with protected history.

Changes: New in Zulip 12.0 (feature level 441). Previously, if you could send messages in a channel, you could create topics in the channel.

message_retention_days No

Number of days that messages sent to this channel will be stored before being automatically deleted by the message retention policy. Two special string format values are supported:

  • "realm_default": Return to the organization-level setting.
  • "unlimited": Retain messages forever.

Changes: Prior to Zulip 5.0 (feature level 91), retaining messages forever was encoded using "forever" instead of "unlimited".

New in Zulip 3.0 (feature level 17).

invite_only Boolean No

This parameter and the ones that follow are used to request an initial configuration of the new channel.

This parameter determines whether the newly created channel will be a private channel.

Default value: false

topics_policy String No

Whether named topics and the empty topic (i.e., "general chat" topic) are enabled in this channel.

  • "inherit": Messages can be sent to named topics in this channel, and the organization-level realm_topics_policy is used for whether messages can be sent to the empty topic in this channel.
  • "allow_empty_topic": Messages can be sent to both named topics and the empty topic in this channel.
  • "disable_empty_topic": Messages can be sent to named topics in this channel, but the empty topic is disabled.
  • "empty_topic_only": Messages can be sent to the empty topic in this channel, but named topics are disabled. See "general chat" channels.

The "empty_topic_only" policy can only be set if all existing messages in the channel are already in the empty topic.

When creating a new channel, if the topics_policy is not specified, the "inherit" option will be set.

Changes: In Zulip 11.0 (feature level 404), the "empty_topic_only" option was added.

New in Zulip 11.0 (feature level 392).

Valid values:

  • "empty_topic_only"
  • "inherit"
  • "allow_empty_topic"
  • "disable_empty_topic"
subscribers[] Array Yes

A list of user IDs of the users to be subscribed to the new channel.

folder_id Integer No

This parameter adds the newly created channel to the specified channel folder.

Changes: New in Zulip 11.0 (feature level 389).

name String Yes

The name of the new channel.

Clients should use the max_stream_name_length returned by the POST /register endpoint to determine the maximum channel name length.

is_web_public Boolean No

This parameter determines whether the newly created channel will be a web-public channel.

Note that creating web-public channels requires the WEB_PUBLIC_STREAMS_ENABLED server setting to be enabled on the Zulip server in question, the organization to have enabled the enable_spectator_access realm setting, and the current user to have permission under the organization's can_create_web_public_channel_group realm setting.

Default value: false

can_administer_channel_group No

A group-setting value defining the set of users who have permission to administer this channel.

Organization administrators can administer every channel as though they were in this group without being explicitly listed here.

Note that a user must have metadata access to a channel and permission to administer the channel in order to modify this setting.

Changes: Prior to Zulip 10.0 (feature level 349) a user needed to have content access to a channel in order to modify it. The exception to this rule was that organization administrators can edit channel names and descriptions without having full access to the channel.

New in Zulip 10.0 (feature level 325). Prior to this change, the permission to administer channels was limited to realm administrators.

can_send_message_group No

A group-setting value defining the set of users who have permission to post in this channel.

Note that a user must have metadata access to a channel and permission to administer the channel in order to modify this setting.

Note that using this permission to send a message to a new topic requires also having permission to create new topics in the channel.

Changes: New in Zulip 10.0 (feature level 333). Previously stream_post_policy field used to control the permission to post in the channel.

announce Boolean No

This determines whether notification bot will send an announcement about the new channel's creation.

Default value: false

can_subscribe_group No

A group-setting value defining the set of users who have permission to subscribe themselves to this channel.

Everyone, excluding guests, can subscribe to any public channel irrespective of this setting.

Users in this group can subscribe to a private channel as well.

Note that a user must have content access to a channel and permission to administer the channel in order to modify this setting.

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

can_delete_any_message_group No

A group-setting value defining the set of users who have permission to delete any message in the channel.

Note that a user must have content access to a channel in order to delete any message in the channel.

Users present in the organization-level can_delete_any_message_group setting can always delete any message in the channel if they have content access to that channel.

Changes: New in Zulip 11.0 (feature level 407). Prior to this change, only the users in can_delete_any_message_group were able delete any message in the organization.

history_public_to_subscribers Boolean No

Whether the channel's message history should be available to newly subscribed members, or users can only access messages they actually received while subscribed to the channel.

Corresponds to the shared history option for private channels.

can_move_messages_out_of_channel_group No

A group-setting value defining the set of users who have permission to move messages out of this channel.

Note that a user must have content access to a channel in order to move messages out of the channel.

Channel administrators and users present in the organization-level can_move_messages_between_channels_group setting can always move messages out of the channel if they have content access to the channel.

Changes: New in Zulip 11.0 (feature level 396). Prior to this change, only the users in can_move_messages_between_channels_group were able move messages between channels.

can_move_messages_within_channel_group No

A group-setting value defining the set of users who have permission to move messages within this channel.

Note that a user must have content access to a channel in order to move messages within the channel.

Channel administrators and users present in the organization-level can_move_messages_between_topics_group setting can always move messages within the channel if they have content access to the channel.

Changes: New in Zulip 11.0 (feature level 396). Prior to this change, only the users in can_move_messages_between_topics_group were able move messages between topics of a channel.

can_add_subscribers_group No

A group-setting value defining the set of users who have permission to add subscribers to this channel.

Users who can administer the channel or have similar realm-level permissions can add subscribers to a public channel regardless of the value of this setting.

Users in this group need not be subscribed to a private channel to add subscribers to it.

Note that a user must have content access to a channel and permission to administer the channel in order to modify this setting.

Changes: New in Zulip 10.0 (feature level 342). Previously, there was no channel-level setting for this permission.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.