---
title: "Update a mailbox thread"
method: PATCH
path: "/v1/mailboxes/{id}/threads/{threadId}"
tags: ["Mailboxes"]
---

# Update a mailbox thread

`PATCH /v1/mailboxes/{id}/threads/{threadId}`

## Request

- Base URL: `https://api.samva.dev`
- URL: `https://api.samva.dev/v1/mailboxes/{id}/threads/{threadId}`
- Auth: API key in header `x-api-key`

Updates the fields you name and keeps the rest. `folder` and `priority` are shared with everyone on the mailbox; `read`, `starred`, and `snoozedUntil` are the caller's own. Labels are not updated here: use `POST` and `DELETE` on `/v1/mailboxes/{id}/threads/{threadId}/labels`. Returns where the thread stands, not its messages: read those with `GET .../threads/{threadId}`.

## Path parameters

- `id` string, required
- `threadId` string, required

## Request body

- UpdateMailboxThreadPayload
  - `folder` 'inbox' | 'assigned' | 'pending' | 'sent' | 'archived' | 'trash'
  - `priority` 'low' | 'normal' | 'high' | 'urgent'
  - `read` boolean, nullable
  - `starred` boolean, nullable
  - `snoozedUntil` string, nullable

## Response `200`

MailboxThreadState

- MailboxThreadState
  - `id` string, required
  - `folder` 'inbox' | 'assigned' | 'pending' | 'sent' | 'archived' | 'trash', required
  - `priority` 'low' | 'normal' | 'high' | 'urgent', required
  - `labels` MailboxLabelId[], required
  - `read` boolean, required
  - `starred` boolean, required
  - `snoozedUntil` string, nullable, required

## Other responses

- `401`: UnauthorizedError
- `403`: ForbiddenError
- `404`: ResourceNotFoundError
- `422`: ValidationError
- `500`: InternalError
- `504`: GatewayTimeoutError

---

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