---
title: "Update organization user"
method: PATCH
path: "/api/v1/org/users/{user_id}"
tags: ["organization"]
---

# Update organization user

`PATCH /api/v1/org/users/{user_id}`

Update a user in the current organization.

Different PropelAuth methods are called depending on what's being updated:
- Email changes require re-confirmation
- Password changes take effect immediately
- Profile fields (name, username, picture) are updated together
- Role changes affect organization permissions

RLS: Filtered to current client, can update any user (ClientRLSDB).

## Path parameters

- `user_id` string, uuid, required

## Request body

- ClientUserUpdateRequest — Request schema for updating a client user.
  - `email` string, nullable
  - `first_name` string, nullable
  - `last_name` string, nullable
  - `password` string, nullable
  - `picture_url` string, nullable
  - `role` 'Admin' | 'Developer' | 'Viewer' — Role of a user within a client organization.
  - `username` string, nullable

## Response `200`

Successful Response

- ClientUserResponse — Response schema for a client user.
  - `client_id` string, uuid, required
  - `created_at` string, date-time, required
  - `email` string, required
  - `email_confirmed` boolean, required
  - `first_name` string, nullable
  - `id` string, uuid, required
  - `last_name` string, nullable
  - `picture_url` string, nullable
  - `propel_auth_created_at` string, date-time, nullable
  - `propel_auth_last_active_at` string, date-time, nullable
  - `role` 'Admin' | 'Developer' | 'Viewer', required — Role of a user within a client organization.
  - `updated_at` string, date-time, required
  - `username` string, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `409` — Conflict
- `422` — Validation Error

## Changes

- **2026-01-29** `5f4f08ff6556` — 1 warning, 4 info
  - removed the optional property `detail` from the response with the `422` status
  - added the optional property `errors` to the response with the `422` status
  - added the required property `code` to the response with the `422` status
  - added the required property `message` to the response with the `422` status
  - …1 more

[Change history](https://skmtc.dev/kater-ai/apis/kater-api/changes/api/v1/org/users/:user_id/patch.md)

---

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