Mark notifications as seen
Marks the unseen messages in a range as seen. Call it with the first and the last message that the app shows. The range works as in the read request: from is the oldest message and to is the newest message, and both bounds are inclusive. Send no body to mark every unseen message as seen. It skips the messages snoozed now. Seen does not change the waiting count: only reading or archiving a message does. Returns 400 when from is newer than to. Returns 404 when a bound is not a message in the caller's inbox.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Request Body
application/json
The range of messages to mark as seen, in creation order. Both bounds are inclusive.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/user/notifications/seen" \ -H "Content-Type: application/json" \ -d '{}'{ "updated_count": 0}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "BAD_REQUEST", "description": "Invalid input"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Mark notifications as read POST
Marks the unread messages in a range as read. The range uses creation order, the same order as the feed. `from` is the id of the oldest message in the range and `to` is the id of the newest message. Both bounds are inclusive. Omit `from` to start at the oldest message. Omit `to` to stop at the newest message. Send no body, or an empty object, to mark every unread message as read. The request skips the messages snoozed now. Send the same id in `from` and `to` to mark one message as read. Returns 400 when `from` is newer than `to`. Returns 404 when a bound is not a message in the caller's inbox.
Stream the unread count GET
A server-sent event stream. Each event holds the unread count, for example `{"unread_count": 3}`. The server sends a `received` event when a new message arrives in the caller's inbox. The client can play a sound for this event. The server sends an `inbox` event when the stream opens and for every other change to the caller's inbox. The end of a snooze sends no event. The client gets the count again when it opens a new stream or when the app gets focus. The server sends a comment every 25 seconds to keep the connection open, and closes the stream after 15 minutes. The client then opens a new stream.