POST /v1/mail/mailboxes/{mailboxId}/rename
Change a mailbox's address, keeping the mail in it.
Autenticazione
Invia una chiave API come token di tipo bearer. La chiave deve disporre dell'autorizzazione mail.manage; una chiave sprovvista di tale autorizzazione viene rifiutata con 403 anziché 404.
Questo endpoint non richiede alcun ID organizzazione. La tua chiave identifica già l'organizzazione a cui appartiene e la risposta è limitata ad essa.
Provalo
Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.
curl -X POST https://api.zinndigital.com/v1/mail/mailboxes/{mailboxId}/rename \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "local": <string> }'Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API
Dettagli
Changes the local part — `sales@example.com` becomes `hello@example.com` — with every message already in the mailbox intact. ⚖️ Part of the owner's 2026-08-16 ruling that a domain owner must be able to *"create the mailboxes easily and manage them in full"*. **A POST to a sub-resource rather than a field on `updateMailbox`, deliberately.** A rename moves where mail is delivered; a quota edit does not. Sharing a body would let a mistyped field change a customer's address as a side effect of resizing their mailbox, and would make the two indistinguishable in the audit log. ⛔ **The engine reads the mailbox back from the backend and refuses if the address did not actually change**, rather than trusting the backend's success response. It never falls back to create-then-delete: that would "work" on screen and silently destroy every stored message. `409` when the target address already exists on the domain; `422` for a mailbox that has not finished provisioning, and for the `system_managed` address the site sends from. Requires `mail.manage`.
Parametri
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
mailboxId (path) | Uuid | Sì | Mailbox ID (UUIDv7). |
Corpo della richiesta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
local | string | Sì | The new part before the `@`. Lower-cased and trimmed by the engine. |
Risposta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
id | Uuid | Sì | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
address | string | Sì | The full address. |
local | string | Sì | The part before the `@`. |
quota_mb | integer | Sì | This mailbox's size in MB. `0` means no cap. |
used_mb | integer | Sì | How much of it is used, as the mail backend last reported it (#932). Refreshed by the hourly reconcile, so it is a recent figure rather than a live one. |
percent_used | integer | Sì | How full, 0-100. Always `0` for an uncapped mailbox — a percentage of "no limit" is meaningless, not zero-ish. Read `usage_checked_at` before showing it: this is also `0` for a… |
usage_checked_at | string | No | When the backend was last asked. `null` until the first sweep sees it. |
send_enabled | boolean | Sì | — |
receive_enabled | boolean | Sì | — |
status | MailboxStatus | Sì | One mailbox's state. |
system_managed | boolean | Sì | **We** created this mailbox when the domain was provisioned; the customer did not ask for it. It is the address the site itself sends from, so `deleteMailbox` and `renameMailbox… |
created_at | string | Sì | — |
Errori che questo endpoint può restituire
401 · 403 · 404 · 409 · 422 · 429 · 503