Appearance
Sprints API
Sprints are timeboxed iterations within a project. Only one sprint can be active per project at a time.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/projects/{projectId}/sprints | List sprints |
POST | /api/projects/{projectId}/sprints | Create a sprint |
PUT | /api/projects/{projectId}/sprints/{sprintId} | Update a sprint |
POST | /api/projects/{projectId}/sprints/complete | Complete active sprint |
DELETE | /api/projects/{projectId}/sprints/{sprintId} | Delete a sprint |
Create Sprint
POST /api/projects/{projectId}/sprints
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Sprint name, max 255 characters |
start | date | Yes | Start date (YYYY-MM-DD) |
end | date | Yes | End 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
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Sprint name, max 255 characters |
start | date | Yes | Start date (YYYY-MM-DD) |
end | date | Yes | End date, must be after start |
status | integer | Yes | 0 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
| Field | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Project ID |
sprint_id | integer | No | Target 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
| Value | Label | Description |
|---|---|---|
0 | Planned | Created but not yet started |
1 | Active | Currently running (one per project) |
2 | Completed | Finished and archived |
See Also
- Issues API — Assign issues to sprints via
sprint_id - Projects API — Project that owns the sprints
- Sprints guide — Sprint workflows in the UI