Sprints are available in the REST API in XML and JSON. Reading (index, show) needs the View issues permission and the Agile module enabled in the project. Creating, updating and deleting needs the Manage sprints permission (PRO). Pass the API key as ?key=YOUR_API_KEY or in the X-Redmine-API-Key header.
List sprints
GET /projects/PROJECT_ID/agile_sprints.xml GET /projects/PROJECT_ID/agile_sprints.json
| Parameter | Description |
|---|---|
name |
part of the sprint name |
status |
open, active or closed |
from |
sprints ending on or after this date |
to |
sprints starting on or before this date; together with from you get the sprints overlapping the interval |
include_shared |
1 adds sprints shared into the project from other projects |
limit, offset |
paging, default limit is 25 |
A date that cannot be parsed gives 422 Unprocessable Entity.
Example: GET /projects/agile/agile_sprints.json?status=active&include_shared=1&limit=10
{
"project_id": 1,
"project_name": "Agile",
"sprints": [
{
"id": 3,
"project_id": 1,
"name": "Sprint 46",
"description": "",
"start_date": "2026-10-19",
"end_date": "2026-10-30",
"status": "active",
"sharing": "none"
}
],
"total_count": 1,
"offset": 0,
"limit": 10
}
Show a sprint
GET /projects/PROJECT_ID/agile_sprints/SPRINT_ID.xml GET /projects/PROJECT_ID/agile_sprints/SPRINT_ID.json
The answer has the sprint fields and the sums over its visible issues: story_points, done_ratio and, for users who can view time entries, estimated_hours and spent_hours. Add ?include=issues to get the list of issues (id, subject, hours, story_points, done_ratio).
Example: GET /projects/agile/agile_sprints/3.json?include=issues
Create a sprint
POST /projects/PROJECT_ID/agile_sprints.json?key=YOUR_API_KEY
{
"agile_sprint": {
"name": "Sprint 46",
"start_date": "2026-10-19",
"end_date": "2026-10-30",
"status": 0,
"sharing": 0
}
}
status: 0 open, 1 active, 2 closed. sharing: 0 none, 1 descendants, 2 hierarchy, 3 tree, 4 system. The answer is 201 Created with the sprint. Sprint dates cannot overlap with other sprints of the project unless the sprint is shared or overlapping is allowed in the plugin settings; a sprint with open issues cannot be closed.
Update a sprint
PUT /projects/PROJECT_ID/agile_sprints/SPRINT_ID.json?key=YOUR_API_KEY
{
"agile_sprint": {
"name": "New name"
}
}
The answer is 204 No Content.
Delete a sprint
DELETE /projects/PROJECT_ID/agile_sprints/SPRINT_ID.json?key=YOUR_API_KEY
The issues of the deleted sprint stay, they are only unlinked from it.
Example: DELETE /projects/agile/agile_sprints/67.json
To assign an issue to a sprint see REST API Agile data. To read the history of issues, including sprint changes, see REST API issues timeline.