Custom fields let you extend contacts and companies with additional data fields specific to your business. Define field schemas, then set values on individual records.
Field Type Description iduuid Unique identifier account_iduuid Account this field belongs to entity_typestring contact or companylabelstring Display label field_typestring Data type: text, number, date, boolean, enum optionsstring[] | null Allowed values (enum fields only) requiredboolean Whether the field is required display_orderinteger Sort order for UI display created_atdatetime Creation timestamp
Type Value Format Example textString "Enterprise"numberNumber 42dateYYYY-MM-DD string "2025-06-01"booleanBoolean trueenumString (from options) "gold"
Endpoint: custom-fields-list
Field Type Required Description entity_typestring No Filter by entity type (contact or company)
curl -X POST https://api.driftwoodapp.com/api/custom-fields-list \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"entity_type": "contact"} '
Endpoint: custom-fields-get
Field Type Required Description iduuid Yes Custom field definition ID
Endpoint: custom-fields-create
Field Type Required Description entity_typestring Yes contact or companylabelstring Yes Display label field_typestring Yes text, number, date, boolean, or enumoptionsstring[] Conditional Required for enum fields requiredboolean No Default: false display_orderinteger No Default: 0
curl -X POST https://api.driftwoodapp.com/api/custom-fields-create \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
"entity_type": "contact",
"options": ["bronze", "silver", "gold", "platinum"],
Endpoint: custom-fields-update
Field Type Required Description iduuid Yes Definition ID labelstring No New label optionsstring[] No New options (enum only) requiredboolean No Update required flag display_orderinteger No Update sort order
Endpoint: custom-fields-delete
Field Type Required Description iduuid Yes Definition ID
When creating or updating contacts and companies, pass custom field values as a JSON object keyed by the field definition ID:
curl -X POST https://api.driftwoodapp.com/api/contacts-create \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
"field-def-uuid-for-tier": "gold",
"field-def-uuid-for-score": 95
Code Description custom_fields.invalid_requestMalformed request body custom_fields.invalid_idInvalid UUID format custom_fields.not_foundDefinition does not exist custom_fields.invalid_entity_typeMust be: contact, company custom_fields.label_requiredLabel is required custom_fields.invalid_field_typeMust be: text, number, date, boolean, enum custom_fields.options_requiredEnum fields require options custom_fields.internalServer error