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

Set your signature

PUT/signatures

Writes the key’s owner’s own signature for one mailbox. The organisation’s and teams’ signatures can’t be changed through the API.

Needs the permissionsignatures:write

It’s sanitised when saved, and added to their new drafts from then on. An empty bodyHtml clears it, so the organisation’s applies again.

Body

mailboxIdstringrequired
The mailbox it’s for.
bodyHtmlstringoptional
The signature as HTML. Empty or left out clears it.

Returns

mailboxIdstring
The mailbox.
bodyHtmlstring
The signature as saved.

Errors

400mailbox_required
There’s no mailboxId.
400invalid_signature
It couldn’t be saved. The message says why.
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 signatures:write. 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/signatures \
  -X PUT \
  -H "Authorization: Bearer dmk_7f3a9c2e1b4d_Xq8v…" \
  -H "Content-Type: application/json" \
  -d '{
    "mailboxId": "9e53e6ba",
    "bodyHtml": "<p>Nikos Georgiou<br>Aegean Freight</p>"
  }'

Response

200 OK

{
  "data": {
    "mailboxId": "9e53e6ba",
    "bodyHtml": "<p>Nikos Georgiou<br>Aegean Freight</p>"
  }
}

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