---
title: "Change an explicit board grant's role"
method: PATCH
path: "/projects/{id}/members/{userId}"
---

# Change an explicit board grant's role

`PATCH /projects/{id}/members/{userId}`

## Request

- Base URL: `https://craaft.io/api/v1`
- URL: `https://craaft.io/api/v1/projects/{id}/members/{userId}`
- Auth: HTTP bearer

Board-admin only. 404 if there's no explicit `project_members` row
for the target (i.e. their access is implicit via workspace role
or workspace-visibility).

## Request body

- object
  - `role` 'admin' | 'contributor', required

## Response `200`

Updated

- object
  - `userId` string, uuid, required
  - `role` 'admin' | 'contributor', required
  - `createdAt` string, date-time, required

## Other responses

- `400`: Missing / invalid role
- `401`: Missing or invalid token
- `404`: Resource doesn't exist or caller isn't a member of its workspace

---

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