Skip to main content
PATCH /api/v1/projects/{project_id}/members/{member_id} Requires project_members.write permission.

Path parameters

project_id
string
required
UUID of the project.
member_id
string
required
UUID of the project membership record.

Request body

role_id
string
required
UUID of the new role to assign.

Response

member
object
required
The updated project membership.

Errors

StatusWhen
403Caller lacks project_members.write permission
404Project, member, or role not found

Example

curl -X PATCH http://localhost:8080/api/v1/projects/p1b2c3d4-e5f6-7890-abcd-ef1234567890/members/mb1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"role_id": "r2b2c3d4-e5f6-7890-abcd-ef1234567890"}'
{
  "member": {
    "id": "mb1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "project_id": "p1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "user_id": "u1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "role_id": "r2b2c3d4-e5f6-7890-abcd-ef1234567890",
    "role": {
      "id": "r2b2c3d4-e5f6-7890-abcd-ef1234567890",
      "key": "viewer",
      "name": "Viewer",
      "is_system": true,
      "permissions": ["flags.read", "rules.read"]
    },
    "created_at": "2026-01-15T09:00:00Z"
  }
}

Build docs developers (and LLMs) love