---
title: "Change a workspace member's role"
method: PATCH
path: "/workspaces/{workspace_id}/users/{id}"
tags: ["User"]
---

# Change a workspace member's role

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

Change a user's role within a workspace. The user must already be a member of the workspace. Available to workspace owners, company owners, and properly permissioned API keys.

## Path parameters

- `workspace_id` string, required
- `id` string, required

## Headers

- `If-Match` string

## Request body

- WorkspaceRoleUpdate
  - `role` 'owner' | 'editor' | 'viewer', required — The possible values for user role

## Response `200`

The user's role in this workspace after applying the update

- UserRoles
  - `roles` UserRole[], required
    - `role` 'owner' | 'editor' | 'viewer', required — The possible values for user role
    - `workspace_id` string — The workspace this role applies to. Preferred over `organization_id`. At least one of `workspace_id` or `organization_id` must be present.
    - `organization_id` string — Deprecated alias for `workspace_id`. Retained so legacy callers keep working; new code should use `workspace_id`.
    - `acknowledged_status` 'requires_acknowledgement' | 'acknowledged' — Status marking whether the user has acknowledged the welcome message in the joined workspace

## Other responses

- `400` — Invalid or missing parameter
- `401` — User not authenticated
- `403` — User not authorized
- `404` — User is not a member of this workspace
- `409` — Update conflicts with workspace constraints, such as demoting the last owner or an If-Match header version mismatch
- `default` — Unknown error

---

[API](https://skmtc.net/mabl/apis/mabl-api.md) · [All operations](https://skmtc.net/mabl/apis/mabl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mabl/mabl-api/revisions/d0fc0114da66/schema)
