Update project phase
Updates an existing project phase. All fields must be provided (full replacement).
Required fields:
name: Updated display nameicon: Updated icon identifiertype: Phase type enum value (new, inProgress, done)translations: Complete translations array (all languages)
Optional fields:
description: Updated description (can be null)
Note: This is a full update operation. Use PATCH endpoint if you only want to update specific fields. Changing the phase type will affect which Kanban column opportunities appear in.
PUT
/administration/project-settings/phases/{id}Authorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:writeor
AuthorizationBearer token (JWT) · headerrequiredPath parameters
idstringrequiredRequest body
requiredapplication/jsondescriptionobjectDescription of the project phase
iconstringIcon for the project phase in format :icon_name:
namestringName of the project phase
translationsProjectPhaseTranslationDto[]Translations for the project phase
Show propertiesHide properties
Array of
ProjectPhaseTranslationDtodescriptionobjectTranslated description of the project phase in this language. Provides context about when to use this phase.
languagestringrequiredISO 639-1 language code for the translation (e.g., "en" for English, "de" for German)
nameobjectTranslated name of the project phase in this language. Used for multilingual display in the user interface.
typestringType of the project phase
Allowed:
newinProgressdoneResponses
200Project phase updated successfully
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X PUT "https://leadtime.app/api/public/administration/project-settings/phases/string" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "Initial planning and requirement gathering phase",
"icon": ":calendar:",
"name": "Planning",
"translations": [
{
"description": "Project planning and preparation phase",
"language": "en",
"name": "Planning"
}
],
"type": "new"
}'const response = await fetch("https://leadtime.app/api/public/administration/project-settings/phases/string", {
method: "PUT",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"description": "Initial planning and requirement gathering phase",
"icon": ":calendar:",
"name": "Planning",
"translations": [
{
"description": "Project planning and preparation phase",
"language": "en",
"name": "Planning"
}
],
"type": "new"
})
});import requests
response = requests.put(
"https://leadtime.app/api/public/administration/project-settings/phases/string",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"description": "Initial planning and requirement gathering phase",
"icon": ":calendar:",
"name": "Planning",
"translations": [
{
"description": "Project planning and preparation phase",
"language": "en",
"name": "Planning"
}
],
"type": "new"
},
)Response
Project phase updated successfully
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions