---
title: "Update user profile"
method: PUT
path: "/authn2/v0/user/{user_id}"
tags: ["esper_cloud_api_User"]
---

# Update user profile

`PUT /authn2/v0/user/{user_id}`

Updates the authenticated user's own profile details.

Use this endpoint when the currently authenticated user needs to update their own display name. This endpoint is scoped to self-service profile edits only and cannot be used to modify another user's account or change role and group assignments.

**About Update User Profile**

This endpoint allows a user to update their own profile via the authn2 identity service. The request body accepts only first_name — role changes, group reassignments, and other administrative updates must be performed by an Enterprise Admin via PUT /authz2/v1/users/{user_id}. The user_id parameter expects the UUID-format authn_user_id, not the integer id from GET /user/.

**Key Fields / Request Body**

first_name — (required) the updated first name for the authenticated user

**Common Use Cases**

Allowing a user to correct or update their display name after account creation

**Best Practices**

Use GET /user_info/ to confirm the current user's authn_user_id before calling this endpoint

For role or group changes, use PUT /authz2/v1/users/{user_id} — this endpoint cannot modify access permissions

**Workflow**

Call GET /user_info/ to retrieve the authenticated user's authn_user_id

PUT to this endpoint with the updated first_name

Confirm the change in the returned User object

## Path parameters

- `enterprise_id` string, uuid, required
- `user_id` string, uuid, required

## Request body

- EsperCloudApiUpdateOwnUserRequest
  - `first_name` string, required

## Response `200`

User Updated Successfully

- EsperCloudApiUser
  - `id` integer
  - `username` string
  - `email` string, email
  - `first_name` string
  - `last_name` string
  - `full_name` string
  - `is_staff` boolean
  - `is_superuser` boolean
  - `is_active` boolean
  - `profile` EsperCloudApiUserProfile
    - `id` integer
    - `enterprise_user_id` string
    - `authn_user_id` string, uuid
    - `authn_connection_id` string, uuid
    - `authz_role_id` string, uuid
    - `role` 'Shoonya Admin' | 'Enterprise Admin' | 'Enterprise User' | 'Viewer' | 'Group Admin' | 'Group Viewer'
    - `enterprise` string, uuid
    - `is_customer` boolean
    - `is_endpoint_creator` boolean
    - `created_on` string, date-time
    - `updated_on` string, date-time
    - `setup_wizard_complete` boolean
    - `default_password_changed` boolean
    - `is_developer` boolean
    - `can_factory_reset` boolean
    - `groups` EsperCloudApiGroup[]
      - `id` string, uuid
      - `name` string
      - `path` string
      - `device_count` integer
  - `emm` EsperCloudApiEMM
    - `id` integer
    - `user` integer
    - `account_identifier` string
    - `account_type` string
    - `display_name` string
    - `google_user_id` string
    - `google_enterprise` integer
    - `is_active` boolean
    - `created_on` string, date-time
    - `updated_on` string, date-time
    - `authentication_token` EsperCloudApiAuthenticationToken
      - `id` integer
      - `token` string
      - `is_active` boolean
      - `updated_on` string, date-time
  - `last_login` string
  - `token` string
  - `has_emm` boolean
  - `is_email_verified` boolean

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden, no permission to perform this action.

---

[API](https://skmtc.net/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.net/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/esper/esper-api-reference/versions/e1f64cbb488e/schema)
