---
title: "Update Workspace User Role"
method: PATCH
path: "/workspaces/{workspace_id}/users/{user_id}"
tags: ["Workspaces"]
---

# Update Workspace User Role

`PATCH /workspaces/{workspace_id}/users/{user_id}`

## Request

- Base URL: `https://api.aspect.inc`
- URL: `https://api.aspect.inc/workspaces/{workspace_id}/users/{user_id}`
- Auth: API key in header `Authorization`

Update a user's role in a workspace.

This works for both full users and stub users.

Business Rules:
- Only workspace owners (ADMIN) can change user roles
- Users cannot change their own role
- Workspace must always have at least one owner
- When promoting to owner: deletes all explicit project permissions (no longer needed)
- When demoting from owner: no automatic project permissions created

Role Conversion Logic:
- Limited Member to Member: the project roles they were given stay as overrides
- Member to Limited Member: their project roles stay and become their only access

## Path parameters

- `workspace_id` string, uuid, required
- `user_id` string, uuid, required

## Request body

- WorkspaceUpdateRoleRequest: Change a member's workspace role. A Limited Member keeps only the projects they were added to.
  - `role` 'owner' | 'member' | 'member_limited', required: Role in a workspace.

## Response `200`

Successful Response

- WorkspaceUserResponse: API response schema for a workspace user.
  - `id` string, uuid, required: User ID
  - `first_name` string, required: User's first name
  - `last_name` string, required: User's last name
  - `email` string, required: User's email address
  - `avatar_url` string, nullable: User's avatar URL
  - `role` 'owner' | 'member' | 'member_limited', required: Role in a workspace.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/aspect/apis/aspect-api.md) - [All operations](https://skmtc.dev/aspect/apis/aspect-api/llms.txt) - [OpenAPI document](https://skmtc.dev/aspect/apis/aspect-api/revisions/28ea5f1adb54?raw)
