Skip to main content
Custom fields let each workspace store extra CRM data on contacts and companies. In the public API:
  • field definitions are exposed as read-only metadata
  • field values are stored in custom_data
  • updates to custom_data use partial merge semantics

1. Read field definitions

Use the dedicated definition endpoints to discover valid field keys and types before writing values.
Example response:

2. Read custom field values

Custom field values are returned in the custom_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 null are removed
  • omitted keys are preserved
If the contact already had:
the result becomes:

4. Validation rules

The API validates custom_data against the workspace definitions:
  • unknown keys are rejected
  • select values must match an allowed option
  • multiselect values must all match allowed options
  • number, currency, boolean, date, datetime, url, and email values must match the field type
  • required fields cannot be removed with null
  1. Read definitions from /contacts/custom-fields or /companies/custom-fields
  2. Cache key, type, and options
  3. Read entities and inspect custom_data
  4. Send partial custom_data updates only for the keys you want to change