# PATCH /api/v1/inboxes/:id/messages/:msgId

Auth: Bearer

HTML: https://cooperemail.com/docs/reference/update-message

## Summary

Add or remove labels. Mark read with {"remove_labels":["unread"]} (optionally also add "read"). read and unread can be changed. Other system labels (inbox, sent, untrusted, auth_failed, owner, suspicious, held, SPF/DKIM/DMARC results) cannot. Release a held message with POST .../release. Works on a paused inbox. Another account's message is 404.

## Request

```json
{
  "remove_labels": [
    "unread"
  ],
  "add_labels": [
    "read"
  ]
}
```

## Response

The OpenAPI document does not declare a JSON response schema for this call. The summary is the contract.

## Errors

The summary and the OpenAPI operation do not name an error code.

## Idempotency

This route does not document Idempotency-Key or client_id.
