Skip to content

Sprint reports API

Sprint reports

GET /api/v1/organizations/{organizationSlug}/projects/{projectKey}/sprints/{sprintId}/report returns the delivery report for a Sprint. It requires a PAT with project:read, Organization membership, and access to the addressed Project. A Sprint from another Project or Organization is returned as 404 NOT_FOUND.

Terminal window
curl -H "Authorization: Bearer $HAMSTIK_TOKEN" \
"https://hamstik.com/api/v1/organizations/$ORG_SLUG/projects/$PROJECT_KEY/sprints/$SPRINT_ID/report"

Parameters and response

The path parameters identify the Organization, Project, and Sprint. The optional query parameters are:

  • limit — number of scope-change and carryover feed entries to return, from 1 to 100; the default is 50.
  • cursor — the opaque cursor from the previous response’s page.nextCursor.

The response contains sprint, mode (completed, active, or future), stable, commitment, plannedScope, completion, scopeChanges, carryover, statuses, burndown, remaining, items, and the standard page object. items is the cursor-paginated combined feed of additions, removals, and carryover. The complete report metrics are returned on every page.

stable is true for completed Sprints when the bounded historical inputs were fully read. Completed reports use the Sprint state-transition timestamp as their reporting boundary and are reconstructed from append-only Work Item history and the immutable commitment baseline. Active reports use the current reporting boundary. Future reports have no completion boundary and do not synthesize a burndown. Any bounded-input or reconstruction limitation is listed in limitations.

Metric definitions

  • commitment is the item and point baseline captured at Sprint start. It is not recalculated from current Work Item estimates.
  • completion.originalCommitment counts distinct Work Items committed at or before Sprint start. completion.finalScope counts distinct commitment episodes still in scope at the reporting boundary, including additions and excluding removals made before completion; a completion-time close remains in final scope as carryover. completion.completed counts items that reached done during a commitment episode for this Sprint.
  • completion.percentages.finalScope is completed items/points divided by final-scope items/points. completion.percentages.originalCommitment uses the original-commitment denominators. A zero denominator is null; percentages are rounded to the nearest whole percent.
  • scopeChanges.added and scopeChanges.removed use the recorded commitment/removal event time after Sprint start. A removal made by Sprint completion is represented as carryover instead of a scope removal.
  • carryover contains unfinished items at completed-Sprint completion and identifies destination.kind as backlog or sprint, with the destination Sprint ID and name when applicable. Active and future Sprints return an empty carryover list.
  • burndown.points is the daily remaining committed-point series reconstructed from status history using UTC calendar boundaries. burndown.display adds the ideal line for rendering. available is false when required commitment baselines or history are incomplete.
  • statuses is the end-of-Sprint distribution across the final scope, ordered by the canonical Work Item status order, with item and recorded point totals.
  • remaining is final-scope work not counted as completed. For active Sprints it describes remaining or at-risk work; it is not carryover.

The report never includes per-assignee completion. Capacity reporting is the appropriate source for that view.

In the private application, a selected Sprint report can be saved by name. The saved configuration retains the Sprint selection, can be reopened, renamed, deleted, pinned to the Project overview, or shared as a URL with another user who already has access to the Project. Saved names and pins are private to their owner; the URL does not bypass Organization or Project authorization.

The machine-readable path, parameters, schemas, scopes, errors, and pagination contract are authoritative in the OpenAPI document.