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

Create a team

POST/teams

Creates a team. Being in a team grants nothing by itself: what it sees is what’s shared with it.

Needs the permissionteams:create

Only administrators can create teams. To give a team a mailbox, tick it in the mailbox’s access with Update a mailbox.

Body

namestringrequired
Different from every other team’s, whatever the case.
descriptionstring or nulloptional
What it’s for.
memberIdslist of stringsoptional
The people in it, by user id. Anyone who isn’t an active member of the organisation is left out.

Returns

The team, as List teams describes it.

Errors

400name_required
The name is empty.
400bad_request
A field has the wrong type, such as memberIds that isn’t a list of user ids.
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 teams:create. The X-Required-Scope header names what’s missing.
403not_admin
The key’s owner isn’t an administrator.
409duplicate
Another team already has that name, perhaps with different capitals.
429rate_limited
More than 120 requests a minute from this key. Wait for Retry-After seconds.
curl https://app.dmu.email/api/v1/teams \
  -X POST \
  -H "Authorization: Bearer dmk_7f3a9c2e1b4d_Xq8v…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Customer Service",
    "description": "Front desk and returns",
    "memberIds": ["284113279415566337"]
  }'

Response

200 OK

{
  "data": {
    "id": "6e1b7c40",
    "name": "Customer Service",
    "description": "Front desk and returns",
    "members": [
      {
        "userId": "284113279415566337",
        "name": "Maria Kalogirou",
        "email": "maria@aegeanfreight.gr",
        "suspended": false
      }
    ],
    "mailboxes": []
  }
}

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