📄️ Update an existing milestone
Updates an existing milestone with the provided data. Milestone must exist, belong to the tenant, and not be archived.
📄️ Get a milestone by ID
Retrieves a single milestone by its ID with full detail including linked work items. Milestone must belong to the authenticated tenant.
📄️ Delete a milestone
Permanently deletes a milestone and removes all its work item links. The work items themselves are not deleted.
📄️ Reopen a completed milestone
Reopens a completed milestone by clearing the completed date.
📄️ Unlink a work item from a milestone
Removes the link between a work item and a milestone. Does not delete the work item itself. Idempotent — if the link does not exist, returns success.
📄️ Get all milestones for a project
Retrieves a filtered and paginated list of milestones for the specified project, including milestones under any of the project's phases. Ordered by target date ascending.
📄️ Create a new milestone for a project
Creates a new milestone for the specified project. If phaseId is provided, the milestone is owned by that phase (which must belong to the project). Otherwise, the milestone is owned directly by the project.
📄️ Mark a milestone as completed
Marks a milestone as Completed by stamping the completed date. An optional completedDate can be provided; otherwise defaults to UTC now. Idempotent — calling on an already-completed milestone returns the current state.
📄️ Archive or unarchive a milestone
Archives or unarchives a milestone based on the isArchived flag in the request body. When isArchived is true, the milestone is archived. When isArchived is false, the milestone is unarchived.
📄️ Link a work item to a milestone
Links a work item to a milestone. The work item must belong to the same project context as the milestone. If the link already exists, returns success (idempotent).