Mailboxes API
Create, list, update, and delete mailboxes.
GET /v1/mailboxes
GET/v1/mailboxes
List all mailboxes. Scoped keys only see mailboxes in their scope.
response — 200 OK
{
"mailboxes": [
{
"id": "a1b2c3d4-5678-4def-abcd-111111111111",
"address": "hello",
"fullAddress": "myagent@robotomail.co",
"displayName": "My Agent",
"dailySendCount": 5,
"dailySendLimit": 500,
"monthlySendCount": 120,
"monthlySendLimit": 15000,
"receivedThisMonth": 42,
"status": "ACTIVE",
"createdAt": "2026-03-11T00:00:00.000Z"
}
]
}receivedThisMonth is the per-mailbox inbound count for the current calendar month (UTC). The account-level monthly cap is summed across all mailboxes — see GET /v1/account for the account-wide total and limit.
POST /v1/mailboxes
POST/v1/mailboxes
Create a new mailbox. Requires full-access key.
Request body
| Name | Type | Description |
|---|---|---|
| address* | string | Local part (1-64 chars, alphanumeric/._-) |
| displayName | string | Friendly name (max 255 chars) |
| domainId | string | UUID of a verified custom domain |
Without domainId, the mailbox uses your platform email domain. Custom domains require the paid plan and a verified domain.
Errors
400— Invalid address format or domain not verified403— Plan mailbox limit exceeded, or custom domain not permitted on your plan404— Domain not found409— Mailbox address already taken
GET /v1/mailboxes/:id
GET/v1/mailboxes/:id
Get a single mailbox by ID. Returns the full mailbox object.
PATCH /v1/mailboxes/:id
PATCH/v1/mailboxes/:id
Update mailbox settings. Works with scoped keys if the mailbox is in scope.
Request body
| Name | Type | Description |
|---|---|---|
| displayName | string | Updated display name |
| status | "ACTIVE" | "PAUSED" | Pause or reactivate the mailbox |
Errors
403— Plan limit: cannot reactivate custom-domain mailbox or exceed your active mailbox limit
DELETE /v1/mailboxes/:id
DELETE/v1/mailboxes/:id
Delete a mailbox. Requires full-access key. The underlying Stalwart account is also removed.
response — 200 OK
{ "deleted": true }