openapi: 3.1.0 info: title: ClickUp Goals API description: >- The ClickUp Goals API allows developers to create and manage goals within a Workspace. Goals can track progress toward objectives using targets based on numbers, currency, percentages, or task completion. The API supports creating goals, adding key results and targets, updating progress, and retrieving goal details. This is useful for building OKR tracking and reporting integrations. version: '2.0' contact: name: ClickUp Support url: https://help.clickup.com termsOfService: https://clickup.com/terms externalDocs: description: ClickUp Goals API Documentation url: https://developer.clickup.com/reference/get-goals servers: - url: https://api.clickup.com/api/v2 description: ClickUp API v2 Production Server tags: - name: Goals description: >- Operations for managing Goals and Key Results within a ClickUp Workspace. security: - bearerAuth: [] paths: /team/{team_id}/goal: get: operationId: getGoals summary: Get goals description: >- Retrieves all Goals within a Workspace, including their key results and progress information. tags: - Goals parameters: - $ref: '#/components/parameters/teamId' - name: include_completed in: query description: >- Include completed Goals in the response. schema: type: boolean default: false responses: '200': description: Successfully retrieved goals content: application/json: schema: type: object properties: goals: type: array items: $ref: '#/components/schemas/Goal' folders: type: array items: $ref: '#/components/schemas/GoalFolder' '401': description: Unauthorized post: operationId: createGoal summary: Create a goal description: >- Creates a new Goal within a Workspace. Goals can include a name, due date, description, assignees, and color. tags: - Goals parameters: - $ref: '#/components/parameters/teamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGoalRequest' responses: '200': description: Goal created successfully content: application/json: schema: type: object properties: goal: $ref: '#/components/schemas/Goal' '400': description: Bad request '401': description: Unauthorized /goal/{goal_id}: get: operationId: getGoal summary: Get a goal description: >- Retrieves details of a specific Goal, including its key results, targets, and progress. tags: - Goals parameters: - $ref: '#/components/parameters/goalId' responses: '200': description: Successfully retrieved goal content: application/json: schema: type: object properties: goal: $ref: '#/components/schemas/Goal' '401': description: Unauthorized '404': description: Goal not found put: operationId: updateGoal summary: Update a goal description: >- Updates the properties of an existing Goal. tags: - Goals parameters: - $ref: '#/components/parameters/goalId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateGoalRequest' responses: '200': description: Goal updated successfully content: application/json: schema: type: object properties: goal: $ref: '#/components/schemas/Goal' '400': description: Bad request '401': description: Unauthorized '404': description: Goal not found delete: operationId: deleteGoal summary: Delete a goal description: >- Permanently deletes a Goal and all of its key results. This action cannot be undone. tags: - Goals parameters: - $ref: '#/components/parameters/goalId' responses: '200': description: Goal deleted successfully '401': description: Unauthorized '404': description: Goal not found /goal/{goal_id}/key_result: post: operationId: createKeyResult summary: Create a key result description: >- Creates a new Key Result (target) within a Goal. Key Results can be of type number, currency, boolean, percentage, or automatic (based on task completion). tags: - Goals parameters: - $ref: '#/components/parameters/goalId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateKeyResultRequest' responses: '200': description: Key result created successfully content: application/json: schema: type: object properties: key_result: $ref: '#/components/schemas/KeyResult' '400': description: Bad request '401': description: Unauthorized '404': description: Goal not found /key_result/{key_result_id}: put: operationId: editKeyResult summary: Edit a key result description: >- Updates the properties and progress of an existing Key Result. tags: - Goals parameters: - $ref: '#/components/parameters/keyResultId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateKeyResultRequest' responses: '200': description: Key result updated successfully content: application/json: schema: type: object properties: key_result: $ref: '#/components/schemas/KeyResult' '400': description: Bad request '401': description: Unauthorized '404': description: Key result not found delete: operationId: deleteKeyResult summary: Delete a key result description: >- Permanently deletes a Key Result from a Goal. tags: - Goals parameters: - $ref: '#/components/parameters/keyResultId' responses: '200': description: Key result deleted successfully '401': description: Unauthorized '404': description: Key result not found components: securitySchemes: bearerAuth: type: http scheme: bearer description: >- ClickUp personal API token or OAuth access token. parameters: teamId: name: team_id in: path required: true description: >- The unique identifier of the Workspace (team). schema: type: integer goalId: name: goal_id in: path required: true description: >- The unique identifier of the Goal. schema: type: string keyResultId: name: key_result_id in: path required: true description: >- The unique identifier of the Key Result. schema: type: string schemas: Goal: type: object description: >- A Goal object representing an objective with trackable key results. properties: id: type: string description: >- The unique identifier of the Goal. name: type: string description: >- The name of the Goal. team_id: type: string description: >- The Workspace ID. date_created: type: string description: >- Unix timestamp when the Goal was created. start_date: type: string nullable: true description: >- Unix timestamp for the Goal start date. due_date: type: string description: >- Unix timestamp for the Goal due date. description: type: string nullable: true description: >- The description of the Goal. private: type: boolean description: >- Whether the Goal is private. archived: type: boolean description: >- Whether the Goal is archived. creator: type: integer description: >- The user ID of the Goal creator. color: type: string description: >- The hex color code of the Goal. pretty_id: type: string description: >- The human-readable ID of the Goal. multiple_owners: type: boolean description: >- Whether the Goal has multiple owners. folder_id: type: string nullable: true description: >- The Goal Folder ID, if the Goal is in a folder. members: type: array items: type: object description: >- Members associated with the Goal. owners: type: array items: type: object description: >- Owners of the Goal. key_results: type: array items: $ref: '#/components/schemas/KeyResult' description: >- Key Results (targets) associated with the Goal. percent_completed: type: integer minimum: 0 maximum: 100 description: >- The overall completion percentage of the Goal. history: type: array items: type: object description: >- History of changes to the Goal. pretty_url: type: string format: uri description: >- The URL to the Goal in the ClickUp web application. KeyResult: type: object description: >- A Key Result (target) within a Goal. properties: id: type: string description: >- The unique identifier of the Key Result. goal_id: type: string description: >- The Goal ID this Key Result belongs to. name: type: string description: >- The name of the Key Result. creator: type: integer description: >- The user ID of the Key Result creator. type: type: string enum: - number - currency - boolean - percentage - automatic description: >- The type of the Key Result target. date_created: type: string description: >- Unix timestamp when the Key Result was created. goal_pretty_id: type: string description: >- The human-readable ID of the parent Goal. percent_completed: type: integer minimum: 0 maximum: 100 description: >- The completion percentage of the Key Result. completed: type: boolean description: >- Whether the Key Result is completed. task_ids: type: array items: type: string description: >- Task IDs linked to this Key Result for automatic tracking. list_ids: type: array items: type: string description: >- List IDs linked to this Key Result for automatic tracking. owners: type: array items: type: object description: >- Owners of the Key Result. steps_start: type: number description: >- The starting value of the Key Result. steps_end: type: number description: >- The target end value of the Key Result. steps_current: type: number description: >- The current value of the Key Result. unit: type: string description: >- The unit of measurement for currency type Key Results. last_action: type: object description: >- Details of the last action performed on the Key Result. GoalFolder: type: object description: >- A folder for organizing Goals. properties: id: type: string description: >- The folder ID. name: type: string description: >- The folder name. team_id: type: string description: >- The Workspace ID. private: type: boolean description: >- Whether the folder is private. date_created: type: string description: >- Unix timestamp when the folder was created. creator: type: integer description: >- The user ID of the folder creator. goal_count: type: integer description: >- The number of Goals in the folder. goals: type: array items: $ref: '#/components/schemas/Goal' description: >- Goals within the folder. CreateGoalRequest: type: object required: - name - due_date description: >- Request body for creating a new Goal. properties: name: type: string description: >- The name of the Goal. due_date: type: integer format: int64 description: >- Due date as Unix timestamp in milliseconds. description: type: string description: >- The description of the Goal. multiple_owners: type: boolean description: >- Whether the Goal has multiple owners. owners: type: array items: type: integer description: >- Array of user IDs to set as owners. color: type: string description: >- The hex color code of the Goal. UpdateGoalRequest: type: object description: >- Request body for updating an existing Goal. properties: name: type: string description: >- The updated name of the Goal. due_date: type: integer format: int64 description: >- Updated due date as Unix timestamp in milliseconds. description: type: string description: >- The updated description. rem_owners: type: array items: type: integer description: >- User IDs to remove as owners. add_owners: type: array items: type: integer description: >- User IDs to add as owners. color: type: string description: >- The updated hex color code. CreateKeyResultRequest: type: object required: - name - type description: >- Request body for creating a new Key Result. properties: name: type: string description: >- The name of the Key Result. owners: type: array items: type: integer description: >- User IDs to set as owners. type: type: string enum: - number - currency - boolean - percentage - automatic description: >- The type of the Key Result target. steps_start: type: number description: >- The starting value. steps_end: type: number description: >- The target end value. unit: type: string description: >- The unit of measurement for currency type. task_ids: type: array items: type: string description: >- Task IDs to link for automatic tracking. list_ids: type: array items: type: string description: >- List IDs to link for automatic tracking. UpdateKeyResultRequest: type: object description: >- Request body for updating an existing Key Result. properties: steps_current: type: number description: >- The current progress value. note: type: string description: >- A note to add with the update.