POST /v1/mail/mailboxes/{mailboxId}/rename
Change a mailbox's address, keeping the mail in it.
인증
Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 mail.manage 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.
이 엔드포인트는 조직 ID를 받지 않습니다. 사용자의 키가 이미 속한 조직을 식별하며, 응답은 해당 조직으로 한정됩니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
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> }'로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
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`.
매개변수
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
mailboxId (path) | Uuid | 예 | Mailbox ID (UUIDv7). |
요청 본문
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
local | string | 예 | The new part before the `@`. Lower-cased and trimmed by the engine. |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
id | Uuid | 예 | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
address | string | 예 | The full address. |
local | string | 예 | The part before the `@`. |
quota_mb | integer | 예 | This mailbox's size in MB. `0` means no cap. |
used_mb | integer | 예 | 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 | 예 | 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 | 아니요 | When the backend was last asked. `null` until the first sweep sees it. |
send_enabled | boolean | 예 | — |
receive_enabled | boolean | 예 | — |
status | MailboxStatus | 예 | One mailbox's state. |
system_managed | boolean | 예 | **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 | 예 | — |
이 엔드포인트가 반환할 수 있는 오류
401 · 403 · 404 · 409 · 422 · 429 · 503