CustomFields API
Tenant-defined fields attached to contacts and conversations Base path:/api/v1/custom-fields
Endpoint count: 9
List custom field definitions
GET /api/v1/custom-fields/Get a custom field definition
GET /api/v1/custom-fields/{id}—
Scan dependents (segments / campaigns / flows / contacts)
GET /api/v1/custom-fields/{id}/dependencies—
Schema-explorer payload: definition + usage counts + last-10 PII-redacted sample values
GET /api/v1/custom-fields/{id}/explorer—
Create a custom field definition
POST /api/v1/custom-fields/Human-readable display name for the field, shown in the dashboard and on the contact detail view (1–200 characters).
Immutable machine name used to read and write the value through the API. Must be snake_case — lowercase letters, digits, and underscores, starting with a letter or underscore — and at most 40 characters. Cannot be changed after creation.
Data type of the field.
select and multiselect additionally require a non-empty options list.Optional help text explaining what the field captures (up to 2000 characters). Send
null to clear it.Choice list for
select / multiselect fields — required for those two types and ignored for the rest. Up to 100 values, each 1–200 characters.Optional value applied to contacts that have no explicit value set (up to 2000 characters).
Whether a value must be present for the field. Defaults to false.
Whether the field is indexed for contact search and segmentation. Defaults to false.
Optional JavaScript regular expression (no flags) enforced on string-shaped values at write time (up to 200 characters). Send
null to clear it.Optional inclusive lower bound — character length for text, numeric minimum for
number, or selection count for multiselect (0–1000000). Send null to clear it.Optional inclusive upper bound, mirror of
min_len. Must be greater than or equal to min_len (0–1000000). Send null to clear it.Optional allow-list of exact string values layered on top of the type — for
text / select / multiselect / user_ref only. Up to 500 values, each 1–200 characters. Send null to clear it.Reorder custom field definitions
POST /api/v1/custom-fields/reorderCustom-field definition ids in the desired top-to-bottom display order (1–500 ids). Unknown ids are ignored and any definitions omitted from the list keep their current order.
Set a custom-field value on a contact
PUT /api/v1/custom-fields/valuesId of the contact whose custom-field value is being set (1–128 characters).
Machine
key of the custom-field definition to write, in snake_case (up to 40 characters).Value to store for this field. Its JSON type must match the field’s declared
type — a string for text / select, a number for number, a boolean for boolean, an ISO-8601 string for date, or an array of strings for multiselect.Update a custom field definition
PATCH /api/v1/custom-fields/{id}—
Delete a custom field definition
DELETE /api/v1/custom-fields/{id}—