---
title: "Update Notifications"
method: PATCH
path: "/api/notifications/"
tags: ["notifications"]
---

# Update Notifications

`PATCH /api/notifications/`

Bulk update notifications.

Supports:
- content: Re-encrypt content (sender OR recipient can do this)
- read: Mark as read (only recipient can do this)

Returns the updated notifications.

## Request body

- UpdateNotificationsRequest — Bulk update notifications.
  - `updates` NotificationUpdate[], required
    - `external_id` string, required
    - `content` string, nullable
    - `read` boolean, nullable

## Response `200`

Successful Response

- NotificationResponse[]
  - `type` 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted', required — Notification types - all persisted AND delivered via WebSocket. Type is self-descriptive, no need to parse content field.
  - `external_id` string, required
  - `sender` UserResponse, required — Standard user representation used across all endpoints. Used for: login response, workspace users, contacts (when registered).
    - `external_id` string, required
    - `email` string, required
    - `given_name` string, required
    - `family_name` string, required
    - `picture` string, nullable
    - `encryption_public_key` string, required
  - `recipient` UserResponse, required — Standard user representation used across all endpoints. Used for: login response, workspace users, contacts (when registered).
    - `external_id` string, required
    - `email` string, required
    - `given_name` string, required
    - `family_name` string, required
    - `picture` string, nullable
    - `encryption_public_key` string, required
  - `workspace_ext_id` string, nullable
  - `content` string, nullable
  - `new` boolean
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-01-17** `b91e4b449d56` — 9 warning
  - added the new `contact_accepted` enum value to the `items/type` response property for the response status `200`
  - added the new `user_message` enum value to the `items/type` response property for the response status `200`
  - added the new `workspaceuser_added_collaborator` enum value to the `items/type` response property for the response status `200`
  - added the new `workspaceuser_added_guest` enum value to the `items/type` response property for the response status `200`
  - …5 more
- **2026-01-11** `c3c793024170` — 3 info
  - added the new optional request property `updates/items/read`
  - the request property `updates/items/content` became optional
  - request property `updates/items/content` list-of-types was widened by adding types `null` to media type `application/json`
- **2025-12-31** `d14bca97ba86` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/arbicity/apis/arbi/changes/api/notifications/patch.md)

---

[API](https://skmtc.dev/arbicity/apis/arbi.md) · [All operations](https://skmtc.dev/arbicity/apis/arbi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arbicity/arbi/revisions/1f956ac3d1c1/schema)
