• Backlog
  • Board
  • Epic
  • Issue
  • Sprint
  • Development Information
  • Feature Flags
  • Deployments
  • Builds
  • Security Information
  • Operations
  • DevOps Components
Cloud
Jira Software Cloud / Reference / REST API

Sprint

Postman Collection
OpenAPI
POST

Create sprint

Creates a future sprint. Sprint name and origin board id are required. Start date, end date, and goal are optional. Note that the sprint name is trimmed. Also, when starting sprints from the UI, the "endDate" set through this call is ignored and instead the last sprint's duration is used to fill the form.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredWRITE

write:sprint:jira-software

Request

Request bodyapplication/json

endDate

string

goal

string

name

string

originBoardId

integer

startDate

string

Responses

Created sprint

application/json

any

POST/rest/agile/1.0/sprint
1 2 3 4 5 6 7 8 9 10 11 12 curl --request POST \ --url 'https://your-domain.atlassian.net/rest/agile/1.0/sprint' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "endDate": "2015-04-20T01:22:00.000+10:00", "goal": "sprint 1 goal", "name": "sprint 1", "originBoardId": 5, "startDate": "2015-04-11T15:22:00.000+10:00" }'
201Response
1 2 3 4 5 6 7 8 9 10 { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/23", "state": "future", "name": "sprint 1", "startDate": "2015-04-11T15:22:00.000+10:00", "endDate": "2015-04-20T01:22:00.000+10:00", "originBoardId": 5, "goal": "sprint 1 goal" }
GET

Get sprint

Returns the sprint for a given sprint ID. The sprint will only be returned if the user can view the board that the sprint was created on, or view at least one of the issues in the sprint.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredREAD

read:sprint:jira-software

Request

Path parameters

sprintId

integer

Required

Responses

Returns the requested sprint.

application/json

any

GET/rest/agile/1.0/sprint/{sprintId}
1 2 3 4 curl --request GET \ --url 'https://your-domain.atlassian.net/rest/agile/1.0/sprint/{sprintId}' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/23", "state": "closed", "name": "sprint 1", "startDate": "2015-04-11T15:22:00.000+10:00", "endDate": "2015-04-20T01:22:00.000+10:00", "completeDate": "2015-04-20T11:04:00.000+10:00", "originBoardId": 5, "goal": "sprint 1 goal" }
PUT

Update sprint

Performs a full update of a sprint. A full update means that the result will be exactly the same as the request body. Any fields not present in the request JSON will be set to null.

Notes:

  • For closed sprints, only the name and goal can be updated; changes to other fields will be ignored.
  • A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set.
  • A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request.
  • Other changes to state are not allowed.
  • The completeDate field cannot be updated manually.
Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredWRITE

write:sprint:jira-software

Request

Path parameters

sprintId

integer

Required

Request bodyapplication/json

completeDate

string

createdDate

string

endDate

string

goal

string

id

integer

name

string

originBoardId

integer

self

string

startDate

string

state

string

Responses

Updated sprint

application/json

any

PUT/rest/agile/1.0/sprint/{sprintId}
1 2 3 4 5 6 7 8 9 10 11 12 13 curl --request PUT \ --url 'https://your-domain.atlassian.net/rest/agile/1.0/sprint/{sprintId}' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "completeDate": "2015-04-20T11:11:28.008+10:00", "endDate": "2015-04-16T14:01:00.000+10:00", "goal": "sprint 1 goal", "name": "sprint 1", "startDate": "2015-04-11T15:36:00.000+10:00", "state": "closed" }'
200Response
1 2 3 4 5 6 7 8 9 10 11 { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/23", "state": "closed", "name": "sprint 1", "startDate": "2015-04-11T15:22:00.000+10:00", "endDate": "2015-04-20T01:22:00.000+10:00", "completeDate": "2015-04-20T11:04:00.000+10:00", "originBoardId": 5, "goal": "sprint 1 goal" }
POST

Partially update sprint

Performs a partial update of a sprint. A partial update means that fields not present in the request JSON will not be updated.

Notes:

  • For closed sprints, only the name and goal can be updated; changes to other fields will be ignored.
  • A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set.
  • A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request.
  • Other changes to state are not allowed.
  • The completeDate field cannot be updated manually.
Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredWRITE

write:sprint:jira-software

Request

Path parameters

sprintId

integer

Required

Request bodyapplication/json

completeDate

string

createdDate

string

endDate

string

goal

string

id

integer

name

string

originBoardId

integer

self

string

startDate

string

state

string

Responses

Updated sprint

application/json

any

POST/rest/agile/1.0/sprint/{sprintId}
1 2 3 4 5 6 7 8 curl --request POST \ --url 'https://your-domain.atlassian.net/rest/agile/1.0/sprint/{sprintId}' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "name": "new name" }'
200Response
1 2 3 4 5 6 7 8 9 10 11 { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/23", "state": "closed", "name": "sprint 1", "startDate": "2015-04-11T15:22:00.000+10:00", "endDate": "2015-04-20T01:22:00.000+10:00", "completeDate": "2015-04-20T11:04:00.000+10:00", "originBoardId": 5, "goal": "sprint 1 goal" }
DEL

Delete sprint

Deletes a sprint. Once a sprint is deleted, all open issues in the sprint will be moved to the backlog.

Data Security Policy: Not exempt from app access rules
Scopes

Connect app scope requiredDELETE

delete:sprint:jira-software

Request

Path parameters

sprintId

integer

Required

Responses

Returned if the sprint was deleted successfully

DEL/rest/agile/1.0/sprint/{sprintId}
1 2 3 curl --request DELETE \ --url 'https://your-domain.atlassian.net/rest/agile/1.0/sprint/{sprintId}' \ --header 'Authorization: Bearer <access_token>'
GET

Get issues for sprint

Returns all issues in a sprint, for a given sprint ID. This only includes issues that the user has permission to view. By default, the returned issues are ordered by rank.

Data Security Policy: Not exempt from app access rules
Scopes

Connect app scope requiredREAD

read:sprint:jira-software
, read:issue-details:jira, read:jql:jira

Request

Path parameters

sprintId

integer

Required

Query parameters

startAt

integer

maxResults

integer

jql

string

validateQuery

boolean

fields

array<object>

expand

string

Responses

Returns the requested issues, at the specified page of the results.

application/json

any

GET/rest/agile/1.0/sprint/{sprintId}/issue
1 2 3 4 curl --request GET \ --url 'https://your-domain.atlassian.net/rest/agile/1.0/sprint/{sprintId}/issue' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 { "expand": "", "fields": { "flagged": true, "sprint": { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/13", "state": "future", "name": "sprint 2", "goal": "sprint 2 goal" }, "closedSprints": [ { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/23", "state": "closed", "name": "sprint 1", "startDate": "2015-04-11T15:22:00.000+10:00", "endDate": "2015-04-20T01:22:00.000+10:00", "completeDate": "2015-04-20T11:04:00.000+10:00", "goal": "sprint 1 goal" } ], "description": "example bug report", "project": { "avatarUrls": { "16x16": "https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000", "24x24": "https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000", "32x32": "https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000", "48x48": "https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000" }, "id": "10000", "insight": { "lastIssueUpdateTime": "2021-04-22T05:37:05.000+0000", "totalIssueCount": 100 }, "key": "EX", "name": "Example", "projectCategory": { "description": "First Project Category", "id": "10000", "name": "FIRST", "self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000" }, "self": "https://your-domain.atlassian.net/rest/api/3/project/EX", "simplified": false, "style": "classic" }, "comment": [ { "author": { "accountId": "5b10a2844c20165700ede21g", "active": false, "displayName": "Mia Krystof", "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g" }, "body": { "type": "doc", "version": 1, "content": [ { "type": "paragraph", "content": [ { "type": "text", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget venenatis elit. Duis eu justo eget augue iaculis fermentum. Sed semper quam laoreet nisi egestas at posuere augue semper." } ] } ] }, "created": "2021-01-17T12:34:00.000+0000", "id": "10000", "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000", "updateAuthor": { "accountId": "5b10a2844c20165700ede21g", "active": false, "displayName": "Mia Krystof", "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g" }, "updated": "2021-01-18T23:45:00.000+0000", "visibility": { "identifier": "Administrators", "type": "role", "value": "Administrators" } } ], "epic": { "id": 37, "self": "https://your-domain.atlassian.net/rest/agile/1.0/epic/23", "name": "epic 1", "summary": "epic 1 summary", "color": { "key": "color_4" }, "done": true }, "worklog": [ { "author": { "accountId": "5b10a2844c20165700ede21g", "active": false, "displayName": "Mia Krystof", "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g" }, "comment": { "type": "doc", "version": 1, "content": [ { "type": "paragraph", "content": [ { "type": "text", "text": "I did some work here." } ] } ] }, "id": "100028", "issueId": "10002", "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000", "started": "2021-01-17T12:34:00.000+0000", "timeSpent": "3h 20m", "timeSpentSeconds": 12000, "updateAuthor": { "accountId": "5b10a2844c20165700ede21g", "active": false, "displayName": "Mia Krystof", "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g" }, "updated": "2021-01-18T23:45:00.000+0000", "visibility": { "identifier": "276f955c-63d7-42c8-9520-92d01dca0625", "type": "group", "value": "jira-developers" } } ], "updated": 1, "timetracking": { "originalEstimate": "10m", "originalEstimateSeconds": 600, "remainingEstimate": "3m", "remainingEstimateSeconds": 200, "timeSpent": "6m", "timeSpentSeconds": 400 } }, "id": "10001", "key": "HSP-1", "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/92/issue/10001" }
POST

Move issues to sprint and rank

Moves issues to a sprint, for a given sprint ID. Issues can only be moved to open or active sprints. The maximum number of issues that can be moved in one operation is 50.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredWRITE

write:sprint:jira-software

Request