Mark all messages as read


Marks all of the current user's unread messages as read.

Changes: Before Zulip 6.0 (feature level 153), this request did a single atomic operation, which could time out with 10,000s of unread messages to mark as read.

It now marks messages as read in batches, starting with the newest messages, so that progress will be made even if the request times out.

If the server's processing is interrupted by a timeout, it will return an HTTP 200 success response with result "partially_completed". A correct client should repeat the request when handling such a response.

Usage examples

#!/usr/bin/env python3

import zulip

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

# Mark all of the user's unread messages as read
result = client.mark_all_as_read()

curl -sSX POST \


This endpoint does not accept any parameters.


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:

    "msg": "",
    "result": "success"

If the request exceeds its processing time limit after having successfully marked some messages as read, response code 200 with result "partially_completed" and code "REQUEST_TIMEOUT" will be returned like this:

    "code": "REQUEST_TIMEOUT",
    "msg": "",
    "result": "partially_completed"