- field definitions are exposed as read-only metadata
- field values are stored in
custom_data - updates to
custom_datause partial merge semantics
1. Read field definitions
Use the dedicated definition endpoints to discover valid field keys and types before writing values.2. Read custom field values
Custom field values are returned in thecustom_data object on contact and company responses.
3. Update custom field values
PUT /contacts/{id} and PUT /companies/{id} merge custom_data into the existing object:
- sent keys are created or updated
- keys set to
nullare removed - omitted keys are preserved
4. Validation rules
The API validatescustom_data against the workspace definitions:
- unknown keys are rejected
selectvalues must match an allowed optionmultiselectvalues must all match allowed optionsnumber,currency,boolean,date,datetime,url, andemailvalues must match the field type- required fields cannot be removed with
null
5. Recommended integration flow
- Read definitions from
/contacts/custom-fieldsor/companies/custom-fields - Cache
key,type, andoptions - Read entities and inspect
custom_data - Send partial
custom_dataupdates only for the keys you want to change