Update a custom field

PATCH
/custom-fields/{id}

Updates a custom field. Only the attributes you send are changed (partial update / merge semantics); omitted attributes keep their current values.

type and entity are fixed once the field is created and are ignored if supplied.

For select fields, options is treated as the desired full set. Each entry is an object with a value: include an id (an opt_-prefixed option id) to rename that existing option, omit the id to create a new option, and any existing option absent from the payload is removed — it is no longer offered, but values already recorded against it are preserved. An id that belongs to a different field is rejected. Supplying options on a non-select field is rejected, as is an empty desired set that would leave a select field with no options.

Path Parameters

id*string

ID of the custom field (e.g. fld_9fKbV3aQx7).

Header Parameters

Idempotency-Key?string

Client-generated key for idempotent writes; the server deduplicates retries within a 24-hour window.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

name?string

The field's question or prompt as shown to customers when they fill it in.

label?string | null

Optional internal name used to identify the field in the dashboard; not shown to customers.

hint?string | null

Helper text shown alongside the field.

options?array<object>

Desired full set of choices for a select field. Entries with id update an existing option, entries without id create one, and omitted existing options are removed.

object
id?string

Prefixed option ID (opt_...) of the option to update. Omit to create a new option.

value*string

The option's display value.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/custom-fields/string" \  -H "Easol-API-Version: 2026-11-01" \  -H "Content-Type: application/json" \  -d '{}'
{
  "object": "custom_field",
  "id": "fld_aBcDeFgHiJ",
  "name": "string",
  "label": "string",
  "hint": "string",
  "type": "text",
  "entity": "guest",
  "options": [
    {
      "id": "string",
      "value": "string"
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}