---
title: "Update a normal user"
method: PATCH
path: "/users/{user_id}"
tags: ["Users"]
---

# Update a normal user

`PATCH /users/{user_id}`

## Request

- Base URL: `https://api.kontainer.com/jsonapi/v2`
- URL: `https://api.kontainer.com/jsonapi/v2/users/{user_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/kontainer/apis/kontainer-api-documentation/docs/users/:user_id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Please note the exemplary request body. It updates all the fields; however, if one only seeks to update a specific field (e.g., name), please omit the others.

## Path parameters

- `user_id` string, required

## Request body

- object
  - `data` object, required
    - `type` string: Resource Type
    - `attributes` object: Attributes
      - `name` string: Name
      - `email` string: Email (must be unqiue across orginization)
      - `company` string: The title of the company the user is associated with
      - `active` boolean: You may create an inactive user
      - `show_brand_section` boolean: Show Contact Section in Folder Menu
      - `hide_menu_by_default` boolean: Hide content menu by default
      - `custom_metadata` string: Custom metadata on a user, visible in the user edit screen UI and also searchable
      - `internal_metadata` string: Internal metadata on a user, hidden and only accessible through JsonApi

## Response `200`

updated

- UserResponse
  - `data` User
    - `id` string
    - `type` string
    - `attributes` UserAttributes
      - `name` string
      - `username` string
      - `email` string
      - `active` boolean
      - `last_login` union
        - string, date-time
        - 'Never'
      - `status` 'created' | 'invited' | 'verified': Invitation status of the user. `created` is the default state for a freshly created user. `invited` means the user has a non-expired invite/welcome email token. `verified` means the user has logged in at least once.
      - `is_client_admin` boolean
      - `is_delegated_admin` boolean
      - `is_adfs_user` boolean
      - `is_sso_user` boolean
      - `signature` string, nullable
      - `company` string
      - `expires` union: Wall clock in the client timezone, or `NEVER`
        - string
        - 'NEVER'
      - `type` 'normal' | 'shared' | 'admin' | 'direct-link'
      - `user_type` string: Deprecated: use `type` instead. Removal scheduled 2027-01-13.
      - `can_create_lightbox` boolean
      - `can_edit_profile` boolean
      - `can_post_comments` boolean
      - `can_folder_share` boolean
      - `can_internal_folder_share` boolean
      - `can_share_folders_and_files` boolean
      - `can_internal_folder_and_file_share` boolean
      - `can_direct_login` boolean
      - `show_brand_section` boolean
      - `hide_menu_by_default` boolean
      - `is_direct_link_user` boolean
      - `can_request_api` boolean
      - `notify_active` boolean
      - `notify_frequency` 0 | 1 | 2 | 3: How often notification emails are sent, in enum order: immediately, daily, weekly, monthly
      - `is_allowed_url_copy_with_direct_access` boolean
      - `custom_metadata` string
      - `internal_metadata` string

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/kontainer/apis/kontainer-api-documentation.md) - [All operations](https://skmtc.dev/kontainer/apis/kontainer-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/kontainer/apis/kontainer-api-documentation/revisions/b80a5167e09a?raw)
