Ga direct naar de documentatie
API

Een rol aanmaken

Een naam en een lijst met permissies. Wat er terugkomt is langer dan wat je hebt gestuurd.

POSTapi.openemail.uk/roles

Voert de echte aanroep uit op je workspace, met je eigen sleutel.

POST /roles

Een naam en een lijst met permissies. Wat er terugkomt is langer dan wat je hebt gestuurd.

Voorbeeld

Vereist roles:write. Geeft 201 terug. Een eigen rol is builtin: null, editable: true en deletable: true, en niemand heeft hem totdat er iemand naartoe wordt verplaatst.

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"]  }'
Respons
{  "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"}

Er gingen vier permissies in en er kwamen er zeven terug. emails:send impliceert emails:read, threads:write impliceert threads:read, labels:write impliceert labels:read. Een rol die een thread mag archiveren die hij niet kan openen is een vakje dat iemand vergeten is en geen beleid dat iemand bedoelt, dus de implicatie wordt opgeslagen in plaats van geweigerd. De lijst komt ook in canonieke volgorde terug, en dat is wat een client in staat stelt twee rollen als JSON te vergelijken en te bepalen of Opslaan actief is.

Een onbekende permissie wordt hier WEL geweigerd in plaats van weggelaten: templates:writ levert invalid_parameter op, een 422, met de string erbij. De service normaliseert stilzwijgend omdat het ook het seeding-pad en het MCP-pad is, waar een hele rol laten mislukken op één niet-herkend woord erger zou zijn. Bij een aanroep die iemand bewust heeft gedaan is het verkeerd. Een 200 met een rol die geen templates kan bewerken heeft diegene niets verteld, en die is er de hele middag zoet mee.

Een dubbele naam binnen dezelfde workspace levert role_name_taken op, een 409. De 25e eigen rol levert role_limit_reached op, een 422. Dat bewaakt hoe groot een matrix mag worden voordat niemand hem nog controleert, en is geen plangrens.

Een rol aanmaken geeft hem aan niemand. Mensen erop zetten doe je met PATCH /members/{userId}, en een sleutel eraan koppelen gebeurt daar waar de sleutel wordt uitgegeven.