POST /v1/mail/mailboxes/{mailboxId}/rename
Change a mailbox's address, keeping the mail in it.
Authentification
Envoyez une clé API en tant que jeton du porteur. La clé doit posséder l'autorisation mail.manage ; une clé qui ne l'a pas est refusée avec le code 403, et non 404.
Cet endpoint ne prend aucun identifiant d'organisation. Votre clé identifie déjà l'organisation à laquelle elle appartient, et la réponse y est limitée.
Essayer
Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.
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> }'Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API
Détails
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`.
Paramètres
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
mailboxId (path) | Uuid | Oui | Mailbox ID (UUIDv7). |
Corps de la requête
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
local | string | Oui | The new part before the `@`. Lower-cased and trimmed by the engine. |
Réponse
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
id | Uuid | Oui | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
address | string | Oui | The full address. |
local | string | Oui | The part before the `@`. |
quota_mb | integer | Oui | This mailbox's size in MB. `0` means no cap. |
used_mb | integer | Oui | 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 | Oui | 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 | Non | When the backend was last asked. `null` until the first sweep sees it. |
send_enabled | boolean | Oui | — |
receive_enabled | boolean | Oui | — |
status | MailboxStatus | Oui | One mailbox's state. |
system_managed | boolean | Oui | **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 | Oui | — |
Erreurs que cet point de terminaison peut renvoyer
401 · 403 · 404 · 409 · 422 · 429 · 503