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

Update a team

PATCH/teams/{id}

Renames a team, changes its description, or replaces who’s in it. Send only what changes.

Needs the permissionteams:update

memberIds replaces the whole list. To put one person in or take one out without overwriting what a colleague changed meanwhile, use Add a team member and Remove a team member.

Path parameters

idstringrequired
The team.

Body

namestringoptional
A new name.
descriptionstring or nulloptional
A new description, or null for none.
memberIdslist of stringsoptional
Everyone who should be in it. Ids that aren’t active members are left out.

Returns

The team, as List teams describes it.

Errors

400bad_request
A field has the wrong type, such as memberIds that isn’t a list of user ids.
400nothing_to_change
No name, description or memberIds was sent.
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:update. The X-Required-Scope header names what’s missing.
403not_admin
The key’s owner isn’t an administrator.
404not_found
There’s no such team.
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/6e1b7c40 \
  -X PATCH \
  -H "Authorization: Bearer dmk_7f3a9c2e1b4d_Xq8v…" \
  -H "Content-Type: application/json" \
  -d '{ "description": "Front desk, returns and complaints" }'

Response

200 OK

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

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