Zur Dokumentation springen
API

Eine Rolle erstellen

Ein Name und eine Liste von Berechtigungen. Was zurückkommt, ist länger als das, was Sie gesendet haben.

POSTapi.openemail.uk/roles

Führt den echten Aufruf gegen Ihren Workspace aus, mit Ihrem eigenen Schlüssel.

POST /roles

Ein Name und eine Liste von Berechtigungen. Was zurückkommt, ist länger als das, was Sie gesendet haben.

Beispiel

Benötigt roles:write. Gibt 201 zurück. Eine benutzerdefinierte Rolle ist builtin: null, editable: true und deletable: true und wird von niemandem gehalten, bis jemand auf sie verschoben wird.

curl
curl -X POST "$OE/roles" -H "$AUTH" -H "Content-Type: application/json" \  -d '{    "name": "Support",    "description": "Answers the shared inboxes and nothing else.",    "permissions": ["emails:send", "threads:write", "labels:write", "contacts:read"]  }'
Antwort
{  "object": "role",  "id": "role_2b81de079c1f0a4b7e05d386",  "name": "Support",  "description": "Answers the shared inboxes and nothing else.",  "permissions": [    "emails:send",    "emails:read",    "threads:read",    "threads:write",    "labels:read",    "labels:write",    "contacts:read"  ],  "builtin": null,  "editable": true,  "deletable": true,  "members": 0,  "apiKeys": 0,  "createdAt": "2026-08-30T10:41:02.000Z",  "updatedAt": "2026-08-30T10:41:02.000Z"}

Vier Berechtigungen gingen hinein und sieben kamen zurück. emails:send impliziert emails:read, threads:write impliziert threads:read, labels:write impliziert labels:read. Eine Rolle, die einen Thread archivieren darf, den sie nicht öffnen kann, ist ein vergessenes Häkchen und keine Richtlinie, die irgendjemand so meint, deshalb wird die Implikation gespeichert statt abgelehnt. Die Liste kommt außerdem in kanonischer Reihenfolge zurück, und genau das erlaubt einem Client, zwei Rollen als JSON zu vergleichen und zu entscheiden, ob Speichern aktiv ist.

Eine unbekannte Berechtigung WIRD hier abgelehnt statt verworfen: templates:writ ergibt invalid_parameter, ein 422, unter Nennung der Zeichenfolge. Der Dienst normalisiert stillschweigend, weil er zugleich der Seeding-Pfad und der MCP-Pfad ist, wo eine ganze Rolle an einem nicht erkannten Wort scheitern zu lassen schlimmer wäre. Bei einem Aufruf, den jemand bewusst gemacht hat, ist es falsch. Ein 200 mit einer Rolle, die keine Templates bearbeiten kann, hat ihm nichts gesagt, und er wird den Nachmittag damit verbringen.

Ein doppelter Name im selben Workspace ergibt role_name_taken, ein 409. Die 25. benutzerdefinierte Rolle ergibt role_limit_reached, ein 422. Das schützt davor, wie groß eine Matrix werden kann, bevor niemand sie mehr prüft, und ist keine Tarifgrenze.

Eine Rolle zu erstellen gibt sie niemandem. Menschen darauf zu verschieben geschieht über PATCH /members/{userId}, und einen Schlüssel darauf zu richten geschieht dort, wo der Schlüssel ausgestellt wird.