v1

latestOpenAPI 3.1.02026-07-26294215839.4 KB
Goals
Public API

Update Goal Progress

Update the progress percentage of a simple, non-milestone goal. Do not use this endpoint for goals that contain milestones; BambooHR derives percent complete for milestone-based goals from milestone completion and will reject manual percent updates with a 400 response (UPDATE_GOAL_WITH_MILESTONE_PROGRESS_ERROR). For milestone-based goals, use update-goal-milestone-progress to mark individual milestones complete or incomplete.

OAuth Scopes: goal.write

put/api/v1/performance/employees/{employeeId}/goals/{goalId}/progress

Path parameters

employeeIdstring required

The internal employee ID of the employee the goal is associated with.

goalIdstring required

goalId is the goal ID for the specified employee.

Request body

percentCompleteinteger required

The percentage of completion for the goal (0-100)

completionDatestring date nullable

The date when the goal was completed in YYYY-MM-DD format. Required when percentComplete is 100.

Example request

{
  "percentComplete": 100,
  "completionDate": "2025-04-11"
}

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
    }
  }
}