Mark all messages as read

POST https://cs6170-23.zulipchat.com/api/v1/mark_all_as_read

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

Because this endpoint marks messages as read in batches, it is possible for the request to time out after only marking some messages as read. When this happens, the complete boolean field in the success response will be false. Clients should repeat the request when handling such a response. If all messages were marked as read, then the success response will return "complete": true.

Changes: Deprecated; clients should use the update personal message flags for narrow endpoint instead as this endpoint will be removed in a future release.

Before Zulip 8.0 (feature level 211), if the server's processing was interrupted by a timeout, but some messages were marked as read, then it would return "result": "partially_completed", along with a code field for an error string, in the success response to indicate that there was a timeout and that the client should repeat the request.

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. As of this feature level, messages are marked as read in batches, starting with the newest messages, so that progress is made even if the request times out. And, instead of returning an error when the request times out and some messages have been marked as read, a success response with "result": "partially_completed" is returned.

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()
print(result)

curl -sSX POST https://cs6170-23.zulipchat.com/api/v1/mark_all_as_read \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY

Parameters

This endpoint does not accept any parameters.

Response

Return values

  • complete: boolean

    Whether all unread messages were marked as read.

    Will be false if the request successfully marked some, but not all, messages as read.

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:

{
    "complete": true,
    "msg": "",
    "result": "success"
}