Backlog
Board
Epic
Issue
Sprint
Development Information
Feature Flags
Deployments
Builds
Remote Links
Security Information
Other operations

Rate this page:

Board

Apis related to boards

Create board

POST /rest/agile/1.0/board

Creates a new board. Board name, type and filter ID is required.

  • name - Must be less than 255 characters.
  • type - Valid values: scrum, kanban
  • filterId - ID of a filter that the user has permissions to view. Note, if the user does not have the 'Create shared objects' permission and tries to create a shared board, a private board will be created instead (remember that board sharing depends on the filter sharing).
  • location - The container that the board will be located in. location must include the type property (Valid values: project, user). If choosing 'project', then a project must be specified by a projectKeyOrId property in location. If choosing 'user', the current user is chosen by default. The projectKeyOrId property should not be provided.

Note:

Connect app scope requiredWRITE

write:board-scope:jira-software

Request

Body parameters
name

string

type

string

Valid values: kanban, scrum, agility

filterId

integer

Format: int64
location

object

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl --request POST \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
  "filterId": 10040,
  "name": "scrum board",
  "location": {
    "projectKeyOrId": "10000",
    "type": "project"
  },
  "type": "scrum"
}'

Responses

Returns the created board.

Content typeValue
application/json

object

Example response (application/json)

1
2
3
4
5
6
{
  "id": 84,
  "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/84",
  "name": "scrum board",
  "type": "scrum"
}

Get board by filter id

GET /rest/agile/1.0/board/filter/{filterId}

Returns any boards which use the provided filter id. This method can be executed by users without a valid software license in order to find which boards are using a particular filter.

Connect app scope requiredREAD

read:board-scope.admin:jira-software

Request

Path parameters
filterId Required

integer

Filters results to boards that are relevant to a filter. Not supported for next-gen boards.

Format: int64
Query parameters
startAt

integer

The starting index of the returned boards. Base index: 0. See the 'Pagination' section at the top of this page for more details.

Format: int64
maxResults

integer

The maximum number of boards to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details.

Format: int32

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/filter/{filterId}' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

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

Content typeValue
application/json

object

Example response (application/json)

1
2
3
4
5
{
  "id": 84,
  "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/84",
  "name": "scrum board"
}

Get board

GET /rest/agile/1.0/board/{boardId}

Returns the board for the given board ID. This board will only be returned if the user has permission to view it. Admins without the view permission will see the board as a private one, so will see only a subset of the board's data (board location for instance).

Connect app scope requiredREAD

read:board-scope:jira-software
, read:issue-details:jira

Request

Path parameters
boardId Required

integer

The ID of the requested board.

Format: int64

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

Returns the requested board.

Content typeValue
application/json

object

Example response (application/json)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "id": 84,
  "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/84",
  "name": "scrum board",
  "type": "scrum",
  "location": {
    "projectId": 10040,
    "userId": 10040,
    "userAccountId": "5b10a2844c20165700ede21g",
    "displayName": "Example Project",
    "projectName": "Example Project",
    "projectKey": "Example Project Key",
    "projectTypeKey": "KEY",
    "name": "Example Project"
  }
}

Delete board

DELETE /rest/agile/1.0/board/{boardId}

Deletes the board. Admin without the view permission can still remove the board.

Connect app scope requiredDELETE

write:board-scope:jira-software

Request

Path parameters
boardId Required

integer

ID of the board to be deleted

Format: int64

Example

1
2
3
curl --request DELETE \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}' \
  --header 'Authorization: Bearer <access_token>'

Responses

Returned if the board has been successfully removed.

Get issues for backlog

GET /rest/agile/1.0/board/{boardId}/backlog

Returns all issues from the board's backlog, for the given board ID. This only includes issues that the user has permission to view. The backlog contains incomplete issues that are not assigned to any future or active sprint. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank.

Connect app scope requiredREAD

read:board-scope:jira-software
, read:issue-details:jira

Request

Path parameters
boardId Required

integer

The ID of the board that has the backlog containing the requested issues.

Format: int64
Query parameters
startAt

integer

The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details.

Format: int64
maxResults

integer

The maximum number of issues to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated.

Format: int32
jql

string

Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues.
Note that username and userkey can't be used as search terms for this parameter due to privacy reasons. Use accountId instead.

validateQuery

boolean

Specifies whether to validate the JQL query or not. Default: true.

fields

Array<object>

The list of fields to return for each issue. By default, all navigable and Agile fields are returned.

expand

string

This parameter is currently not used.

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/backlog' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

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

Content typeValue
application/json

SearchResults

Example response (application/json)

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
156
157
158
159
160
161
162
163
{
  "expand": "names,schema",
  "startAt": 0,
  "maxResults": 50,
  "total": 1,
  "issues": [
    {
      "expand": "",
      "id": "10001",
      "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/92/issue/10001",
      "key": "HSP-1",
      "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": {
          "self": "https://your-domain.atlassian.net/rest/api/3/project/EX",
          "id": "10000",
          "key": "EX",
          "name": "Example",
          "avatarUrls": {
            "48x48": "https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000",
            "24x24": "https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000",
            "16x16": "https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000",
            "32x32": "https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000"
          },
          "projectCategory": {
            "self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000",
            "id": "10000",
            "name": "FIRST",
            "description": "First Project Category"
          },
          "simplified": false,
          "style": "classic",
          "insight": {
            "totalIssueCount": 100,
            "lastIssueUpdateTime": "2022-11-15T23:15:20.052+0000"
          }
        },
        "comment": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000",
            "id": "10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "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."
                    }
                  ]
                }
              ]
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "created": "2021-01-17T12:34:00.000+0000",
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "role",
              "value": "Administrators",
              "identifier": "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": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "comment": {
              "type": "doc",
              "version": 1,
              "content": [
                {
                  "type": "paragraph",
                  "content": [
                    {
                      "type": "text",
                      "text": "I did some work here."
                    }
                  ]
                }
              ]
            },
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "group",
              "value": "jira-developers",
              "identifier": "276f955c-63d7-42c8-9520-92d01dca0625"
            },
            "started": "2021-01-17T12:34:00.000+0000",
            "timeSpent": "3h 20m",
            "timeSpentSeconds": 12000,
            "id": "100028",
            "issueId": "10002"
          }
        ],
        "updated": 1,
        "timetracking": {
          "originalEstimate": "10m",
          "remainingEstimate": "3m",
          "timeSpent": "6m",
          "originalEstimateSeconds": 600,
          "remainingEstimateSeconds": 200,
          "timeSpentSeconds": 400
        }
      }
    }
  ]
}

Get configuration

GET /rest/agile/1.0/board/{boardId}/configuration

Get the board configuration. The response contains the following fields:

  • id - ID of the board.
  • name - Name of the board.
  • filter - Reference to the filter used by the given board.
  • location - Reference to the container that the board is located in. Includes the container type (Valid values: project, user).
  • subQuery (Kanban only) - JQL subquery used by the given board.
  • columnConfig - The column configuration lists the columns for the board, in the order defined in the column configuration. For each column, it shows the issue status mapping as well as the constraint type (Valid values: none, issueCount, issueCountExclSubs) for the min/max number of issues. Note, the last column with statuses mapped to it is treated as the "Done" column, which means that issues in that column will be marked as already completed.
  • estimation (Scrum only) - Contains information about type of estimation used for the board. Valid values: none, issueCount, field. If the estimation type is "field", the ID and display name of the field used for estimation is also returned. Note, estimates for an issue can be updated by a PUT /rest/api/3/issue/{issueIdOrKey} request, however the fields must be on the screen. "timeoriginalestimate" field will never be on the screen, so in order to update it "originalEstimate" in "timetracking" field should be updated.
  • ranking - Contains information about custom field used for ranking in the given board.

Connect app scope requiredREAD

read:board-scope.admin:jira-software
, read:project:jira

Request

Path parameters
boardId Required

integer

The ID of the board for which configuration is requested.

Format: int64

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/configuration' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

Returns the configuration of the board for given boardId.

Content typeValue
application/json

object

Example response (application/json)

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
{
  "id": 10000,
  "name": "Board",
  "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/84/config",
  "location": {
    "type": "project",
    "key": "PROJ",
    "id": "10010",
    "self": "https://your-domain.atlassian.net/rest/api/3/project/10010",
    "name": "name"
  },
  "filter": {
    "id": "1001",
    "self": "https://your-domain.atlassian.net/filter/1001"
  },
  "columnConfig": {
    "columns": [
      {
        "name": "To Do",
        "statuses": [
          {
            "id": "1",
            "self": "https://your-domain.atlassian.net/status/1"
          },
          {
            "id": "4",
            "self": "https://your-domain.atlassian.net/status/4"
          }
        ]
      },
      {
        "name": "In progress",
        "statuses": [
          {
            "id": "3",
            "self": "https://your-domain.atlassian.net/status/3"
          }
        ],
        "min": 2,
        "max": 4
      },
      {
        "name": "Done",
        "statuses": [
          {
            "id": "5",
            "self": "https://your-domain.atlassian.net/status/5"
          }
        ]
      }
    ],
    "constraintType": "issueCount"
  },
  "estimation": {
    "type": "field",
    "field": {
      "fieldId": "customfield_10002",
      "displayName": "Story Points"
    }
  },
  "ranking": {
    "rankCustomFieldId": 10020
  }
}

Get epics

GET /rest/agile/1.0/board/{boardId}/epic

Returns all epics from the board, for the given board ID. This only includes epics that the user has permission to view. Note, if the user does not have permission to view the board, no epics will be returned at all.

Connect app scope requiredREAD

read:epic:jira-software

Request

Path parameters
boardId Required

integer

The ID of the board that contains the requested epics.

Format: int64
Query parameters
startAt

integer

The starting index of the returned epics. Base index: 0. See the 'Pagination' section at the top of this page for more details.

Format: int64
maxResults

integer

The maximum number of epics to return per page. See the 'Pagination' section at the top of this page for more details.

Format: int32
done

string

Filters results to epics that are either done or not done. Valid values: true, false.

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/epic' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

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

Content typeValue
application/json

anything

Example response (application/json)

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
{
  "maxResults": 2,
  "startAt": 1,
  "total": 5,
  "isLast": false,
  "values": [
    {
      "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
    },
    {
      "id": 37,
      "self": "https://your-domain.atlassian.net/rest/agile/1.0/epic/13",
      "name": "epic 2",
      "summary": "epic 2 summary",
      "color": {
        "key": "color_2"
      },
      "done": false
    }
  ]
}

Get issues without epic for board

GET /rest/agile/1.0/board/{boardId}/epic/none/issue

Returns all issues that do not belong to any epic on a board, for a given board ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank.

Connect app scope requiredREAD

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

Request

Path parameters
boardId Required

integer

The ID of the board that contains the requested issues.

Format: int64
Query parameters
startAt

integer

The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details.

Format: int64
maxResults

integer

The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated.

Format: int32
jql

string

Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues.
Note that username and userkey can't be used as search terms for this parameter due to privacy reasons. Use accountId instead.

validateQuery

boolean

Specifies whether to validate the JQL query or not. Default: true.

fields

Array<object>

The list of fields to return for each issue. By default, all navigable and Agile fields are returned.

expand

string

A comma-separated list of the parameters to expand.

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/epic/none/issue' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

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

Content typeValue
application/json

anything

Example response (application/json)

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
156
157
158
159
160
161
162
163
{
  "expand": "names,schema",
  "startAt": 0,
  "maxResults": 50,
  "total": 1,
  "issues": [
    {
      "expand": "",
      "id": "10001",
      "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/92/issue/10001",
      "key": "HSP-1",
      "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": {
          "self": "https://your-domain.atlassian.net/rest/api/3/project/EX",
          "id": "10000",
          "key": "EX",
          "name": "Example",
          "avatarUrls": {
            "48x48": "https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000",
            "24x24": "https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000",
            "16x16": "https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000",
            "32x32": "https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000"
          },
          "projectCategory": {
            "self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000",
            "id": "10000",
            "name": "FIRST",
            "description": "First Project Category"
          },
          "simplified": false,
          "style": "classic",
          "insight": {
            "totalIssueCount": 100,
            "lastIssueUpdateTime": "2022-11-15T23:15:20.052+0000"
          }
        },
        "comment": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000",
            "id": "10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "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."
                    }
                  ]
                }
              ]
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "created": "2021-01-17T12:34:00.000+0000",
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "role",
              "value": "Administrators",
              "identifier": "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": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "comment": {
              "type": "doc",
              "version": 1,
              "content": [
                {
                  "type": "paragraph",
                  "content": [
                    {
                      "type": "text",
                      "text": "I did some work here."
                    }
                  ]
                }
              ]
            },
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "group",
              "value": "jira-developers",
              "identifier": "276f955c-63d7-42c8-9520-92d01dca0625"
            },
            "started": "2021-01-17T12:34:00.000+0000",
            "timeSpent": "3h 20m",
            "timeSpentSeconds": 12000,
            "id": "100028",
            "issueId": "10002"
          }
        ],
        "updated": 1,
        "timetracking": {
          "originalEstimate": "10m",
          "remainingEstimate": "3m",
          "timeSpent": "6m",
          "originalEstimateSeconds": 600,
          "remainingEstimateSeconds": 200,
          "timeSpentSeconds": 400
        }
      }
    }
  ]
}

Get board issues for epic

GET /rest/agile/1.0/board/{boardId}/epic/{epicId}/issue

Returns all issues that belong to an epic on the board, for the given epic ID and the board ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank.

Connect app scope requiredREAD

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

Request

Path parameters
boardId Required

integer

The ID of the board that contains the requested issues.

Format: int64
epicId Required

integer

The ID of the epic that contains the requested issues.

Format: int64
Query parameters
startAt

integer

The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details.

Format: int64
maxResults

integer

The maximum number of issues to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated.

Format: int32
jql

string

Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues.

validateQuery

boolean

Specifies whether to validate the JQL query or not. Default: true.

fields

Array<object>

The list of fields to return for each issue. By default, all navigable and Agile fields are returned.

expand

string

A comma-separated list of the parameters to expand.

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/epic/{epicId}/issue' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

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

Content typeValue
application/json

anything

Example response (application/json)

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
156
157
158
159
160
161
162
163
{
  "expand": "names,schema",
  "startAt": 0,
  "maxResults": 50,
  "total": 1,
  "issues": [
    {
      "expand": "",
      "id": "10001",
      "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/92/issue/10001",
      "key": "HSP-1",
      "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": {
          "self": "https://your-domain.atlassian.net/rest/api/3/project/EX",
          "id": "10000",
          "key": "EX",
          "name": "Example",
          "avatarUrls": {
            "48x48": "https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000",
            "24x24": "https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000",
            "16x16": "https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000",
            "32x32": "https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000"
          },
          "projectCategory": {
            "self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000",
            "id": "10000",
            "name": "FIRST",
            "description": "First Project Category"
          },
          "simplified": false,
          "style": "classic",
          "insight": {
            "totalIssueCount": 100,
            "lastIssueUpdateTime": "2022-11-15T23:15:20.052+0000"
          }
        },
        "comment": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000",
            "id": "10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "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."
                    }
                  ]
                }
              ]
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "created": "2021-01-17T12:34:00.000+0000",
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "role",
              "value": "Administrators",
              "identifier": "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": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "comment": {
              "type": "doc",
              "version": 1,
              "content": [
                {
                  "type": "paragraph",
                  "content": [
                    {
                      "type": "text",
                      "text": "I did some work here."
                    }
                  ]
                }
              ]
            },
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "group",
              "value": "jira-developers",
              "identifier": "276f955c-63d7-42c8-9520-92d01dca0625"
            },
            "started": "2021-01-17T12:34:00.000+0000",
            "timeSpent": "3h 20m",
            "timeSpentSeconds": 12000,
            "id": "100028",
            "issueId": "10002"
          }
        ],
        "updated": 1,
        "timetracking": {
          "originalEstimate": "10m",
          "remainingEstimate": "3m",
          "timeSpent": "6m",
          "originalEstimateSeconds": 600,
          "remainingEstimateSeconds": 200,
          "timeSpentSeconds": 400
        }
      }
    }
  ]
}

Get features for board

GET /rest/agile/1.0/board/{boardId}/features

Connect app scope requiredREAD

read:board-scope.admin:jira-software

Request

Path parameters
boardId Required

integer

Format: int64

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/features' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

200 response

Content typeValue
application/json

object

Toggle features

PUT /rest/agile/1.0/board/{boardId}/features

Connect app scope requiredWRITE

write:board-scope.admin:jira-software

Request

Path parameters
boardId Required

integer

Format: int64
Body parameters
boardId

integer

Format: int64
feature

string

enabling

boolean

Example

1
2
3
4
5
6
7
8
9
10
curl --request PUT \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/features' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
  "boardId": 2154,
  "feature": "<string>",
  "enabling": true
}'

Responses

200 response

Content typeValue
application/json

object

Get issues for board

GET /rest/agile/1.0/board/{boardId}/issue

Returns all issues from a board, for a given board ID. This only includes issues that the user has permission to view. An issue belongs to the board if its status is mapped to the board's column. Epic issues do not belongs to the scrum boards. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank.

Connect app scope requiredREAD

read:board-scope:jira-software
, read:issue-details:jira

Request

Path parameters
boardId Required

integer

The ID of the board that contains the requested issues.

Format: int64
Query parameters
startAt

integer

The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details.

Format: int64
maxResults

integer

The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated.

Format: int32
jql

string

Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues.
Note that username and userkey can't be used as search terms for this parameter due to privacy reasons. Use accountId instead.

validateQuery

boolean

Specifies whether to validate the JQL query or not. Default: true.

fields

Array<object>

The list of fields to return for each issue. By default, all navigable and Agile fields are returned.

expand

string

This parameter is currently not used.

Example

1
2
3
4
curl --request GET \
  --url 'https://your-domain.atlassian.com/rest/agile/1.0/board/{boardId}/issue' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Accept: application/json'

Responses

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

Content typeValue
application/json

SearchResults

Example response (application/json)

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
156
157
158
159
160
161
162
163
{
  "expand": "names,schema",
  "startAt": 0,
  "maxResults": 50,
  "total": 1,
  "issues": [
    {
      "expand": "",
      "id": "10001",
      "self": "https://your-domain.atlassian.net/rest/agile/1.0/board/92/issue/10001",
      "key": "HSP-1",
      "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": {
          "self": "https://your-domain.atlassian.net/rest/api/3/project/EX",
          "id": "10000",
          "key": "EX",
          "name": "Example",
          "avatarUrls": {
            "48x48": "https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000",
            "24x24": "https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000",
            "16x16": "https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000",
            "32x32": "https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000"
          },
          "projectCategory": {
            "self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000",
            "id": "10000",
            "name": "FIRST",
            "description": "First Project Category"
          },
          "simplified": false,
          "style": "classic",
          "insight": {
            "totalIssueCount": 100,
            "lastIssueUpdateTime": "2022-11-15T23:15:20.052+0000"
          }
        },
        "comment": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000",
            "id": "10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "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."
                    }
                  ]
                }
              ]
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "created": "2021-01-17T12:34:00.000+0000",
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "role",
              "value": "Administrators",
              "identifier": "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": [
          {
            "self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
            "author": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "updateAuthor": {
              "self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g",
              "accountId": "5b10a2844c20165700ede21g",
              "displayName": "Mia Krystof",
              "active": false
            },
            "comment": {
              "type": "doc",
              "version": 1,
              "content": [
                {
                  "type": "paragraph",
                  "content": [
                    {
                      "type": "text",
                      "text": "I did some work here."
                    }
                  ]
                }
              ]
            },
            "updated": "2021-01-18T23:45:00.000+0000",
            "visibility": {
              "type": "group",
              "value": "jira-developers",
              "identifier": "276f955c-63d7-42c8-9520-92d01dca0625"
            },
            "started": "2021-01-17T12:34:00.000+0000",
            "timeSpent": "3h 20m",
            "timeSpentSeconds": 12000,
            "id": "100028",
            "issueId": "10002"
          }
        ],
        "updated": 1,
        "timetracking": {
          "originalEstimate": "10m",
          "remainingEstimate": "3m",
          "timeSpent": "6m",
          "originalEstimateSeconds": 600,
          "remainingEstimateSeconds": 200,
          "timeSpentSeconds": 400
        }
      }
    }
  ]
}

Move issues to board

POST /rest/agile/1.0/board/{boardId}/issue

Move issues from the backog to the board (if they are already in the backlog of that board).
This operation either moves an issue(s) onto a board from the backlog (by adding it to the issueList for the board) Or transitions the issue(s) to the first column for a kanban board with backlog. At most 50 issues may be moved at once.

Connect app scope requiredWRITE

write:board-scope:jira-software

Request