This method allows you to update the details and permissions of an existing user in your DeployHQ account.

**Tip**: You can explore and test this endpoint interactively using our [OpenAPI documentation](https://api.deployhq.com/docs).

## URL

```
/users/:identifier
```

## HTTP Method

```
PUT
```

## Supported Parameters

The following parameters are wrapped in a `user` key. All fields are optional.

* `first_name` - The user's first name
* `last_name` - The user's last name
* `email_address` - The user's email address
* `time_zone` - The user's preferred time zone
* `account_administrator` - Whether the user should be an account administrator (boolean)
* `can_manage_users` - Whether the user can manage other users (boolean)
* `can_manage_billing` - Whether the user can manage billing (boolean)
* `can_create_projects` - Whether the user can create new projects (boolean)
* `can_manage_agents` - Whether the user can manage network agents (boolean)
* `all_projects_allowed` - Whether the user has access to all projects (boolean)

Project assignments are sent as a **top-level** `project_assignments` key (not nested under `user`). If omitted, existing project assignments are left unchanged.

## Example cURL Request

```
curl -H "Content-type: application/json" \
-H "Accept: application/json" \
--user adam@atechmedia.com:my-api-key \
-X PUT \
-d '{ \
  "user": { \
    "can_manage_users": true, \
    "all_projects_allowed": true \
  } \
}' \
https://test.deployhq.com/users/9e11def8-8c43-454e-8c99-3c5b9cf08396
```

## Example Response

```json
{
  "id": 12345,
  "identifier": "9e11def8-8c43-454e-8c99-3c5b9cf08396",
  "first_name": "John",
  "last_name": "Doe",
  "email_address": "john@example.com",
  "time_zone": "Etc/UTC",
  "account_administrator": false,
  "activated": true,
  "can_manage_users": true,
  "can_manage_billing": false,
  "can_create_projects": true,
  "can_manage_agents": false,
  "all_projects_allowed": true
}
```

## Notes

* The `:identifier` in the URL is a UUID that uniquely identifies the user
* Only the fields you include in the request will be updated
* You cannot remove the last account administrator
