---
title: "Update a user"
method: PUT
path: "/api/users/{userId}"
tags: ["User"]
---

# Update a user

`PUT /api/users/{userId}`

Updates user properties including name, status, type, and assigned roles.

## Path parameters

- `userId` string, uuid, required

## Request body

- object
  - `firstName` string — Updated first name
  - `lastName` string — Updated last name
  - `status` 'active' | 'disabled' | 'locked' — Updated user status
  - `type` 'invited' | 'member' | 'author' | 'admin' | 'owner' — Updated user type
  - `roles` string[] — List of role IDs to assign to the user

## Response `200`

The updated user

- object — The updated user
  - `id` string, uuid, required — Unique identifier of the user
  - `email` string, email, required — Email address of the user
  - `firstName` string, nullable — First name of the user
  - `lastName` string, nullable — Last name of the user
  - `type` 'invited' | 'member' | 'author' | 'admin' | 'owner', required — User type/role within the organisation
  - `status` 'active' | 'disabled' | 'locked', required — Current status of the user account
  - `isService` boolean — Whether this is a service account
  - `roles` object[] — Roles assigned to the user
    - `id` string, uuid, required — Unique identifier of the role
    - `name` string, required — Name of the role
    - `description` string, nullable — Description of the role
  - `createdAt` string, required — Timestamp when the user was created
  - `updatedAt` string, required — Timestamp when the user was last updated

---

[API](https://skmtc.dev/gorules/apis/gorules-agent-api.md) · [All operations](https://skmtc.dev/gorules/apis/gorules-agent-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/gorules/gorules-agent-api/revisions/52c0773fcd80/schema)
