---
title: "Get Goals Aggregate (v1.2)"
method: GET
path: "/api/v1_2/performance/employees/{employeeId}/goals/aggregate"
tags: ["Goals", "Public API"]
---

# Get Goals Aggregate (v1.2)

`GET /api/v1_2/performance/employees/{employeeId}/goals/aggregate`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1_2/performance/employees/{employeeId}/goals/aggregate`
- Auth: one of:
  - HTTP basic
  - OAuth 2
    - Authorization code: `/authorize.php`
    - Token URL: `/token.php` scopes: `goal`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1_2/performance/employees/:employeeId/goals/aggregate/get.ts> (a function with typed inputs; its response is checked against the schema)

Provides a goals dashboard for an employee: goals matching the selected filter, status filter counts/actions, comment counts, and people shared with or commenting on those goals. This v1.2 endpoint includes milestone-based goals in the returned goal list. Use the optional `filter` query parameter to control which statuses are included; use `status-all` when the user asks for a complete dashboard across active, completed, and closed goals. Note: Compared to "Get Goals Aggregate (v1.1)", this version returns goals that contain milestones.

OAuth Scopes: goal

## Path parameters

- `employeeId` string, required

## Query parameters

- `filter` string

## Response `200`

The response content will be a JSON object with the requested information.

- object
  - `canAlign` boolean: The selected user can align goals with other users.
  - `canCreateGoals` boolean: The selected user can create a goal.
  - `filters` GoalFiltersV11: Array containing goal filters, their counts, and actions
    - `filters` object[]: Array of goal filter objects with counts
      - `id` 'status-inProgress' | 'status-completed' | 'status-closed': Filter identifier based on goal status.
      - `name` 'In Progress' | 'Completed' | 'Closed': Display name of the filter
      - `count` integer: Number of goals matching this filter
      - `actions` object: Available actions for goals in this state, defined by PerformanceDefinitions::GOAL_FILTER_ACTIONS
        - `canCloseGoal` boolean: Whether goals in this state can be closed
        - `canEditGoal` boolean: Whether goals in this state can be edited
        - `canEditGoalProgressBar` boolean: Whether progress bar can be edited for goals in this state
        - `canReopenGoal` boolean: Whether goals in this state can be reopened
        - `canShareGoal` boolean: Whether goals in this state can be shared
  - `selectedFilter` string: The id of the current selected filter.
  - `goals` TransformedApiGoal[]: All goals in selected filter.
    - `id` string: The id of the goal.
    - `title` string: Title of the goal.
    - `description` string: A description of the goal.
    - `percentComplete` integer: A percentage (0-100) that denotes how complete the goal is.
    - `alignsWithOptionId` string, nullable: The ID of the goal this goal is aligned with. Returns null when not aligned, or an empty string when the goal has no parent set.
    - `sharedWithEmployeeIds` integer[]: Ids of the employees that have access to this goal.
    - `dueDate` string: The due date of the goal.
    - `completionDate` string, nullable: ISO 8601 UTC timestamp of when the goal was completed.
    - `lastChangedDateTime` string, nullable: ISO 8601 UTC timestamp of when the goal was last modified.
    - `status` 'in_progress' | 'completed' | 'closed': The status of the goal.
    - `milestones` object[], nullable: All milestones for the individual goal. This array will not exist if milestones are not selected for this goal.
      - `id` integer: The id of the milestone.
      - `employeeGoalId` integer: The id of the goal which encompasses this milestone.
      - `title` string: The title of the milestone.
      - `currentValue` number, nullable: The current value for a numeric milestone. This number will be rounded to the nearest hundredth. On the creation of a numeric milestone this value will automatically be set to the start value of the milestone. If the milestone is a simple checkbox milestone, this value will always be null.
      - `startValue` number, nullable: The starting value for a numeric milestone. This number will be rounded to the nearest hundredth. If the milestone is a simple checkbox milestone, this value will always be null.
      - `endValue` number, nullable: The end goal for a numeric milestone. This number will be rounded to the nearest hundredth. If the milestone is a simple checkbox milestone, this value will always be null.
      - `completedDateTime` string: The date and time in which the goal has been completed. If the goal is not completed the value will be null.
      - `lastUpdateDateTime` string: The date and time in which the goal was last updated.
      - `lastUpdateUserId` integer: The ID of the user who last updated this milestone.
    - `actions` object, nullable: Actions that are available to a goal with milestones enabled. This object will not appear on a goal without milestones.
      - `canEditGoalProgressBar` boolean: Can the user edit the progress bar of this goal.
      - `canEditGoalMilestoneProgressBar` boolean: can the user edit the progress of a milestone in this goal.
  - `persons` object[]: A list of people with access to the goal.
    - `employeeId` integer: The internal employee ID of this employee.
    - `userId` integer: The user id of the person if applicable.
    - `displayFirstName` string: First name of the person.
    - `lastName` string: Last name of the person.
    - `photoUrl` string: url of the user profile image.
  - `comments` object[]: A list of how many comments belong to each goal.
    - `goalId` string: The goalId that the comments are linked to.
    - `commentCount` integer: How many comments are linked to the goal

## Other responses

- `403`: The authenticated caller does not have permission to view goals for this employee.

## Changes

- **2026-11-03** `922fc15f43a7`: 1 info
  - api operation id `get-goals-aggregate-v1.2` removed and replaced with `get-goals-aggregate-v1_2`

[Operation history](https://skmtc.dev/bamboohr/apis/bamboohr-api/changes/api/v1_2/performance/employees/:employeeId/goals/aggregate/get.md)

---

[API](https://skmtc.dev/bamboohr/apis/bamboohr-api.md) - [All operations](https://skmtc.dev/bamboohr/apis/bamboohr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bamboohr/apis/bamboohr-api/revisions/922fc15f43a7?raw)
