---
title: "Update mailbox inbox message"
method: PATCH
path: "/mailboxes/{id}/inbox/messages/{message_id}"
tags: ["Mailboxes"]
---

# Update mailbox inbox message

`PATCH /mailboxes/{id}/inbox/messages/{message_id}`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/mailboxes/{id}/inbox/messages/{message_id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shipmail.to/api/auth/oauth2/authorize`, token URL `https://shipmail.to/api/auth/oauth2/token`)

Set read and/or starred state on one inbound JMAP message for a mailbox.

## Headers

- `X-Shipmail-Organization` string

## Request body

- union: Provide at least one field to set on the message.
  - object
    - `read` boolean, required: Set whether the message is read.
    - `starred` boolean: Set whether the message is starred.
  - object
    - `read` boolean: Set whether the message is read.
    - `starred` boolean, required: Set whether the message is starred.

## Response `200`

Inbox message action completed.

- InboxMessageAction
  - `object` 'inbox_message_action', required
  - `mailbox_id` string, required
  - `address` string, email, required
  - `message_id` string, required
  - `ok` true, required
  - `folder_ids` string[], nullable, required: Folders the message is in after the change, read back from the mail server. Null when it could not be read back.
  - `keywords` object, nullable, required: Keywords such as $seen and $flagged after the change. Null when they could not be read back.

## Other responses

- `401`: Authentication failed.
- `403`: Insufficient permissions.
- `404`: Resource not found.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

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