Ir a la documentación
API

Cambiar el rol de un miembro

El rol y nada más. Las direcciones son el otro eje y tienen sus propias llamadas.

PATCHapi.openemail.uk/members/{userId}

Ejecuta la llamada real contra tu espacio de trabajo, con tu propia clave.

PATCH /members/{userId}

El rol y nada más. Las direcciones son el otro eje y tienen sus propias llamadas.

Ejemplo

Requiere members:write. roleId es el único campo y es obligatorio. Esta llamada nombra el estado que quiere en lugar de un cambio que aplicar, así que enviarla dos veces deja a la misma persona con el mismo rol.

curl
curl -X PATCH "$OE/members/7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "roleId": "role_2b81de079c1f0a4b7e05d386" }'
Respuesta
{  "object": "member",  "userId": "7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a",  "email": "[email protected]",  "name": null,  "image": null,  "role": {    "id": "role_2b81de079c1f0a4b7e05d386",    "name": "Support",    "builtin": null  },  "implied": false,  "permissions": [    "emails:send",    "emails:read",    "threads:read",    "threads:write",    "labels:read",    "labels:write",    "contacts:read"  ],  "addresses": [    {      "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8",      "address": "[email protected]",      "access": "viewer"    }  ],  "createdAt": "2026-08-30T15:44:02.000Z"}

Las direcciones NO se pueden modificar desde aquí, y la omisión es deliberada: son un conjunto con un nivel de acceso por elemento, y un PATCH que llevara un array tendría que significar reemplazo completo, lo que supone una revocación masiva silenciosa cada vez que un cliente envía una lista desactualizada. Las dos llamadas de direcciones añaden y quitan de una en una, así que lo que ocurre es siempre lo que se pidió.

Así es también como un titular de concesiones heredadas deja de ser implied: no tiene fila de miembro, esta llamada la crea o la actualiza, y a partir de ahí sus permisos son los que alguien eligió y no los que su acceso a direcciones implicaba por casualidad. Fíjate en cómo implied pasa a false y aparece createdAt en la respuesta anterior. Nada cambia en sus direcciones.

El rol de propietario no se puede repartir (role_immutable, un 409), tenga lo que tenga quien llama. Convertir a alguien en propietario es una transferencia del espacio de trabajo, que tiene otras consecuencias y no existe en esta API.

Su nuevo rol surte efecto en su siguiente solicitud, y en la siguiente solicitud de todas las claves de API limitadas por él.