---
title: "Update Project User Role"
method: PATCH
path: "/projects/{project_id}/users/{user_id}"
tags: ["Projects"]
---

# Update Project User Role

`PATCH /projects/{project_id}/users/{user_id}`

## Request

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

Update a user's role on a project.

Works for both full users and stub users.

Requirements:
- Requires FULL_ACCESS on the project
- Cannot update project role for workspace owners
- Role must be a valid project role: full_access, editor, commenter, downloader, viewer, no_access

Note: For MEMBER_LIMITED users, setting NO_ACCESS removes their explicit permission
(equivalent to DELETE) since they have no access without explicit permission.

## Path parameters

- `project_id` string, uuid, required
- `user_id` string, uuid, required

## Request body

- ProjectUpdateRoleRequest: Change a person's role on a project.
  - `role` 'full_access' | 'editor' | 'commenter' | 'downloader' | 'viewer' | 'no_access', required: Role on a project.

## Response `200`

Successful Response

- ProjectUserResponse: API response schema for a user with project access.
  - `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` 'full_access' | 'editor' | 'commenter' | 'downloader' | 'viewer' | 'no_access', required: Role on a project.
  - `workspace_role` 'owner' | 'member' | 'member_limited', required: Role in a workspace.
  - `has_explicit_permission` boolean, required: True when the role was set on this project directly. False when it comes from the project's default role or workspace ownership.

## 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)
