---
title: "Change another member's role."
method: PATCH
path: "/v1/workspaces/{workspaceId}/members/{memberId}"
---

# Change another member's role.

`PATCH /v1/workspaces/{workspaceId}/members/{memberId}`

## Request

- Base URL: `https://api.bangermail.com`
- URL: `https://api.bangermail.com/v1/workspaces/{workspaceId}/members/{memberId}`
- Auth: HTTP bearer

Owners and admins set admin, member or viewer on another member. A person signed in, or an agent acting through their OAuth grant, must make the change; a standalone API key cannot. Nobody changes their own role and the owner's role is not changeable. Setting the current role changes nothing. A partner (a Banger Partners collaborator) keeps the partner role: the owner removes partners in Settings → Partners, and only their mailboxes can be narrowed here.

## Request body

- object
  - `role` 'admin' | 'member' | 'viewer', required

## Response `200`

The member with their new role and the role they had before.

- object
  - `data` object, required
    - `id` string, uuid, required
    - `userId` string, required
    - `email` string, email
    - `displayName` string
    - `kind` 'user', required
    - `role` 'owner' | 'admin' | 'member' | 'viewer' | 'partner', required
    - `status` 'active' | 'suspended', required
    - `previousRole` 'owner' | 'admin' | 'member' | 'viewer' | 'partner', required

## Other responses

- `400`: The role is not admin, member or viewer, or the member id is not a uuid.
- `403`: The caller is not an owner or admin (workspace_admin_required, insufficient_role), is a standalone API key (human_actor_required), is changing their own role (own_role_unchangeable) or the owner's (owner_role_unchangeable).
- `404`: No member with that id in this workspace (member_not_found).

---

[API](https://skmtc.dev/bangermail/apis/banger-api.md) · [All operations](https://skmtc.dev/bangermail/apis/banger-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bangermail/apis/banger-api/revisions/a149909267f9?raw)
