---
title: "POST /v1/mailboxes/{mailboxId}/triage"
method: POST
path: "/v1/mailboxes/{mailboxId}/triage"
---

# POST /v1/mailboxes/{mailboxId}/triage

`POST /v1/mailboxes/{mailboxId}/triage`

## Request

- The document declares no server URL.
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `/authorize`, token URL `/oauth/token`, scopes: `email.write`)
  - HTTP bearer

Apply one triage verb to up to a hundred threads of one mailbox at once.

## Path parameters

- `mailboxId` string, required

## Request body

- TriageBatch
  - `verb` 'read' | 'unread' | 'archive' | 'unarchive' | 'trash' | 'untrash', required
  - `threadIds` string[], required: One to a hundred threads of THIS mailbox: a page of the list is fifty.

## Response `200`

The request has succeeded.

- TriagedBatch
  - `applied` TriagedThread[], required: Every thread the verb applied to, in the order asked.
    - `threadId` string, required
    - `unread` boolean, required
    - `archived` boolean, required
    - `trashed` boolean, required
  - `missing` string[], required: Ids this mailbox does not hold — skipped, never a failure of the rest. A selection outlives what it names (another reader erased one), and one stale id must not cost the other ninety-nine.

## Other responses

- `400`: The server could not understand the request due to invalid syntax.
- `401`: Access is unauthorized.
- `403`: Access is forbidden.
- `404`: The server cannot find the requested resource.
- `default`: An unexpected error response.

---

[API](https://skmtc.dev/foundermail/apis/mailbox.md) - [All operations](https://skmtc.dev/foundermail/apis/mailbox/llms.txt) - [OpenAPI document](https://skmtc.dev/foundermail/apis/mailbox/revisions/6a50628a86ed?raw)
