---
title: "Update a custom field."
method: PUT
path: "/contact_custom_fields/{custom_field_id}"
tags: ["Contacts Custom Fields"]
---

# Update a custom field.

`PUT /contact_custom_fields/{custom_field_id}`

Update an existing custom field.

## Path parameters

- `custom_field_id` string, required

## Request body

- CustomFieldPutRequest
  - `label` string — The custom field name to display in the UI (free-form text).
  - `choices` CustomFieldChoicePutRequest[] — Array of choices for custom fields of type: <code>single_select</code> or <code>multi_select</code>. Maximum number of elements for <code>checkbox</code> and <code>radio</code> display types is 20. Maximum number of elements for a <code>dropdown</code> is 100.
    - `choice_id` integer — The ID that uniquely identifies the choice.
    - `choice_label` string — Label to display for the choice on the user interface.
    - `display_order` integer — Stores the order for displaying a list of choices.

## Response `200`

Success - custom_field updated

- CustomField — Custom fields details.
  - `custom_field_id` string, uuid — The system generated ID that uniquely identifies a <code>custom_field</code>.
  - `label` string, required — The custom field name to display in the UI (free-form text).
  - `name` string — The unique custom field name constructed from the label by replacing blanks with underscores.
  - `type` string, required — The data value type the custom field accepts.
  - `metadata` CustomFieldMetadata — Additional details about a custom field in JSON format.
    - `display_type` string — Determines how Constant Contact renders a <code>single_select</code> or <code> multi_select</code> field.
    - `allow_negative` boolean — For type <code>number</code>, determines if a value can be negative. By default, this value is false for the type <code>number</code>.
    - `decimal_places` integer — For types <code>number</code> and <code>currency</code>, determines the number of decimal places possible in the value.
    - `currency_code` string — For type <code>currency</code>, specifies the three-letter currency code to assign.
    - `integer` boolean — For types <code>number</code> and <code>currency</code>, determines whether the custom field should store only whole numbers (integers) without decimal values. If the <code>integer</code> is set to <code>false</code>, the <code>decimal_places</code> must be between 1 and 4.
    - `display_format` string — Specifies the display format for date fields in the user interface. If not specified for a date type field, defaults to <code>YYYY-MM-DD</code> format. Valid only for version 2 type dates (values are stored as actual dates to support date comparisons and validations).
  - `version` integer — For <code>datetime</code> data types, this is the version number associated with the custom field.
  - `choices` CustomFieldChoice[] — Choices available for <code>single_select</code> and <code>multi_select</code> type custom fields. The maximum number of elements for <code>radio</code> or <code>checkbox</code> display types is 20. Maximum number of elements for a <code>dropdown</code> is 100.
    - `custom_field_id` string, uuid — The ID that uniquely identifies a custom field.
    - `choice_id` integer — The ID that uniquely identifies the choice identifier.
    - `choice_label` string — Label to display for the choice on the user interface.
    - `display_order` integer — Stores the order for displaying a list of choices.
    - `created_at` string, date-time — Date and time that the record was created, in ISO-8601 format. System generated.
    - `updated_at` string, date-time — Date and time that the record was updated, in ISO-8601 format. System generated.
    - `deleted_at` string, date — Date the choice was deleted, in ISO-8601 format. System generated.
  - `updated_at` string, date-time — System generated date and time that the resource was updated, in ISO-8601 format.
  - `created_at` string, date-time — Date and time that the resource was created, in ISO-8601 format. System generated.

## Other responses

- `400` — Bad request. Either the JSON was malformed or there was a data validation error.
- `401` — The Access Token used is invalid.
- `403` — Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
- `404` — The requested resource was not found.
- `500` — There was a problem with our internal service.
- `503` — Our internal service is temporarily unavailable.

---

[API](https://skmtc.net/cc/apis/appconnect-v3.md) · [All operations](https://skmtc.net/cc/apis/appconnect-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cc/appconnect-v3/versions/4b4a534c818d/schema)
