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

# Update a user

`PUT /v3/users/{user_id}`

## Request

- Base URL: `https://api-APP_ID.sendbird.com`
- URL: `https://api-APP_ID.sendbird.com/v3/users/{user_id}`
- Auth: none declared

## Update a user

You can update information about a user using this API. In addition to changing a user's nickname or profile image, you can issue a new access token for the user. The new access token replaces the previous one as the necessary token for authentication.

You can also deactivate or reactivate a user using this API request. If the `leave_all_when_deactivated` is set to `true`, a user leaves all joined group channels and becomes deactivated.

> **Note**: Issuing session tokens through the `/users/{user_id}` endpoint is now deprecated and it&apos;s replaced with [&lt;code&gt;/users/{user_id}/token&lt;/code&gt;](https://sendbird.com/docs/chat/platform-api/v3/user/managing-session-tokens/issue-a-session-token) endpoint for greater efficiency. For those who are currently using the old endpoint, you can start issuing tokens using the new endpoint. 
  

[https://sendbird.com/docs/chat/platform-api/v3/user/managing-users/update-a-user#1-update-a-user](https://sendbird.com/docs/chat/platform-api/v3/user/managing-users/update-a-user#1-update-a-user)

## Path parameters

- `user_id` string, required

## Headers

- `api-token` string

## Request body

- UpdateAUserRequest
  - `discovery_keys` string[], nullable
  - `is_active` boolean
  - `issue_access_token` boolean
  - `last_seen_at` integer
  - `leave_all_when_deactivated` boolean
  - `nickname` string, nullable
  - `preferred_languages` string[], nullable
  - `profile_file` string, binary
  - `profile_url` string, nullable

## Response `200`

Successful response

- UpdateAUserResponse: User
  - `access_token` string
  - `created_at` integer
  - `discovery_keys` string[], nullable
  - `has_ever_logged_in` boolean
  - `is_active` boolean
  - `is_hide_me_from_friends` boolean
  - `is_online` boolean
  - `is_shadow_blocked` boolean
  - `last_seen_at` integer
  - `locale` string
  - `metadata` object, nullable
  - `nickname` string, nullable
  - `preferred_languages` string[], nullable
  - `profile_url` string
  - `require_auth_for_profile_image` boolean
  - `user_id` string, required
  - `state` '' | 'invited' | 'joined', nullable
  - `unread_channel_count` integer
  - `unread_message_count` integer
  - `phone_number` string
  - `is_created` boolean

## Changes

- **2025-10-17** `b05d4e3c6329`: 4 info
  - the request property `discovery_keys` became nullable
  - the request property `nickname` became nullable
  - the request property `preferred_languages` became nullable
  - the request property `profile_url` became nullable
- **2025-07-27** `7a85bad03e90`: 4 warning, 2 info
  - deleted the `header` request parameter `Api-Token`
  - removed the request property `issue_session_token`
  - removed the request property `session_token_expires_at`
  - removed the request property `user_id`
  - …2 more
- **2024-07-15** `f84d82aae1df`: 2 info
  - the request property `nickname` became optional
  - the request property `profile_url` became optional
- **2024-04-12** `0512c4a77c37`: 1 breaking
  - the `last_seen_at` request property format changed from no format to `int64`
- **2023-11-10** `135d8b0705d4`: 1 info
  - the `header` request parameter `Api-Token` became optional

[Operation history](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/changes/v3/users/:user_id/put.md)

---

[API](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk.md) - [All operations](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/llms.txt) - [OpenAPI document](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/revisions/9e53a5288df0?raw)
