Base URL
https://app.dmu.email/api/v1
Authentication
Bearer dmk_… API key
Rate limit
120 requests a minute per key

Get a mailbox

GET/mailboxes/{id}

Returns a mailbox’s connection settings: its servers, ports and user names. Never its password.

Needs the permissionmailboxes:read

Settings tell anyone holding the key where the mail lives, so reading them has a permission of its own that only Full access includes.

Path parameters

idstringrequired
The mailbox.

Returns

idstring
The mailbox.
emailstring
The address.
displayNamestring
The name recipients see.
imapHoststring
With imapPort and imapUsername: the incoming server.
smtpHoststring
With smtpPort and smtpUsername: the outgoing server.
smtpEncryptionstring
tls, ssl or none.
ownerUserIdstring or null
The person it’s private to, or null when it’s shared.
accessobject or null
Who can see it: { "everyone": true }, or { "everyone": false, "teamIds": […], "userIds": […] } for the teams and people ticked on it. Administrators always can. Null for a private mailbox.
accessVersionstring or null
Send it back with a change to access in Update a mailbox to be told if someone else changed it first. Null for a private mailbox.
teamIdstring or null
Kept for integrations written before October 2026: the first team ticked, or null for everyone, people only or private. Read access instead.
authMethodstring
password, google or microsoft.
groupAutomatedBySubjectboolean
Whether automated alerts with the same subject join one conversation. Off, each starts its own.
iconobject
How DMU Mail draws it: style (default, icon, emoji or image), background, and the name, emoji or image its style uses.

Errors

401invalid_key
The key is wrong, expired or revoked. With no Authorization header at all, the code is missing_credentials.
403missing_scope
The key doesn’t have mailboxes:read. The X-Required-Scope header names what’s missing.
404not_found
There’s no such mailbox, or the key’s owner can’t see it.
429rate_limited
More than 120 requests a minute from this key. Wait for Retry-After seconds.
curl https://app.dmu.email/api/v1/mailboxes/9e53e6ba \
  -H "Authorization: Bearer dmk_7f3a9c2e1b4d_Xq8v…"

Response

200 OK

{
  "data": {
    "id": "9e53e6ba",
    "email": "info@aegeanfreight.gr",
    "displayName": "Aegean Freight",
    "imapHost": "imappro.zoho.eu",
    "imapPort": 993,
    "imapUsername": "info@aegeanfreight.gr",
    "smtpHost": "smtppro.zoho.eu",
    "smtpPort": 465,
    "smtpUsername": "info@aegeanfreight.gr",
    "smtpEncryption": "ssl",
    "ownerUserId": null,
    "access": {
      "everyone": false,
      "teamIds": ["6e1b7c40"],
      "userIds": ["284113279415566337"]
    },
    "accessVersion": "9c41…",
    "teamId": "6e1b7c40",
    "authMethod": "password",
    "groupAutomatedBySubject": true,
    "icon": {
      "style": "default",
      "background": "default",
      "name": null,
      "emoji": null,
      "image": null
    }
  }
}

Every response wraps its result in data. A page of threads adds nextCursor, which is null on the last page.