Skip to content

Sprints API

Sprints are timeboxed iterations within a project. Only one sprint can be active per project at a time.

Endpoints

MethodEndpointDescription
GET/api/projects/{projectId}/sprintsList sprints
POST/api/projects/{projectId}/sprintsCreate a sprint
PUT/api/projects/{projectId}/sprints/{sprintId}Update a sprint
POST/api/projects/{projectId}/sprints/completeComplete active sprint
DELETE/api/projects/{projectId}/sprints/{sprintId}Delete a sprint

Create Sprint

POST /api/projects/{projectId}/sprints

Request Fields

FieldTypeRequiredDescription
titlestringYesSprint name, max 255 characters
startdateYesStart date (YYYY-MM-DD)
enddateYesEnd date (YYYY-MM-DD), must be after start
bash
curl -X POST https://{tenant}.kendo.dev/api/projects/1/sprints \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Sprint 12",
    "start": "2026-03-17",
    "end": "2026-03-28"
  }'
json
{
  "id": 12,
  "project_id": 1,
  "issue_ids": [],
  "title": "Sprint 12",
  "status": 0,
  "start": "2026-03-17",
  "end": "2026-03-28"
}

Update Sprint

PUT /api/projects/{projectId}/sprints/{sprintId}

Request Fields

FieldTypeRequiredDescription
titlestringYesSprint name, max 255 characters
startdateYesStart date (YYYY-MM-DD)
enddateYesEnd date, must be after start
statusintegerYes0 Planned, 1 Active, 2 Completed
bash
curl -X PUT https://{tenant}.kendo.dev/api/projects/1/sprints/12 \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Sprint 12",
    "start": "2026-03-17",
    "end": "2026-03-28",
    "status": 1
  }'
json
{
  "id": 12,
  "project_id": 1,
  "issue_ids": [42, 43, 44],
  "title": "Sprint 12",
  "status": 1,
  "start": "2026-03-17",
  "end": "2026-03-28"
}

Complete Sprint

POST /api/projects/{projectId}/sprints/complete

Completes the active sprint. Optionally moves unfinished issues to a new sprint.

Request Fields

FieldTypeRequiredDescription
project_idintegerYesProject ID
sprint_idintegerNoTarget sprint for unfinished issues (null = back to backlog)
bash
curl -X POST https://{tenant}.kendo.dev/api/projects/1/sprints/complete \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": 1,
    "sprint_id": 13
  }'
json
{
  "id": 12,
  "project_id": 1,
  "issue_ids": [42, 43, 44],
  "title": "Sprint 12",
  "status": 2,
  "start": "2026-03-17",
  "end": "2026-03-28"
}

Delete Sprint

DELETE /api/projects/{projectId}/sprints/{sprintId}

Returns 204 No Content. Issues in the sprint are unassigned from it (not deleted).

bash
curl -X DELETE https://{tenant}.kendo.dev/api/projects/1/sprints/12 \
  -H "Authorization: Bearer your-token"

Enums

Status

ValueLabelDescription
0PlannedCreated but not yet started
1ActiveCurrently running (one per project)
2CompletedFinished and archived

See Also