Update a custom field definition
const url = 'https://projects.work.optidata.cloud/api/boards/1/custom-fields/definitions/1';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"Business priority","is_required":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://projects.work.optidata.cloud/api/boards/1/custom-fields/definitions/1 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "Business priority", "is_required": true }'Updates the definition’s name, description, config, required flag or
active flag. The field type (and board_id) cannot be changed —
sending them returns 422.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Board id.
Custom field definition id.
Request Bodyrequired
Section titled “Request Bodyrequired”Partial update. type and board_id are immutable (sending them fails validation).
object
Example
{ "name": "Business priority", "is_required": true}Responses
Section titled “Responses”The updated definition.
Definition of a custom field. board_id null (and is_global true) means tenant-wide.
object
Type-specific configuration. Examples — text: {multiline, max_length, placeholder, default_value};
select: {options: [{id, label, color}]}; checkbox: {default_value}.
Required fields block card interactions (comments, files, timers) until filled.
Example
{ "type": "text"}Missing, invalid or expired bearer passport.
object
Example
{ "error": "JWT passport exception: Missing bearer token in request"}The authenticated user lacks the required board permission.
object
Example
{ "message": "This action is unauthorized."}Resource not found, or a nested resource does not belong to its parent in the path.
object
Example
{ "message": "Not found."}Validation failed.
object
First validation error message.
Map of field name → list of error messages.
object
Example
{ "message": "The name field is required.", "errors": { "name": [ "The name field is required." ] }}