---
title: "Change a member's role (admin only, last-admin protection)"
method: PATCH
path: "/api/me/team/members/{userId}/role"
tags: ["me"]
---

# Change a member's role (admin only, last-admin protection)

`PATCH /api/me/team/members/{userId}/role`

## Request

- Base URL: `https://api.signalraven.ai`
- URL: `https://api.signalraven.ai/api/me/team/members/{userId}/role`
- Auth: none declared

## Path parameters

- `userId` string, uuid, required

## Request body

- ChangeRoleBody
  - `role` 'admin' | 'manager' | 'prospector' | 'user', required

## Response `200`

Role changed

- ChangeRoleResponse
  - `userId` string, uuid, required
  - `fromRole` 'admin' | 'manager' | 'prospector' | 'user'
  - `role` 'admin' | 'manager' | 'prospector' | 'user', required
  - `changed` boolean, required

## Other responses

- `404`: User not on this team
- `409`: Would orphan customer (last-admin protection)

---

[API](https://skmtc.dev/signalraven/apis/zygnal-api.md) · [All operations](https://skmtc.dev/signalraven/apis/zygnal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signalraven/apis/zygnal-api/revisions/36e1d9b9d604?raw)
