---
title: "Update a message’s labels or read state"
method: PATCH
path: "/v1/messages/{id}"
tags: ["Messages"]
---

# Update a message’s labels or read state

`PATCH /v1/messages/{id}`

## Request

- Base URL: `https://api.agentboxd.com`
- URL: `https://api.agentboxd.com/v1/messages/{id}`
- Auth: HTTP bearer

`{ add_labels?, remove_labels?, is_read? }`. `422 reserved_label` for [labels screening reads](https://agentboxd.com/docs/api#held-mail). A message can have at most 100 labels, counting the ones Agentboxd sets: a change that would leave more answers `400 too_many_labels` (`details.max`) and changes nothing. Removing labels always works.

Permission: `messages:write`.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `add_labels` string[]
  - `remove_labels` string[]
  - `is_read` boolean

## Response `200`

OK

- object

## Other responses

- `4XX`: Error
- `5XX`: Error

---

[API](https://skmtc.dev/agentboxd/apis/agentboxd-api.md) · [All operations](https://skmtc.dev/agentboxd/apis/agentboxd-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentboxd/apis/agentboxd-api/revisions/ee7b079f0e97?raw)
