Create Custom Field Definition
A new Custom Fields API endpoint is now available to create custom field definitions via a call to
POST /v3/CustomFields
Example Request:
JSONCopied!{
"Name": "Example Custom Field",
"Type": "Text",
"IsVisibleToContacts": true,
"IsVisibleToOrganizations": true
}
The following field types are currently supported:
- – Free-text inputJSONCopied!
Text
- – Numeric valueJSONCopied!
Number
- – Date valueJSONCopied!
Date
- – True/falseJSONCopied!
Boolean
- – Reference to a user profileJSONCopied!
Colleague
- – Single-select from a predefined list of optionsJSONCopied!
ListSingleSelect
- – Multi-select from a predefined list of optionsJSONCopied!
ListMultipleSelect
Fields created through this endpoint are specific to a single Karbon account and immediately available for assignment to Contacts and Organizations. Once created, field definitions are immutable and cannot be edited via public API. Custom field definitions can be deleted and re-created, but this will result in the loss of defined values on Contacts and Organizations.
Get Custom Field Definitions
The Custom Fields API can be queried to return all custom field definitions available to the current Karbon account using:
GET /v3/CustomFields
This endpoint returns metadata for each custom field, including its unique key, type, name, visibility settings, and available options (for list-based fields).
Example Response:
JSONCopied!{
"@odata.context": "https://api.karbonhq.com/v3/$metadata#CustomFields",
"@odata.count": 1,
"value": [
{
"Key": "4qYlgxTD2vWH",
"Name": "Example Custom Field",
"Type": "Text",
"IsVisibleToContacts": true,
"IsVisibleToOrganizations": true,
"ListOptions": []
}
]
}
The options for List fields (i.e.
ListSingleSelect
ListMultipleSelect
All field definitions returned are scoped to the current tenant and can be used when assigning or updating custom field values.
Update Custom Field Values
The Custom Field Values API can be used to update custom field values for a specific entity via:
PUT /v3/CustomFieldValues/{EntityKey}
This allows clients to assign or modify custom field values for a given Contact or Organization, including support for text, number, date, boolean, and list-based field types.
Example Request:
JSONCopied!{
"EntityKey": "4qYlgxTD2vWH",
"CustomFieldValues": [
{
"Key": "5zYFUxTB3BFa",
"Name": "Example Custom Field",
"Type": "Text",
"Value": [
"Updated value"
]
}
]
}
Values must match the expected data type for the field definition. For list-based fields, the
Value
Validation is enforced based on the field's type and configuration. If a value is invalid, the request will return a
400 Bad Request
Important: The entire set of values for a list field must be provided—partial updates will overwrite the supplied values and erase CustomValues that are not supplied.
Get Custom Field Values
The Custom Fields API can now be queried to retrieve all custom field values for a specific entity using:
GET /v3/CustomFieldValues/{EntityKey}
Example Response:
JSONCopied!{
"@odata.context": "https://api.karbonhq.com/v3/$metadata#CustomFieldValues/$entity",
"EntityKey": "4qYlgxTD2vWH",
"CustomFieldValueDTOs": [
{
"Key": "3LV59lQw56SC",
"Name": "Example Custom Field",
"Type": "Text",
"Value": ["Example value"]
}
]
}
Note: If the field has no value set, the Value property will return an empty array. For list-based fields, the Value array will contain the selected option key(s).
Delete Custom Field Definition
A custom field definition can be deleted by calling:
DELETE /v3/CustomFields/{CustomFieldDefinitionKey}
Note: This permanently removes the definition from the Karbon Account and prevents it from being used in future updates. This operation is irreversible and should only be used when the field is no longer needed.
Once deleted the field will no longer appear in the UI or API responses for definitions.
A
204 No Content