# Updating an existing User

This endpoint returns structured User objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array
and will be indexed by ID in the users top-level JSON key.
Please see our Response Format section for more information.

Endpoint: PUT /users/{id}
Version: 1.0.0

## Path parameters:

  - `id` (integer, required)
    The ID of the Model.

## Query parameters:

  - `include` (string)
    Any of the below associations can be included in your request by providing the include param, e.g. include=association1,association2.
- account_membership (AccountMembership) - Retrieves the account membership of the user, which represents the relationship of a user to an account. The response will include account_membership_id, which references the data in the account_memberships top-level key.
- custom_field_values (CustomFieldValue) - Retrieves the user's custom field values that are viewable for the current user. The response will include custom_field_value_ids, which references the data in the custom_field_values top-level key.
- external_references (ExternalReference) - Includes references to external integrations for this object.
- manager (User) - Retrieves the user's manager. The response will include manager_id, which references the data in the users top-level key.
- role (Role) - Retrieves the user's account role. The response will include role_id, which references the data in the roles top-level key.
- skill_memberships (SkillMembership) - Retrieves the skill memberships of the user, which represent skills that have been assigned to a user. The response will include skill_membership_ids, which references the data in the skill_memberships top-level key. The skill_memberships data will include the user's proficiency level (for skills which can be assigned proficiency levels).
- skills (Skill) - Retrieves the user's skills. The response will include skill_ids, which references the data in the skills top-level key. The skills data will include the skill description and category ID.
- work_samples (WorkSample) - Retrieves the user's portfolio items. The response will include work_sample_ids, which references the data in the work_samples top-level key.

  - `optional_fields` (array)
    Allows you to request one or more optional fields as an array.
    Enum: "bio", "website", "city", "state", "country", "abbreviated_timezone", "last_site_activity", "classification"

## Request fields (application/json):

  - `user` (object)

  - `user.full_name` (string)
    The full name of the user.

  - `user.headline` (string)
    A short description of the user.

  - `user.email_address` (string)
    The email address for the user. If this value is different than the user's existing email_address it will require a new verification.

  - `user.external_reference` (object)
    Typically populated programmatically by a third party system via an integration, this is an optional
object that holds data from an external system. It connects objects in an external system with objects in
Kantata OX (for example, to connect a Jira issue to a Kantata OX Project).

  - `user.external_reference.service_name` (string, required)
    The provider name of the integration. If you are adding multiple external references to the same object, the service_name must be unique.

  - `user.external_reference.service_model` (string, required)
    The object type of the external object this external reference belongs to.

  - `user.external_reference.service_model_ref` (string, required)
    The object ID of the external object this external reference belongs to.

  - `user.external_reference.status` (string)
    The status of the integration. Options are successful, pending,  or failed.

  - `user.external_reference.external_message` (string)
    The message on the external object.

  - `user.external_reference.external_link` (string)
    The link to the external object.

  - `user.external_reference.external_status` (string)
    The status of the external object in the external system.

  - `user.external_reference.locked` (boolean)
    Whether the subject is locked.

## Response 200 fields (application/json):

  - `count` (integer)

  - `meta` (object)

  - `meta.count` (integer)

  - `meta.page_count` (integer)

  - `meta.page_number` (integer)

  - `meta.page_size` (integer)

  - `results` (array)

  - `results.key` (string)

  - `results.id` (string)

  - `users` (object)

  - `external_references` (object)

  - `roles` (object)

  - `skills` (object)

  - `skill_memberships` (object)

  - `account_memberships` (object)

  - `work_samples` (object)

  - `custom_field_values` (object)

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 403 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 404 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 422 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 503 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)


