Create task custom field
Creates a new custom field for tasks. All fields are required.
Step-by-step process:
- Provide a default name and description (used as fallback when no translation exists)
- Select the field type (Text, TextArea, Number, Date, Checkbox, Select, or MultiSelect)
- For Select or MultiSelect types, provide select options with default values
- Add multilingual translations for field name, description, and select options
- The field will be available to assign to task types
Field types:
- Text: Short text entries (e.g., “Responsible reviewer”)
- TextArea: Longer text entries (e.g., “Audit result”)
- Number: Numeric values
- Date: Date values
- Checkbox: Yes/No information
- Select: Single selection from predefined options (requires selectOptions)
- MultiSelect: Multiple selections from predefined options (requires selectOptions)
Multilingual support: Provide translations for field name, description, and select options. Leadtime automatically displays the correct text based on the user language.
Note: After creation, assign this custom field to specific task types to make it appear in task forms.
POST
/administration/task-settings/custom-fieldsAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:writeor
AuthorizationBearer token (JWT) · headerrequiredQuery parameters
fieldsToReturnstringComma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestringAdvanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
compactfullHeader parameters
LT-Response-ShapestringAdvanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
fullRequest body
requiredapplication/jsondescriptionstringrequiredDefault custom field description (used as fallback when no translation exists for user's language)
idstringCustom field ID (optional for create)
namestringrequiredDefault custom field name (used as fallback when no translation exists for user's language)
selectOptionsFieldOptionDto[]requiredSelect options (required for Select and MultiSelect types)
Show propertiesHide properties
Array of
FieldOptionDtoidobjectOption ID
translationsCustomFieldTranslationDto[]requiredLanguage-specific translations for this option. Overrides the default value when user's language matches.
Show propertiesHide properties
Array of
CustomFieldTranslationDtolanguagestringrequiredLanguage code following ISO 639-1 format (e.g., "en", "de", "fr")
namestringrequiredTranslated name for this language. Overrides the default name when user's language matches.
valuestringrequiredDefault option value (used as fallback when no translation exists for user's language)
translationsCustomFieldTranslationDto[]requiredLanguage-specific translations for field name. Overrides the default name when user's language matches.
Show propertiesHide properties
Array of
CustomFieldTranslationDtolanguagestringrequiredLanguage code following ISO 639-1 format (e.g., "en", "de", "fr")
namestringrequiredTranslated name for this language. Overrides the default name when user's language matches.
translationsDescriptionsCustomFieldTranslationDto[]requiredLanguage-specific translations for field description. Overrides the default description when user's language matches.
Show propertiesHide properties
Array of
CustomFieldTranslationDtolanguagestringrequiredLanguage code following ISO 639-1 format (e.g., "en", "de", "fr")
namestringrequiredTranslated name for this language. Overrides the default name when user's language matches.
typestringrequiredCustom field type
Allowed:
TextTextareaNumberDateCheckboxSelectMultiSelectCurrencyUrlResponses
201Task custom field created successfully
descriptionobject | nullrequiredDefault custom field description (used as fallback when no translation exists for user's language)
entitystringrequiredEntity type (always Task for task custom fields)
Allowed:
TaskProjectOrganizationObjectidstringrequiredCustom field ID
namestringrequiredDefault custom field name (used as fallback when no translation exists for user's language)
selectOptionsFieldOptionDto[]requiredSelect options with their translations. Each option has a default value and language-specific overrides.
Show propertiesHide properties
Array of
FieldOptionDtoidobjectOption ID
translationsCustomFieldTranslationDto[]requiredLanguage-specific translations for this option. Overrides the default value when user's language matches.
Show propertiesHide properties
Array of
CustomFieldTranslationDtolanguagestringrequiredLanguage code following ISO 639-1 format (e.g., "en", "de", "fr")
namestringrequiredTranslated name for this language. Overrides the default name when user's language matches.
valuestringrequiredDefault option value (used as fallback when no translation exists for user's language)
sortnumberrequiredSort order
translationsCustomFieldTranslationDto[]requiredLanguage-specific translations for field name. Overrides the default name when user's language matches.
Show propertiesHide properties
Array of
CustomFieldTranslationDtolanguagestringrequiredLanguage code following ISO 639-1 format (e.g., "en", "de", "fr")
namestringrequiredTranslated name for this language. Overrides the default name when user's language matches.
typestringrequiredCustom field type
Allowed:
TextTextareaNumberDateCheckboxSelectMultiSelectCurrencyUrl401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X POST "https://leadtime.app/api/public/administration/task-settings/custom-fields" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "Task priority level",
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Priority",
"selectOptions": [
{
"id": "1",
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"value": "High"
}
],
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"translationsDescriptions": [
{
"language": "en",
"name": "Priority"
}
],
"type": "Select"
}'const response = await fetch("https://leadtime.app/api/public/administration/task-settings/custom-fields", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"description": "Task priority level",
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Priority",
"selectOptions": [
{
"id": "1",
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"value": "High"
}
],
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"translationsDescriptions": [
{
"language": "en",
"name": "Priority"
}
],
"type": "Select"
})
});import requests
response = requests.post(
"https://leadtime.app/api/public/administration/task-settings/custom-fields",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"description": "Task priority level",
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Priority",
"selectOptions": [
{
"id": "1",
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"value": "High"
}
],
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"translationsDescriptions": [
{
"language": "en",
"name": "Priority"
}
],
"type": "Select"
},
)Response
{
"description": "Task priority level",
"entity": "Task",
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Priority",
"selectOptions": [
{
"id": "1",
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"value": "High"
}
],
"sort": 1,
"translations": [
{
"language": "en",
"name": "Priority"
}
],
"type": "Select"
}Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions