Get topics in a stream

Get all the topics in a specific stream

GET https://yourZulipDomain.zulipchat.com/api/v1/users/me/<stream_id>/topics

Usage examples

#!/usr/bin/env python3

import zulip

# Download ~/zuliprc-dev from your dev server
client = zulip.Client(config_file="~/zuliprc-dev")

result = client.get_stream_topics(stream_id)
print(result)

More examples and documentation can be found here.

const zulip = require('zulip-js');

// Download zuliprc-dev from your dev server, assuming it's in the local dir
const config = {
    zuliprc: 'zuliprc-dev',
};

zulip(config).then((client) => {
    // Get all the topics in stream with ID 1
    return client.streams.topics.retrieve({ stream_id: 1 });
}).then(console.log);

curl https://yourZulipDomain.zulipchat.com/api/v1/users/me/<stream_id>/topics \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY

Arguments

Argument Example Required Description
stream_id 42 Yes

The unique ID of the stream.

Response

Return values

  • topics: An array of topic objects, which contain:
    • name: The name of the topic.
    • max_id: The message ID of the last message sent to this topic.

Example response

A typical successful JSON response may look like:

{
    "msg": "",
    "result": "success",
    "topics": [
        {
            "max_id": 26,
            "name": "Denmark3"
        },
        {
            "max_id": 23,
            "name": "Denmark1"
        },
        {
            "max_id": 6,
            "name": "Denmark2"
        }
    ]
}

An example JSON response for when the user is attempting to fetch the topics of a non-existing stream (or also a private stream they don't have access to):

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