Deze referentie is alleen in het Engels. Naar het Nederlandse REST API-overzicht

Diese Referenz gibt es nur auf Englisch. Zur deutschen REST-API-Übersicht

Cette référence existe uniquement en anglais. Aller à la présentation de l'API REST en français

Esta referencia solo está en inglés. Ir a la introducción de la API REST en español

POST/sprints/{sprint}/actions/complete

Complete a sprint

POSThttps://<your-url>/api/v2/sprints/{sprint}/actions/complete

MCP id sprints.actions.complete

View as Markdown openapi.json

Closes a sprint: clears is_active and stamps completed_at with the current time, then disposes of the sprint's unresolved work items (those whose workflow status is not a resolution) according to unresolved_work_items.

Access

Token scope
api:write:project_management

Without it: 403 insufficient-token-scope.

Permission
project_management::manage_sprints

Without it: 403 insufficient-permission.

Rate cost
1 unit, write bucket. A write costs the same whatever view you ask for.
Also
Accepts Idempotency-Key. Accepts If-Match. Never cached: private, no-store. Unknown body keys are refused, never dropped.

Both are checked, scope first. A token never does more than its user. How access is checked

Resolved items always stay on the completed sprint, whichever strategy is chosen, so the closed sprint keeps its delivery history. move_to_next_sprint additionally requires next_sprint_id, which must name a not-yet-completed sprint on the same project other than this one; anything else is 422 unprocessable-relationship pointing at /next_sprint_id. A sprint that is already completed refuses with 409 state-conflict and conflict.reason already_completed, and one that was never started refuses the same way with not_started. Each moved item is saved on its own, so its audit trail records the move and its version is bumped (a client holding their ETags must re-read them), but no per-item notification is sent. Returns the sprint in the detail view; work_items_count reflects what is left on it.

Path parameters

sprintintegerRequired

The Sprint's numeric id.

Query parameters

Unknown parameters are refused with 400, naming the parameter.

viewstring

Which field set to render.

summarydetaildefault

Request headers

X-Request-Idstringpattern

A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.

If-Matchstring

The ETag a write is conditional on. A stale validator is 412 precondition-failed.

Idempotency-Keystring≤ 255

A caller-chosen key that makes this POST safe to retry. Replaying it returns the original response with Idempotency-Replayed: true.

Request body

Unknown keys are refused with 422, naming the key.

unresolved_work_itemsstringRequired

What happens to the sprint's unresolved work items.

move_to_next_sprint
Move the unresolved items onto the sprint named by next_sprint_id, which is required for this strategy and must be a not-yet-completed sprint on the same project.
move_to_backlog
Detach the unresolved items from every sprint, so they return to the project backlog.
leave_on_sprint
Leave the unresolved items on the sprint being completed, so the closed sprint keeps them for its history.

New values may be added.

next_sprint_idinteger or null → Sprint.id

Sprint that receives the unresolved work items. Required, and only used, with move_to_next_sprint; it must be a not-yet-completed sprint on the same project.

Required when unresolved_work_items, move_to_next_sprint.

Response 200

Returns a Sprint in the detail view.

Headers

ETag
A strong validator of exactly this representation.
Idempotency-Replayed
true when this response was replayed from a stored Idempotency-Key rather than produced by a new write.
RateLimit
The IETF httpapi-ratelimit-headers form of your remaining allowance on the tightest bucket this request touched.
RateLimit-Policy
The ceiling and window of that bucket, as <limit>;w=<seconds>.
X-Request-Id
The server-generated ULID correlating this response with our logs.

Every response also carries Cache-Control, Vary, X-Content-Type-Options, X-Plnnrly-Api-Version, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Headers and versioning

Errors

7 errors every operation can return: 400, 401, 404, 406, 429, 500, 503

This path allows POST. Anything else answers 405.