Mark notifications read or unread
mark_notificationsMark specific notifications read or unread in one bulk request using ids from list_notifications, keeping the inbox accurate.
Instructions
Mark specific notifications read (or unread) in one bulk request.
Use it after you have actually handled what a notification was about, so
the user's inbox reflects reality. It is the id-consuming counterpart of
list_notifications: pass the row id values from that tool.
Returns {marked, read, ids, message}. OpenProject answers the bulk
endpoint with 204 No Content, so marked is the number of ids the
call covered — ids that were already in the requested state, or that
belong to someone else's inbox, are simply not changed.
Pitfalls. Marking is idempotent, so a retry after a timeout is safe. Pass
the notification id, not resource.id — the work package id
underneath is a different number entirely. Unknown ids do not fail the
call, so do not treat success as proof that every id existed.
Cross-references: get the ids from list_notifications; to clear an
entire (optionally filtered) inbox in one go use
mark_all_notifications_read.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Notification ids to mark, e.g. [4711, 4712]. Required and non-empty — this tool never operates on 'everything'. Ids come from list_notifications (the row 'id', not resource.id). At most 200 per call. | |
| read | No | true (default) marks them read; false puts them back in the unread inbox. Both directions are safe here because the ids are explicit. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | The notification ids that were marked; null for the filter-based bulk tool. | |
| read | Yes | True when they were marked read, false when marked unread. | |
| marked | Yes | Number of notifications the call covered. For mark_notifications this is the number of ids sent; for mark_all_notifications_read it is how many unread notifications matched the filters when the call ran. | |
| message | Yes | Human-readable confirmation of what happened. |