Custom fields let you extend contacts, companies, and projects with your own data. Define text, number, date, boolean, or dropdown fields and use them across your CRM.
Field Type Description iduuid Unique identifier of the custom field definition account_iduuid ID of the account that owns this definition entity_typestring Record type this field attaches to One of: contact, company, project, deal labelstring Human-readable field label shown in the UI field_typestring Data type of the field One of: text, number, date, boolean, enum optionsobject Allowed values as a JSON string array; non-empty for enum fields, otherwise empty requiredbool Whether a value must be provided when saving the record display_orderint Sort position of the field within its entity type (ascending) created_atdatetime Creation timestamp (ISO 8601)
Endpoint: custom-fields-create
Field Type Required Description entity_typestring Yes Record type this field attaches to One of: contact, company, project, deal labelstring Yes Human-readable field label shown in the UI field_typestring Yes Data type of the field One of: text, number, date, boolean, enum optionsobject No Allowed values as a JSON string array; required and non-empty for enum field_type requiredbool No Whether a value must be provided when saving the record display_orderint No Sort position of the field within its entity type (ascending)
curl -X POST https://api.driftwoodapp.com/api/custom-fields-create \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"entity_type": "...", "label": "...", "field_type": "..."} '
Endpoint: custom-fields-delete
Field Type Required Description idstring Yes ID of the custom field definition to delete
curl -X POST https://api.driftwoodapp.com/api/custom-fields-delete \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: custom-fields-get
Field Type Required Description idstring Yes ID of the custom field definition to retrieve
curl -X POST https://api.driftwoodapp.com/api/custom-fields-get \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: custom-fields-list
Field Type Required Description entity_typestring No Filter definitions by record type; omit to list all One of: contact, company, project, deal
curl -X POST https://api.driftwoodapp.com/api/custom-fields-list \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: custom-fields-update
Field Type Required Description idstring Yes ID of the custom field definition to update labelstring? No New field label; omit to leave unchanged optionsobject? No New allowed values as a JSON string array; non-empty required for enum fields. Omit to leave unchanged requiredbool? No Whether a value is required; omit to leave unchanged display_orderint? No New sort position; omit to leave unchanged
curl -X POST https://api.driftwoodapp.com/api/custom-fields-update \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Code Description custom_fields.invalid_entity_typeInvalid entity type custom_fields.label_requiredLabel required custom_fields.invalid_field_typeInvalid field type custom_fields.options_requiredOptions required custom_fields.invalid_idInvalid id custom_fields.not_foundNot found