---
title: "Change a member's workspace role"
method: PATCH
path: "/api/workspaces/{slug}/members/{memberId}"
tags: ["Members"]
---

# Change a member's workspace role

`PATCH /api/workspaces/{slug}/members/{memberId}`

## Request

- Base URL: `https://trydock.ai`
- URL: `https://trydock.ai/api/workspaces/{slug}/members/{memberId}`
- Auth: HTTP bearer

Promote/demote between viewer/commenter/editor/owner. Cascades any agents owned by that user on this workspace.

## Path parameters

- `slug` string, required
- `memberId` string, required

## Request body

- object
  - `role` 'owner' | 'editor' | 'commenter' | 'viewer', required: Workspace role. Inherited cascades from org membership when no explicit row exists.

## Response `200`

Role changed.

- object
  - `member` object, required
    - `id` string, required
    - `principalType` 'user' | 'agent', required: Whether the actor is a human user or a Dock-managed agent.
    - `principalId` string, required
    - `name` string, required
    - `email` string, nullable, required
    - `avatarUrl` string, nullable, required
    - `role` 'owner' | 'editor' | 'commenter' | 'viewer', required: Workspace role. Inherited cascades from org membership when no explicit row exists.
    - `createdAt` string, date-time, required

---

[API](https://skmtc.dev/trydock/apis/dock-rest-api.md) - [All operations](https://skmtc.dev/trydock/apis/dock-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trydock/apis/dock-rest-api/revisions/dd96ae96a412?raw)
