v1
latestOpenAPI 3.1.02026-07-26294215839.4 KBUpdate Goal (v1.1)
Update a goal's top-level fields and optionally add or delete milestones. Milestone handling is not a full replace or upsert: objects passed in milestones are always added as new milestones, even if their titles match existing milestones. To keep existing milestones unchanged while editing title, description, due date, sharing, or alignment, omit the milestones field. To remove milestones, pass their IDs in deletedMilestoneIds. There is no field for editing an existing milestone title in place. Note: Compared to "Update Goal (v1)", this version adds milestone updates.
OAuth Scopes: goal.write
Path parameters
The internal employee ID of the employee the goal is associated with.
goalId is the goal ID for the specified employee.
Request body
Example request
{
"title": "Edited Goal With Milestones",
"description": "Lets go!",
"dueDate": "2024-03-17",
"sharedWithEmployeeIds": [
1234,
5678
],
"milestonesEnabled": true,
"deletedMilestoneIds": [
490
]
}Response
A successful response indicates that all the requested changes were made. The content of the response will be the goal response object for the specified goalId.
Example response
{
"goal": {
"id": "4",
"title": "Complete Documentation Epic",
"description": "Document every endpoint for the goals API.",
"percentComplete": 78,
"dueDate": "2025-12-31",
"completionDate": "2025-12-17T10:30:00Z",
"lastChangedDateTime": "2025-12-17T10:30:00Z",
"status": "in_progress",
"milestones": [
{
"id": 2,
"employeeGoalId": 12,
"title": "Sell 15 Doohickeys",
"completedDateTime": "2025-04-10T15:36:38Z",
"lastUpdateDateTime": "2025-04-10T15:36:38Z",
"lastUpdateUserId": 24
}
],
"actions": {
"canEditGoalProgressBar": true
}
}
}