Get a stream by ID

GET https://yourZulipDomain.zulipchat.com/api/v1/streams/{stream_id}

Fetch details for the stream with the ID stream_id.

Changes: New in Zulip 6.0 (feature level 132).

Usage examples

curl -sSX GET -G https://yourZulipDomain.zulipchat.com/api/v1/streams/1 \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY

Parameters

stream_id integer required in path

Example: 1

The ID of the stream to access.


Response

Return values

  • stream: object

    Object containing basic details about the stream.

    • stream_id: integer

      The unique ID of the stream.

    • name: string

      The name of the stream.

    • description: string

      The short description of the stream in text/markdown format, intended to be used to prepopulate UI for editing a stream's description.

    • date_created: integer

      The UNIX timestamp for when the stream was created, in UTC seconds.

      Changes: New in Zulip 4.0 (feature level 30).

    • invite_only: boolean

      Specifies whether the stream is private or not. Only people who have been invited can access a private stream.

    • rendered_description: string

      The short description of the stream rendered as HTML, intended to be used when displaying the stream description in a UI.

      One should use the standard Zulip rendered_markdown CSS when displaying this content so that emoji, LaTeX, and other syntax work correctly. And any client-side security logic for user-generated message content should be applied when displaying this HTML as though it were the body of a Zulip message.

    • is_web_public: boolean

      Whether the stream has been configured to allow unauthenticated access to its message history from the web.

    • stream_post_policy: integer

      Policy for which users can post messages to the stream.

      • 1 => Any user can post.
      • 2 => Only administrators can post.
      • 3 => Only full members can post.
      • 4 => Only moderators can post.

      Changes: New in Zulip 3.0 (feature level 1), replacing the previous is_announcement_only boolean.

    • message_retention_days: integer | null

      Number of days that messages sent to this stream will be stored before being automatically deleted by the message retention policy. There are two special values:

      • null, the default, means the stream will inherit the organization level setting.
      • -1 encodes retaining messages in this stream forever.

      Changes: New in Zulip 3.0 (feature level 17).

    • history_public_to_subscribers: boolean

      Whether the history of the stream is public to its subscribers.

      Currently always true for public streams (i.e. invite_only=False implies history_public_to_subscribers=True), but clients should not make that assumption, as we may change that behavior in the future.

    • first_message_id: integer | null

      The id of the first message in the stream.

      Intended to help clients determine whether they need to display UI like the "more topics" widget that would suggest the stream has older history that can be accessed.

      Null is used for streams with no message history.

    • is_announcement_only: boolean

      Whether the given stream is announcement only or not.

      Changes: Deprecated in Zulip 3.0 (feature level 1). Clients should use stream_post_policy instead.

    • can_remove_subscribers_group_id: integer

      ID of the user group whose members are allowed to unsubscribe others from the stream.

      Changes: New in Zulip 6.0 (feature level 142).

Example response(s)

A typical successful JSON response may look like:

{
    "msg": "",
    "result": "success",
    "stream": {
        "can_remove_subscribers_group_id": 2,
        "description": "A Scandinavian country",
        "first_message_id": 1,
        "history_public_to_subscribers": true,
        "invite_only": false,
        "is_announcement_only": false,
        "is_web_public": false,
        "message_retention_days": null,
        "name": "Denmark",
        "rendered_description": "<p>A Scandinavian country</p>",
        "stream_id": 7,
        "stream_post_policy": 1
    }
}

An example JSON response for when the stream ID is not valid.

{
    "code": "BAD_REQUEST",
    "msg": "Invalid stream ID",
    "result": "error"
}