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

# Update a mailbox

`PATCH /mailboxes/{id}`

## Request

- Base URL: `https://api.poststack.dev`
- URL: `https://api.poststack.dev/mailboxes/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://poststack.dev/oauth/authorize`
    - Token URL: `https://poststack.dev/oauth/token`
- TypeScript: <https://skmtc.dev/poststack/apis/poststack-api/docs/mailboxes/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` string, required

## Request body

- UpdateMailboxInput
  - `assignedUserId` integer, nullable
  - `displayName` string, nullable
  - `quotaBytes` integer
  - `status` 'active' | 'suspended'
  - `webhookEnabled` boolean
  - `forwardTo` string, nullable
  - `forwardMode` 'relay' | 'wrapped'
  - `forwardKeepCopy` boolean
  - `signatureHtml` string, nullable
  - `signatureText` string, nullable

## Response `200`

Updated.

- object
  - `mailbox` Mailbox, required: An IMAP/POP3 mailbox. The password hash is never returned.
    - `id` integer, required
    - `publicId` string, required: `mb_…` id.
    - `domainId` integer
    - `emailAddress` string, required
    - `displayName` string, nullable
    - `assignedUserId` integer, nullable
    - `quotaBytes` integer, nullable
    - `usedBytes` integer, nullable
    - `status` 'active' | 'suspended' | 'deleted', required
    - `webhookEnabled` boolean
    - `forwardTo` string, nullable
    - `forwardMode` 'relay' | 'wrapped'
    - `forwardKeepCopy` boolean
    - `sentCount` integer
    - `lastLoginAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `domain` object: List only.
      - `id` integer
      - `name` string

## Other responses

- `400`: Validation failed, or the assigned user is not a team member.
- `401`: Missing, malformed or unknown credentials (`WWW-Authenticate: Bearer …` is set).
- `403`: Missing `mailboxes:manage` scope, team suspended, or no access to this mailbox.
- `404`: No such resource on this team.
- `429`: Rate limited (10/min). `Retry-After` gives the seconds to wait; `X-RateLimit-*` headers are sent on every response.

## Changes

- **2026-09-30** `4dc1e20989c8`: 15 warning
  - added the new `daily_limit_exceeded` enum value to the `anyOf[#/components/schemas/Error]/code` response property for the response status `403`
  - added the new `daily_limit_exceeded` enum value to the `code` response property for the response status `400`
  - added the new `daily_limit_exceeded` enum value to the `code` response property for the response status `401`
  - added the new `daily_limit_exceeded` enum value to the `code` response property for the response status `404`
  - …11 more
- **2026-09-29** `ef5b22b98333`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/poststack/apis/poststack-api/changes/mailboxes/:id/patch.md)

---

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