Update subscription settings

This endpoint is used to update the user's personal settings for the streams they are subscribed to, including muting, color, pinning, and per-stream notification settings.

POST https://leanprover.zulipchat.com/api/v1/users/me/subscriptions/properties

Usage examples

#!/usr/bin/env python3

import zulip

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

# Update the user's subscription in stream #1 to pin it to the top of the
# stream list; and in stream #3 to have the hex color "f00"
request = [
    {
        "stream_id": 1,
        "property": "pin_to_top",
        "value": True,
    },
    {
        "stream_id": 3,
        "property": "color",
        "value": "#f00f00",
    },
]
result = client.update_subscription_settings(request)
print(result)

curl -sSX POST https://leanprover.zulipchat.com/api/v1/users/me/subscriptions/properties \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    --data-urlencode 'subscription_data=[{"property": "pin_to_top", "stream_id": 1, "value": true}, {"property": "color", "stream_id": 3, "value": "#f00f00"}]'

Parameters

subscription_data (object)[] required

Example: [{"stream_id": 1, "property": "pin_to_top", "value": true}, {"stream_id": 3, "property": "color", "value": "#f00f00"}]

A list of objects that describe the changes that should be applied in each subscription. Each object represents a subscription, and must have a stream_id key that identifies the stream, as well as the property being modified and its new value.

The possible values for each property and value pairs are:

  • color (string): the hex value of the user's display color for the stream.
  • is_muted (boolean): whether the stream is muted. Prior to Zulip 2.1, this feature was represented by the more confusingly named in_home_view (with the opposite value, in_home_view=!is_muted); for backwards-compatibility, modern Zulip still accepts that value.
  • pin_to_top (boolean): whether to pin the stream at the top of the stream list.
  • desktop_notifications (boolean): whether to show desktop notifications for all messages sent to the stream.
  • audible_notifications (boolean): whether to play a sound notification for all messages sent to the stream.
  • push_notifications (boolean): whether to trigger a mobile push notification for all messages sent to the stream.
  • email_notifications (boolean): whether to trigger an email notification for all messages sent to the stream.

Response

Return values

  • subscription_data: (object)[] The same subscription_data array sent by the client for the request.

    • property: string The property to be changed. It is one of:

      • color: The hex value of the user's personal display color for the stream.
      • is_muted: Whether the stream is muted.
        Changes: Prior to Zulip 2.1, this feature was represented by the more confusingly named in_home_view (with the opposite value, in_home_view=!is_muted); for backwards-compatibility, modern Zulip still accepts that value.
      • pin_to_top: Whether to pin the stream at the top of the stream list.
      • desktop_notifications: Whether to show desktop notifications for all messages sent to the stream.
      • audible_notifications: Whether to play a sound notification for all messages sent to the stream.
      • push_notifications: Whether to trigger a mobile push notification for all messages sent to the stream.
      • email_notifications: Whether to trigger an email notification for all messages sent to the stream.
      • in_home_view: Whether to mute the stream (legacy property)
      • wildcard_mentions_notify: whether wildcard mentions trigger notifications as though they were personal mentions in this stream.
        A null value means the value of this setting should be inherited from the user-level default setting, wildcard_mentions_notify, for this stream.
    • value: boolean | string The desired value of the property

    • stream_id: integer The desired value of the property

Example response

A typical successful JSON response may look like:

{
    "msg": "",
    "result": "success",
    "subscription_data": [
        {
            "property": "pin_to_top",
            "stream_id": 1,
            "value": true
        },
        {
            "property": "color",
            "stream_id": 3,
            "value": "#f00f00"
        }
    ]
}