# Updating an existing Custom Field Value

Updates an existing value for the specified custom field. Up to 100 values can be updated at one time.
This endpoint returns structured Custom Field Value 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 `custom_field_values` top-level JSON key.
Please see our [Response Format](#section/Response-Format) section for more information.

Endpoint: PUT /custom_field_values/{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`.
- `custom_field` (CustomField) - Retrieves the custom field the value is for. The response will include `custom_field_id`, which references the data in the `custom_fields` top-level key.
- `external_references` (ExternalReference) - Includes references to external integrations for this object.
- `selected_choices` (CustomFieldChoice) - Retrieves the custom field choice that corresponds to the custom field value. The response will include `selected_choice_ids`, which references the data in the `custom_field_choices` top-level key.
- `setter` (User) - Retrieves the user that set the custom field value. The response will include `setter_id`, which references the data in the `users` top-level key.
- `subject` (polymorphic) - Retrieves the object which the custom field value is for. The response will include `subject_ref`, which references the data in the top-level key specified in the `key` field of `subject_ref`. The possible objects are as follows:
* `Estimate`
* `Workspace` (Project)
* `WorkspaceGroup` (Group)
* `Resource`
* `Story` (Task)
* `User`.

## Request fields (application/json):

  - `custom_field_value` (object)

  - `custom_field_value.value` (string, required)
    The new value that replaces the existing value for the specified custom field.

These value types are updated in the following formats:

  | Value Type           | Format                                   | Sample         |
  | -------------------- |:----------------------------------------:| --------------:|
  | `string`             | `<text_string>`                          |        `"foo"` |
  | `date`               | `<ISO_8601 Date Format>`                 | `"2014-02-25"` |
  | `number`             | `<integer_value>`                        |           `13` |
  | `currency`           | `[<int_value_in_cents>, <currency_code>]`| `[998, "USD"]` |
  | `single` and `multi` | `[<choice_ids>]`                         |    `[1, 2, 4]` |

For [single or multi choice](/tag/Custom-Field-Choices) Custom Fields,
you can think of selected choice(s) as a list, even with only 1 selected choice. The list of values in your
request becomes the new list of selected choices. And the new choices all have new, unique choice IDs.

##### Note:
The `write_access` [permission setting on each custom field](https://mavenlink.zendesk.com/hc/en-us/articles/202924760#see)
determines the minimum permission needed to edit the value of each custom field.
* Editing `Workspace` (Project), `Resource`, and `Story` (Task) custom fields are project-specific changes,
so permissions are set at the project level:
- `project_collaboration`
- `time_logging`
- `financial`
- `project_admin` (default)

Most account-level permissions supercede project-level permissions. Therefore, Account Administrators
are able to edit all Project, Resource, and Task custom fields and values across the account,
regardless of project participation or `write_access` settings.
* Editing `Estimate`, `WorkspaceGroup` (Group), and `User` custom fields are account-wide changes,
so permissions are set at the account level:
- `account_collaboration`
- `project_creator`
- `project_lead`
- `reports_viewer`
- `reports_viewer_with_cost`
- `account_admin` (default).

## Response 200:

  - `200` (unknown)
    Custom Field Value has been updated.

## 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)

  - `custom_field_values` (object)

  - `external_references` (object)

  - `custom_fields` (object)

  - `users` (object)

  - `custom_field_choices` (object)

  - `stories` (object)

  - `workspaces` (object)

  - `workspace_groups` (object)

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 401:

  - `401` (unknown)
    Unauthorized request

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 403:

  - `403` (unknown)
    Forbidden request

## Response 403 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 404:

  - `404` (unknown)
    Page Not Found

## Response 404 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 422:

  - `422` (unknown)
    Unprocessable Entity

## Response 422 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 503:

  - `503` (unknown)
    Service is unavailable

## Response 503 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

