Jira PDF
Jira PDF
If you are after an introductory, high-level view of the JIRA REST API, rather than an exhaustive reference document, then
the best place to start is the JIRA REST API home.
Getting started
Because the REST API is based on open standards, you can use any web development language to access the API. If
you are using Java, however, the easiest way to get started using the JIRA REST API is to download with the JIRA REST
Java Client (JRJC) and use it as a library within your own application. For other languages, refer to the JIRA REST API
home for code examples.
Currently there are two API names available, which will be discussed further below:
The current API version is 2. However, there is also a symbolic version, called latest, which resolves to the latest version
supported by the given JIRA instance. As an example, if you wanted to retrieve the JSON representation of issue JRA-9
from Atlassian's public issue tracker, you would access:
https://jira.atlassian.com/rest/api/latest/issue/JRA-9
There is a WADL document that contains the documentation for each resource in the JIRA REST API. It is available here.
You can use the expand query parameter to specify a comma-separated list of entities that you want expanded, identifying
each of them by name. For example, appending ?expand=names,renderedFields to an issue's URI requests the inclusion of
the translated field names and the HTML-rendered field values in the response. Continuing with our example above, we
would use the following URL to get that information for JRA-9:
https://jira.atlassian.com/rest/api/latest/issue/JRA-9?expand=names,renderedFields
To discover the identifiers for each entity, look at the expand property in the parent object. In the JSON example below, the
resource declares widgets as being expandable.
{
"expand": "widgets",
"self": "http://www.example.com/jira/rest/api/resource/KEY-1",
"widgets": {
"widgets": [],
"size": 5
}
}
You can use the dot notation to specify expansion of entities within another entity. For example ?expand=widgets.fringels
would expand the widgets collection and also the fringel property on each widget.
Authentication
Any authentication that works against JIRA will work against the REST API. The prefered authentication methods are
OAuth and HTTP Basic (when using SSL), which are both documented in the JIRA REST API Tutorials. Other
supported methods include: HTTP Cookies, and Trusted Applications.
The log-in page uses cookie-based authentication, so if you are using JIRA in a browser you can call REST from
Javascript on the page and rely on the authentication that the browser has established. Callers wanting to reproduce the
behaviour of the JIRA log-in page (for example, to display authentication error messages to users) or who are calling both
the REST and SOAP API can POST to the /auth/1/session resource as per the documentation below.
You can find OAuth code samples in several programming languages at bitbucket.org/atlassian_tutorial/atlassian-oauth-
examples.
Experimental methods
Methods marked as experimental may change without an earlier notice. We are looking for your feedback for these
methods.
Index
This documents the current REST API provided by JIRA.
Resources
http://example.com:8080/jira/rest/api/2/application-properties [GET]
http://example.com:8080/jira/rest/api/2/application-properties/{id} [PUT]
http://example.com:8080/jira/rest/api/2/attachment
http://example.com:8080/jira/rest/api/2/attachment/{id} [GET, DELETE]
http://example.com:8080/jira/rest/api/2/attachment/meta [GET]
http://example.com:8080/jira/rest/api/2/avatar
http://example.com:8080/jira/rest/api/2/avatar/{type}/system [GET]
http://example.com:8080/jira/rest/api/2/avatar/{type}/temporary [POST]
http://example.com:8080/jira/rest/api/2/avatar/{type}/temporaryCrop [POST]
http://example.com:8080/jira/rest/api/2/comment/{commentId}/properties [GET]
http://example.com:8080/jira/rest/api/2/comment/{commentId}/properties/{propertyKey} [PUT, GET, DELETE]
http://example.com:8080/jira/rest/api/2/component [POST]
http://example.com:8080/jira/rest/api/2/component/{id} [DELETE, GET, PUT]
http://example.com:8080/jira/rest/api/2/component/{id}/relatedIssueCounts [GET]
http://example.com:8080/jira/rest/api/2/customFieldOption
http://example.com:8080/jira/rest/api/2/customFieldOption/{id} [GET]
http://example.com:8080/jira/rest/api/2/dashboard [GET]
http://example.com:8080/jira/rest/api/2/dashboard/{id} [GET]
http://example.com:8080/jira/rest/api/2/filter [POST]
http://example.com:8080/jira/rest/api/2/filter/{id} [GET, PUT, DELETE]
http://example.com:8080/jira/rest/api/2/filter/{id}/columns [GET, PUT, DELETE]
http://example.com:8080/jira/rest/api/2/filter/defaultShareScope [GET, PUT]
http://example.com:8080/jira/rest/api/2/filter/favourite [GET]
http://example.com:8080/jira/rest/api/2/groups
http://example.com:8080/jira/rest/api/2/groups/picker [GET]
http://example.com:8080/jira/rest/api/2/groupuserpicker [GET]
http://example.com:8080/jira/rest/api/2/issue [POST]
http://example.com:8080/jira/rest/api/2/issue/bulk [POST]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey} [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/assignee [PUT]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/comment [GET, POST]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/comment/{id} [GET, PUT, DELETE]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/editmeta [GET]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/notify [POST]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/remotelink [GET, POST, DELETE]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId} [GET, PUT, DELETE]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/transitions [GET, POST]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/votes [DELETE, POST, GET]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/watchers [GET, POST, DELETE]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/worklog [GET, POST]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/worklog/{id} [GET, PUT, DELETE]
http://example.com:8080/jira/rest/api/2/issue/createmeta [GET]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/attachments [POST]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/properties [GET]
http://example.com:8080/jira/rest/api/2/issue/{issueIdOrKey}/properties/{propertyKey} [PUT, GET, DELETE]
http://example.com:8080/jira/rest/api/2/issueLink [POST]
http://example.com:8080/jira/rest/api/2/issueLink/{linkId} [GET, DELETE]
http://example.com:8080/jira/rest/api/2/issuetype [GET]
http://example.com:8080/jira/rest/api/2/issuetype/{id} [GET]
http://example.com:8080/jira/rest/api/2/jql/autocompletedata [GET]
http://example.com:8080/jira/rest/api/2/licenseValidator [POST]
http://example.com:8080/jira/rest/api/2/mypermissions [GET]
http://example.com:8080/jira/rest/api/2/password
http://example.com:8080/jira/rest/api/2/password/policy [GET]
http://example.com:8080/jira/rest/api/2/password/policy/createUser [POST]
http://example.com:8080/jira/rest/api/2/password/policy/updateUser [POST]
http://example.com:8080/jira/rest/api/2/priority [GET]
http://example.com:8080/jira/rest/api/2/priority/{id} [GET]
http://example.com:8080/jira/rest/api/2/project
project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/avatar
project project [POST, PUT]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/avatar/{id}
project project [DELETE]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/avatar/temporary
project project [POST, POST]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/avatars
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/components
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/statuses
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/versions
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/properties
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/properties/{propertyKey}
project project [PUT, GET, DELETE]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/role
project project [GET]
http://example.com:8080/jira/rest/api/2/project/{projectIdOrKey}/role/{id}
project project [GET, PUT, POST, DELETE]
http://example.com:8080/jira/rest/api/2/projectvalidate
project
http://example.com:8080/jira/rest/api/2/projectvalidate/key
project [GET]
http://example.com:8080/jira/rest/api/2/resolution [GET]
http://example.com:8080/jira/rest/api/2/resolution/{id} [GET]
http://example.com:8080/jira/rest/api/2/screens
http://example.com:8080/jira/rest/api/2/screens/{screenId}/availableFields [GET]
http://example.com:8080/jira/rest/api/2/screens/{screenId}/tabs [POST, GET]
http://example.com:8080/jira/rest/api/2/screens/{screenId}/tabs/{tabId} [PUT, DELETE]
http://example.com:8080/jira/rest/api/2/screens/{screenId}/tabs/{tabId}/fields [POST, GET]
http://example.com:8080/jira/rest/api/2/screens/{screenId}/tabs/{tabId}/fields/{id} [DELETE]
http://example.com:8080/jira/rest/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}/move [POST]
http://example.com:8080/jira/rest/api/2/screens/{screenId}/tabs/{tabId}/move/{pos} [POST]
http://example.com:8080/jira/rest/api/2/screens/addToDefault/{fieldId} [POST]
http://example.com:8080/jira/rest/api/2/securitylevel
http://example.com:8080/jira/rest/api/2/securitylevel/{id} [GET]
http://example.com:8080/jira/rest/api/2/serverInfo [GET]
http://example.com:8080/jira/rest/api/2/settings
http://example.com:8080/jira/rest/api/2/settings/baseUrl [PUT]
http://example.com:8080/jira/rest/api/2/settings/columns [GET, PUT]
http://example.com:8080/jira/rest/api/2/status [GET]
http://example.com:8080/jira/rest/api/2/status/{idOrName} [GET]
http://example.com:8080/jira/rest/api/2/statuscategory [GET]
http://example.com:8080/jira/rest/api/2/statuscategory/{idOrKey} [GET]
http://example.com:8080/jira/rest/api/2/version [POST]
http://example.com:8080/jira/rest/api/2/version/{id}/move [POST]
http://example.com:8080/jira/rest/api/2/version/{id} [DELETE, GET, PUT]
http://example.com:8080/jira/rest/api/2/version/{id}/relatedIssueCounts [GET]
http://example.com:8080/jira/rest/api/2/version/{id}/unresolvedIssueCount [GET]
http://example.com:8080/jira/rest/api/2/version/{versionId}/remotelink [GET, POST, DELETE]
http://example.com:8080/jira/rest/api/2/version/{versionId}/remotelink/{globalId} [GET, POST, DELETE]
http://example.com:8080/jira/rest/api/2/version/remotelink [GET]
http://example.com:8080/jira/rest/api/2/workflow [GET]
http://example.com:8080/jira/rest/api/2/workflow/api/2/transitions
http://example.com:8080/jira/rest/api/2/workflow/api/2/transitions/{id}/properties [GET, POST, DELETE,
PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme [POST]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id} [PUT, GET, DELETE]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/createdraft [POST]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/default [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/draft [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/draft/default [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/draft/issuetype/{issueType} [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/draft/workflow [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/issuetype/{issueType} [GET, DELETE, PUT]
http://example.com:8080/jira/rest/api/2/workflowscheme/{id}/workflow [GET, DELETE, PUT]
http://example.com:8080/jira/rest/auth/1/websudo [DELETE]
Resources
/rest/api/2/application-properties
Methods
GET
/rest/api/2/application-properties?key&permissionLevel&keyFilter
Returns an application property.
/rest/api/2/application-properties/{id}
resource-wide template parameters
parameter value description
id string
Methods
PUT
Modify an application property via PUT. The "value" field present in the PUT will override thee existing value.
*/* [expand]
200 [expand]
403 [expand]
404 [expand]
/rest/api/2/attachment/{id}
resource-wide template parameters
parameter value description
id string the id of the attachment to ddelete.
Methods
GET
Returns the meta-data for an attachment, including the URI of the actual attached file.
DELETE
204 [expand]
403 [expand]
404 [expand]
/rest/api/2/attachment/meta
Methods
GET
Returns the meta informations for an attachments, specifically if they are enabled and the maximum upload size
allowed.
/rest/api/2/auditing/settings
Methods
GET
PUT
Changed current Auditing settings Returns REST representation for the requested group.
application/json [expand]
/rest/api/2/avatar/{type}/temporaryCrop
resource-wide template parameters
parameter value description
type string the avatar type
Methods
POST
application/json [expand]
/rest/api/2/avatar/{type}/temporary
resource-wide template parameters
parameter value description
type string the avatar type
Methods
POST
/rest/api/2/avatar/{type}/temporary?filename&size
Creates temporary avatar
/rest/api/2/avatar/{type}/system
resource-wide template parameters
parameter value description
type string the avatar type
Methods
GET
/rest/api/2/comment/{commentId}/properties
resource-wide template parameters
parameter value description
commentId string the comment from which keys will be returned.
Methods
GET (experimental)
Returns the keys of all properties for the comment identified by the key or by the id.
/rest/api/2/comment/{commentId}/properties/{propertyKey}
resource-wide template parameters
parameter value description
commentId string the comment from which keys will be returned.
propertyKey string the key of the property to remove.
commentId string the comment from which the property will be removed.
Methods
PUT (experimental)
You can use this resource to store a custom data against the comment identified by the key or by the id. The user
who stores the data is required to have permissions to administer the comment.
200 [expand]
201 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
GET (experimental)
Returns the value of the property with a given key from the comment identified by the key or by the id. The user who
retrieves the property is required to have permissions to read the comment.
DELETE (experimental)
Removes the property from the comment identified by the key or by the id. Ths user removing the property is required
to have permissions to administer the comment.
204 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
/rest/api/2/component
Methods
POST
application/json [expand]
/rest/api/2/component/{id}
resource-wide template parameters
parameter value description
id string
Methods
DELETE
/rest/api/2/component/{id}?moveIssuesTo
Delete a project component.
204 [expand]
403 [expand]
404 [expand]
GET
Modify a component via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field is
not present, it is silently ignored. If leadUserName is an empty string ("") the component lead will be removed.
application/json [expand]
200 [expand]
403 [expand]
404 [expand]
/rest/api/2/component/{id}/relatedIssueCounts
resource-wide template parameters
parameter value description
id string a String containing the component id
Methods
GET
/rest/api/2/customFieldOption/{id}
resource-wide template parameters
parameter value description
id string a String containing an Custom Field Option id
Methods
GET
Returns a full representation of the Custom Field Option that has the given id.
/rest/api/2/dashboard
The /dashboard resource.
Methods
GET
/rest/api/2/dashboard?filter&startAt&maxResults
Returns a list of all dashboards, optionally filtering them.
200 [expand]
/rest/api/2/dashboard/{id}
resource-wide template parameters
parameter value description
id string the dashboard id
Methods
GET
200 [expand]
404 [expand]
/rest/api/2/field
Methods
GET
POST
Creates a custom field using a definition (object encapsulating custom field data)
application/json [expand]
201 [expand]
400 [expand]
500 [expand]
/rest/api/2/filter
Resource for searches.
Methods
POST
/rest/api/2/filter?expand
Creates a new filter, and returns newly created filter. Currently sets permissions just using the users default sharing
permissions
application/json [expand]
/rest/api/2/filter/{id}
resource-wide template parameters
parameter value description
id long The ID of the filter to delete.
Methods
GET
/rest/api/2/filter/{id}?expand
Returns a filter given an id
request query parameters
parameter value description
expand string the parameters to expand
PUT
/rest/api/2/filter/{id}?expand
Updates an existing filter, and returns its new value.
application/json [expand]
DELETE
Delete a filter.
204 [expand]
400 [expand]
401 [expand]
/rest/api/2/filter/{id}/columns
resource-wide template parameters
parameter value description
id long id of the filter
Methods
GET
Returns the default columns for the given filter. Currently logged in user will be used as the user making such request.
PUT
application/x-www-form-urlencoded [expand]
200 [expand]
500 [expand]
DELETE
Resets the columns for the given filter such that the filter no longer has its own column config.
204 [expand]
500 [expand]
/rest/api/2/filter/defaultShareScope
Methods
GET
Returns the default share scope of the logged-in user.
PUT
Sets the default share scope of the logged-in user. Available values are GLOBAL and PRIVATE.
application/json [expand]
/rest/api/2/filter/favourite
Methods
GET
/rest/api/2/filter/favourite?expand
Returns the favourite filters of the logged-in user.
/rest/api/2/group
Methods
POST (experimental)
Creates a group by given group parameter Returns REST representation for the requested group.
application/json [expand]
GET
/rest/api/2/group?groupname&expand
Returns REST representation for the requested group. Allows to get list of active users belonging to the specified
group and its subgroups if "users" expand option is provided. You can page through users list by using indexes in
expand param. For example to get users from index 10 to index 15 use "users[10:15]" expand value. This will return 6
users (if there are at least 16 users in this group). Indexes are 0-based and inclusive.
DELETE (experimental)
/rest/api/2/group?groupname&swapGroup
Deletes a group by given group parameter. Returns no content
request query parameters
parameter value description
groupname string a group to delete
swapGroup string a group to transfer visibility restrictions of the group that is being deleted
/rest/api/2/group/user
Methods
POST (experimental)
/rest/api/2/group/user?groupname
Adds given user to a group. Returns the current state of the group.
application/json [expand]
DELETE (experimental)
/rest/api/2/group/user?groupname&username
Removes given user from a group. Returns no content
/rest/api/2/groups/picker
Methods
GET
/rest/api/2/groups/picker?query&exclude&maxResults
Returns groups with substrings matching a given query. This is mainly for use with the group picker, so the returned
groups contain html to be used as picker suggestions. The groups are also wrapped in a single response object that
also contains a header for use in the picker, specifically Showing X of Y matching groups. The number of groups
returned is limited by the system property "jira.ajax.autocomplete.limit" The groups will be unique and sorted.
/rest/api/2/groupuserpicker
Methods
GET
/rest/api/2/groupuserpicker?query&maxResults&showAvatar&fieldId&projectId
project &issueTypeId
Returns a list of users and groups matching query with highlighting. This resource cannot be accessed anonymously.
application/json [expand]
/rest/api/2/issue
Methods
POST
The fields that can be set on create, in either the fields parameter or the update parameter can be determined using
the /rest/api/2/issue/createmeta resource. If a field is not configured to appear on the create screen, then it will not
be in the createmeta, and a field validation error will occur if it is submitted.
Creating a sub-task is similar to creating a regular issue, with two important differences:
the issueType field must correspond to a sub-task issue type (you can use /issue/createmeta to discover sub-task
issue types), and
you must provide a parent field in the issue create request containing the id or key of the parent issue.
application/json [expand]
/rest/api/2/issue/bulk
Methods
POST
Creating a sub-task is similar to creating a regular issue. More details can be found in createIssue section: {@link
IssueResource#createIssue(IssueUpdateBean)}}
application/json [expand]
Methods
GET
/rest/api/2/issue/{issueIdOrKey}?fields&expand
Returns a full representation of the issue for the given issue key.
An issue JSON consists of the issue key, a collection of fields, a link to the workflow transition sub-resource, and
(optionally) the HTML rendered values of any fields that support it (e.g. if wiki syntax is enabled for the description or
comments).
The fields param (which can be specified multiple times) gives a comma-separated list of fields to include in the
response. This can be used to retrieve a subset of fields. A particular field can be excluded by prefixing it with a
minus.
By default, all (*all) fields are returned in this get-issue resource. Note: the default is different when doing a jql search
-- the default there is just navigable fields (*navigable).
JIRA will attempt to identify the issue by the issueIdOrKey path parameter. This can be an issue id, or an issue key. If
the issue cannot be found via an exact match, JIRA will also look for the issue in a case-insensitive way, or by looking
to see if the issue was moved. In either of these cases, the request will proceed as normal (a 302 or other redirect will
not be returned). The issue key contained in the response will indicate the current value of issue's key.
DELETE
/rest/api/2/issue/{issueIdOrKey}?deleteSubtasks
Delete an issue. If the issue has subtasks you must set the parameter deleteSubtasks=true to delete the issue. You
cannot delete an issue without its subtasks also being deleted.
204 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
PUT
The issue can either be updated by setting explicit the field value(s) or by using an operation to change the field
value.
The fields that can be updated, in either the fields parameter or the update parameter, can be determined using the
/rest/api/2/issue/{issueIdOrKey}/editmeta resource.
If a field is not configured to appear on the edit screen, then it will not be in the editmeta, and a field validation error
will occur if it is submitted.
Specifying a "field_id": field_value in the "fields" is a shorthand for a "set" operation in the "update" section.
Field should appear either in "fields" or "update", not in both.
application/json [expand]
Methods
PUT
Assigns an issue to a user. You can use this resource to assign issues when the user submitting the request has the
assign permission but not the edit issue permission. If the name is "-1" automatic assignee is used. A null name will
remove the assignee.
application/json [expand]
204 [expand]
400 [expand]
401 [expand]
404 [expand]
/rest/api/2/issue/{issueIdOrKey}/comment
resource-wide template parameters
parameter value description
issueIdOrKey string a string containing the issue id or key the comment will be added to
Methods
GET
/rest/api/2/issue/{issueIdOrKey}/comment?expand
Returns all comments for an issue.
POST
/rest/api/2/issue/{issueIdOrKey}/comment?expand
Adds a new comment to an issue.
application/json [expand]
201 [expand]
400 [expand]
/rest/api/2/issue/{issueIdOrKey}/comment/{id}
resource-wide template parameters
parameter value description
id string id of the comment to be deleted
issueIdOrKey string a string containing the issue id or key the comment belongs to
Methods
GET
/rest/api/2/issue/{issueIdOrKey}/comment/{id}?expand
Returns all comments for an issue.
PUT
/rest/api/2/issue/{issueIdOrKey}/comment/{id}?expand
Updates an existing comment using its JSON representation.
application/json [expand]
200 [expand]
400 [expand]
DELETE
204 [expand]
400 [expand]
/rest/api/2/issue/{issueIdOrKey}/editmeta
resource-wide template parameters
parameter value description
issueIdOrKey string the issue whose edit meta data you want to view
Methods
GET
The fields in the editmeta correspond to the fields in the edit screen for the issue. Fields not in the screen will not be in
the editemeta.
/rest/api/2/issue/{issueIdOrKey}/notify
resource-wide template parameters
parameter value description
issueIdOrKey string a string containing the issue id or key the comment will be added to
Methods
POST
application/json [expand]
204 [expand]
400 [expand]
403 [expand]
/rest/api/2/issue/{issueIdOrKey}/remotelink
resource-wide template parameters
parameter value description
issueIdOrKey string the issue to create the remote issue link for
Methods
GET
/rest/api/2/issue/{issueIdOrKey}/remotelink?globalId
A REST sub-resource representing the remote issue links on the issue.
POST
Creates or updates a remote issue link from a JSON representation. If a globalId is provided and a remote issue link
exists with that globalId, the remote issue link is updated. Otherwise, the remote issue link is created.
application/json [expand]
DELETE
/rest/api/2/issue/{issueIdOrKey}/remotelink?globalId
Delete the remote issue link with the given global id on the issue.
204 [expand]
401 [expand]
403 [expand]
404 [expand]
/rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId}
resource-wide template parameters
parameter value description
issueIdOrKey string the issue to create the remote issue link for
linkId string the id of the remote issue link
Methods
GET
Get the remote issue link with the given id on the issue.
PUT
Updates a remote issue link from a JSON representation. Any fields not provided are set to null.
application/json [expand]
204 [expand]
400 [expand]
401 [expand]
403 [expand]
DELETE
Delete the remote issue link with the given id on the issue.
204 [expand]
401 [expand]
403 [expand]
404 [expand]
/rest/api/2/issue/{issueIdOrKey}/transitions
resource-wide template parameters
parameter value description
issueIdOrKey string the issue you want to transition
Methods
GET
/rest/api/2/issue/{issueIdOrKey}/transitions?transitionId
Get a list of the transitions possible for this issue by the current user, along with fields that are required and their
types.
The fields in the metadata correspond to the fields in the transition screen for that transition. Fields not in the screen
will not be in the metadata.
POST
Perform a transition on an issue. When performing the transition you can udate or set other issue fields.
The fields that can be set on transtion, in either the fields parameter or the update parameter can be determined using
the /rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields resource. If a field is not configured to
appear on the transition screen, then it will not be in the transition metadata, and a field validation error will occur if it
is submitted.
application/json [expand]
204 [expand]
400 [expand]
404 [expand]
/rest/api/2/issue/{issueIdOrKey}/votes
resource-wide template parameters
parameter value description
issueIdOrKey string the issue to view voting information for
Methods
DELETE
204 [expand]
404 [expand]
POST
204 [expand]
404 [expand]
GET
/rest/api/2/issue/{issueIdOrKey}/watchers
resource-wide template parameters
parameter value description
issueIdOrKey string a String containing an issue key.
Methods
GET
Returns the list of watchers for the issue with the given key.
POST
application/json [expand]
204 [expand]
400 [expand]
401 [expand]
404 [expand]
DELETE
/rest/api/2/issue/{issueIdOrKey}/watchers?username
Removes a user from an issue's watcher list.
204 [expand]
400 [expand]
401 [expand]
404 [expand]
/rest/api/2/issue/{issueIdOrKey}/worklog
resource-wide template parameters
parameter value description
issueIdOrKey string a string containing the issue id or key the worklog will be added to
Methods
GET
POST
/rest/api/2/issue/{issueIdOrKey}/worklog?adjustEstimate&newEstimate&reduceBy
Adds a new worklog entry to an issue.
newEstimate string (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. e.g.
"2d"
reduceBy string (required when "manual" is selected for adjustEstimate) the amount to reduce the remaining estimate by
e.g. "2d"
application/json [expand]
201 [expand]
400 [expand]
403 [expand]
/rest/api/2/issue/{issueIdOrKey}/worklog/{id}
resource-wide template parameters
parameter value description
id string id of the worklog to be deleted
issueIdOrKey string a string containing the issue id or key the worklog belongs to
Methods
GET
PUT
/rest/api/2/issue/{issueIdOrKey}/worklog/{id}?adjustEstimate&newEstimate
Updates an existing worklog entry using its JSON representation.
newEstimate string (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field.
application/json [expand]
200 [expand]
400 [expand]
403 [expand]
DELETE
/rest/api/2/issue/{issueIdOrKey}/worklog/{id}?adjustEstimate&newEstimate&increaseBy
Deletes an existing worklog entry .
newEstimate string (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. e.g.
"2d"
increaseBy string (required when "manual" is selected for adjustEstimate) the amount to increase the remaining estimate by
e.g. "2d"
204 [expand]
400 [expand]
403 [expand]
/rest/api/2/issue/createmeta
Methods
GET
/rest/api/2/issue/createmeta?projectIds
project &projectKeys
project &issuetypeIds&issuetypeNames
Returns the meta data for creating issues. This includes the available projects, issue types and fields, including field
types and whether or not those fields are required. Projects will not be returned if the user does not have permission
to create issues in that project.
The fields in the createmeta correspond to the fields in the create screen for the project/issuetype. Fields not in the
screen will not be in the createmeta.
The results can be filtered by project and/or issue type, given by the query params.
/rest/api/2/issue/{issueIdOrKey}/attachments
Issue attachments
Methods
POST
This resource expects a multipart post. The media-type multipart/form-data is defined in RFC 1867. Most client
libraries have classes that make dealing with multipart posts simple. For instance, in Java the Apache HTTP
Components library provides a MultiPartEntity that makes it simple to submit a multipart POST.
In order to protect against XSRF attacks, because this method accepts multipart/form-data, it has XSRF protection on
it. This means you must submit a header of X-Atlassian-Token: nocheck with the request, otherwise it will be blocked.
The name of the multipart/form-data parameter that contains attachments must be "file"
/rest/api/2/issue/{issueIdOrKey}/properties
resource-wide template parameters
parameter value description
issueIdOrKey string the issue from which keys will be returned.
Methods
GET (experimental)
Returns the keys of all properties for the issue identified by the key or by the id.
/rest/api/2/issue/{issueIdOrKey}/properties/{propertyKey}
resource-wide template parameters
parameter value description
issueIdOrKey string the issue from which keys will be returned.
issueIdOrKey string the issue from which the property will be removed.
propertyKey string the key of the property to remove.
Methods
PUT (experimental)
You can use this resource to store a custom data against the issue identified by the key or by the id. The user who
stores the data is required to have permissions to edit the issue.
200 [expand]
201 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
GET (experimental)
Returns the value of the property with a given key from the issue identified by the key or by the id. The user who
retrieves the property is required to have permissions to read the issue.
DELETE (experimental)
Removes the property from the issue identified by the key or by the id. Ths user removing the property is required to
have permissions to edit the issue.
204 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
/rest/api/2/issueLink
The Link Issue Resource provides functionality to manage issue links.
Methods
POST
Creates an issue link between two issues. The user requires the link issue permission for the issue which will be
linked to another issue. The specified link type in the request is used to create the link and will create a link from the
first issue to the second issue using the outward description. It also create a link from the second issue to the first
issue using the inward description of the issue link type. It will add the supplied comment to the first issue. The
comment can have a restriction who can view it. If group is specified, only users of this group can view this comment,
if roleLevel is specified only users who have the specified role can view this comment. The user who creates the issue
link needs to belong to the specified group or have the specified role.
application/json [expand]
/rest/api/2/issueLink/{linkId}
resource-wide template parameters
parameter value description
linkId string the issue link id.
Methods
GET
DELETE
Deletes an issue link with the specified id. To be able to delete an issue link you must be able to view both issues and
must have the link issue permission for at least one of the issues.
/rest/api/2/issueLinkType
Rest resource to retrieve a list of issue link types.
Methods
GET
Returns a list of available issue link types, if issue linking is enabled. Each issue link type has an id, a name and a
label for the outward and inward link relationship.
POST
/rest/api/2/issueLinkType/{issueLinkTypeId}
resource-wide template parameters
parameter value description
issueLinkTypeId string
Methods
GET
Returns for a given issue link type id all information about this issue link type.
DELETE
PUT
application/json [expand]
200 [expand]
400 [expand]
404 [expand]
/rest/api/2/issuetype
Methods
GET
/rest/api/2/issuetype/{id}
resource-wide template parameters
parameter value description
id string a String containing an issue type id
Methods
GET
Returns a full representation of the issue type that has the given id.
/rest/api/2/jql/autocompletedata
Resource for auto complete data for searches.
Methods
GET
/rest/api/2/licenseValidator
A REST endpoint to provide simple validation services for a JIRA license. Typically used by the setup phase of the JIRA
application. This will return an object with a list of errors as key, value pairs.
Methods
POST
application/json [expand]
application/json [expand]
/rest/api/2/mypermissions
Provide permission information for the current user.
Methods
GET
/rest/api/2/mypermissions?projectKey
project &projectId
project &issueKey&issueId
Returns all permissions in the system and whether the currently logged in user has them. You can optionally provide a
specific context to get permissions for (projectKey OR projectId OR issueKey OR issueId)
When no context supplied the project related permissions will return true if the user has that permission in ANY
project
If a project context is provided, project related permissions will return true if the user has the permissions in the
specified project. For permissions that are determined using issue data (e.g Current Assignee), true will be
returned if the user meets the permission criteria in ANY issue in that project
If an issue context is provided, it will return whether or not the user has each permission in that specific issue
NB: The above means that for issue-level permissions (EDIT_ISSUE for example), hasPermission may be true when
no context is provided, or when a project context is provided, but may be false for any given (or all) issues. This
would occur (for example) if Reporters were given the EDIT_ISSUE permission. This is because any user could be a
reporter, except in the context of a concrete issue, where the reporter is known.
/rest/api/2/mypreferences
Provide preferences of the currently logged in user.
Methods
GET
/rest/api/2/mypreferences?key
Returns preference of the currently logged in user. Preference key must be provided as input parameter (key). The
value is returned exactly as it is. If key parameter is not provided or wrong - status code 404. If value is found - status
code 200.
application/json [expand]
PUT
/rest/api/2/mypreferences?key
Sets preference of the currently logged in user. Preference key must be provided as input parameters (key). Value
must be provided as post body. If key or value parameter is not provided - status code 404. If preference is set -
status code 204.
application/json [expand]
application/json [expand]
DELETE
/rest/api/2/mypreferences?key
Removes preference of the currently logged in user. Preference key must be provided as input parameters (key). If
key parameter is not provided or wrong - status code 404. If preference is unset - status code 204.
application/json [expand]
/rest/api/2/myself
Currently logged user resource
Methods
GET
PUT
Modify currently logged user. The "value" fields present will override the existing value. Fields skipped in request will
not be changed. Only email and display name can be change that way.
application/json [expand]
/rest/api/2/myself/password
Methods
PUT
application/json [expand]
204 [expand]
403 [expand]
404 [expand]
/rest/api/2/password/policy
Methods
GET
/rest/api/2/password/policy?hasOldPassword
Returns user-friendly statements governing the system's password policy.
/rest/api/2/password/policy/createUser
Methods
POST
application/json [expand]
application/json [expand]
/rest/api/2/password/policy/updateUser
Methods
POST
application/json [expand]
application/json [expand]
/rest/api/2/priority
Methods
GET
Methods
GET
/rest/api/2/project
project
Methods
GET
Returns all projects which are visible for the currently logged in user. If no user is logged in, it returns the list of
projects that are visible when using anonymous access.
/rest/api/2/project/{projectIdOrKey}
project project
resource-wide template parameters
parameter value description
projectIdOrKey string the project id or project key
Methods
GET
/rest/api/2/project/{projectIdOrKey}
project project ?expand
Contains a full representation of a project in JSON format.
All project keys associated with the project will only be returned if expand=projectKeys.
/rest/api/2/project/{projectIdOrKey}/avatar
project project
resource-wide template parameters
parameter value description
projectIdOrKey string
Methods
POST
application/json [expand]
PUT
application/json [expand]
application/json [expand]
/rest/api/2/project/{projectIdOrKey}/avatar/{id}
project project
resource-wide template parameters
parameter value description
id long database id for avatar
projectIdOrKey string Project id or project key
Methods
DELETE
Deletes avatar
/rest/api/2/project/{projectIdOrKey}/avatar/temporary
project project
resource-wide template parameters
parameter value description
projectIdOrKey string Project id or project key
Methods
POST
/rest/api/2/project/{projectIdOrKey}/avatar/temporary
project project ?filename&size
Creates temporary avatar
POST
Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because
the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back
from which the client parses the JSON.
/rest/api/2/project/{projectIdOrKey}/avatars
project project
resource-wide template parameters
parameter value description
projectIdOrKey string project id or project key
Methods
GET
Returns all avatars which are visible for the currently logged in user. The avatars are grouped into system and
custom.
/rest/api/2/project/{projectIdOrKey}/components
project project
resource-wide template parameters
parameter value description
projectIdOrKey string the project id or project key
Methods
GET
/rest/api/2/project/{projectIdOrKey}/statuses
project project
resource-wide template parameters
parameter value description
projectIdOrKey string Project id or project key
Methods
GET
Get all issue types with valid status values for a project
/rest/api/2/project/{projectIdOrKey}/versions
project project
resource-wide template parameters
parameter value description
projectIdOrKey string the project id or project key
Methods
GET
/rest/api/2/project/{projectIdOrKey}/versions
project project ?expand
Contains a full representation of a the specified project's versions.
/rest/api/2/project/{projectIdOrKey}/properties
project project
resource-wide template parameters
parameter value description
projectIdOrKey string the project from which keys will be returned.
Methods
GET (experimental)
Returns the keys of all properties for the project identified by the key or by the id.
/rest/api/2/project/{projectIdOrKey}/properties/{propertyKey}
project project
resource-wide template parameters
parameter value description
projectIdOrKey string the project from which keys will be returned.
projectIdOrKey string the project from which the property will be removed.
propertyKey string the key of the property to remove.
Methods
PUT (experimental)
You can use this resource to store a custom data against the project identified by the key or by the id. The user who
stores the data is required to have permissions to administer the project.
200 [expand]
201 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
GET (experimental)
Returns the value of the property with a given key from the project identified by the key or by the id. The user who
retrieves the property is required to have permissions to read the project.
DELETE (experimental)
Removes the property from the project identified by the key or by the id. Ths user removing the property is required to
have permissions to administer the project.
204 [expand]
400 [expand]
401 [expand]
403 [expand]
404 [expand]
/rest/api/2/project/{projectIdOrKey}/role
project project
resource-wide template parameters
parameter value description
projectIdOrKey string the project id or project key
Methods
GET
Methods
GET
PUT
application/json [expand]
POST
application/json [expand]
DELETE
204 [expand]
404 [expand]
/rest/api/2/projectvalidate/key
project
Methods
GET
/rest/api/2/projectvalidate/key
project ?key
Validates a project key.
/rest/api/2/reindex
REST resource for starting/stopping/querying indexing.
Methods
POST
/rest/api/2/reindex?type&indexComments&indexChangeHistory
Kicks off a reindex. Need Admin permissions to perform this reindex.
request query parameters
parameter value description
type string Case insensitive String indicating type of reindex. If omitted, then defaults to
BACKGROUND_PREFERRED
indexComments boolean Indicates that comments should also be reindexed. Not relevant for foreground reindex, where
Default: comments are always reindexed.
false
indexChangeHistory boolean Indicates that changeHistory should also be reindexed. Not relevant for foreground reindex,
Default: where changeHistory is always reindexed.
false
GET
/rest/api/2/reindex?taskId
Returns information on the system reindexes. If a reindex is currently taking place then information about this reindex
is returned. If there is no active index task, then returns information about the latest reindex task run, otherwise
returns a 404 indicating that no reindex has taken place.
/rest/api/2/resolution
Methods
GET
/rest/api/2/resolution/{id}
resource-wide template parameters
parameter value description
id string a String containing the resolution id
Methods
GET
Returns a resolution.
/rest/api/2/screens/{screenId}/tabs
resource-wide template parameters
parameter value description
screenId long id of screen
Methods
POST
application/json [expand]
available response representations:
GET
/rest/api/2/screens/{screenId}/tabs?projectKey
project
Returns a list of all tabs for the given screen
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields
resource-wide template parameters
parameter value description
screenId long id of screen
tabId long id of tab
Methods
POST
application/json [expand]
200 [expand]
400 [expand]
401 [expand]
GET
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields?projectKey
project
Gets all fields for a given tab
200 [expand]
400 [expand]
401 [expand]
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}
resource-wide template parameters
parameter value description
id string
screenId long id of screen
tabId long id of tab
Methods
DELETE
201 [expand]
400 [expand]
401 [expand]
/rest/api/2/screens/{screenId}/tabs/{tabId}
resource-wide template parameters
parameter value description
screenId long id of screen
tabId long id of tab
Methods
PUT
application/json [expand]
DELETE
201 [expand]
400 [expand]
401 [expand]
/rest/api/2/screens/{screenId}/tabs/{tabId}/move/{pos}
resource-wide template parameters
parameter value description
screenId long id of screen
tabId long id of tab
pos int position of tab
Methods
POST
201 [expand]
400 [expand]
401 [expand]
/rest/api/2/screens/{screenId}/availableFields
resource-wide template parameters
parameter value description
screenId long id of screen
Methods
GET
Gets available fields for screen. i.e ones that haven't already been added.
200 [expand]
400 [expand]
401 [expand]
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}/move
resource-wide template parameters
parameter value description
id string
screenId long id of screen
tabId long id of tab
Methods
POST
application/json [expand]
201 [expand]
400 [expand]
401 [expand]
/rest/api/2/screens/addToDefault/{fieldId}
resource-wide template parameters
parameter value description
fieldId string id of field / custom field
Methods
POST
201 [expand]
400 [expand]
401 [expand]
/rest/api/2/search
Resource for searches.
Methods
GET
/rest/api/2/search?jql&startAt&maxResults&validateQuery&fields&expand
Searches for issues using JQL.
Sorting the jql parameter is a full JQL expression, and includes an ORDER BY clause.
The fields param (which can be specified multiple times) gives a comma-separated list of fields to include in the
response. This can be used to retrieve a subset of fields. A particular field can be excluded by prefixing it with a
minus.
By default, only navigable (*navigable) fields are returned in this search resource. Note: the default is different in the
get-issue resource -- the default there all fields (*all).
GET vs POST: If the JQL query is too large to be encoded as a query param you should instead POST to this
resource.
Expanding Issues in the Search Result: It is possible to expand the issues returned by directly specifying the
expansion on the expand parameter passed in to this resources.
For instance, to expand the "changelog" for all the issues on the search result, it is neccesary to specify "changelog"
as one of the values to expand.
POST
/rest/api/2/securitylevel/{id}
resource-wide template parameters
parameter value description
id string a String containing an issue security level id
Methods
GET
Returns a full representation of the security level that has the given id.
/rest/api/2/serverInfo
Methods
GET
/rest/api/2/serverInfo?doHealthCheck
Returns general information about the current JIRA server.
/rest/api/2/settings/baseUrl
Methods
PUT
Sets the base URL that is configured for this JIRA instance.
application/json [expand]
/rest/api/2/settings/columns
Methods
GET
Returns the default system columns for issue navigator. Admin permission will be required.
PUT
Sets the default system columns for issue navigator. Admin permission will be required.
application/x-www-form-urlencoded [expand]
200 [expand]
500 [expand]
/rest/api/2/status
Methods
GET
/rest/api/2/status/{idOrName}
resource-wide template parameters
parameter value description
idOrName string a numeric Status id or a status name
Methods
GET
/rest/api/2/statuscategory
Methods
GET
/rest/api/2/statuscategory/{idOrKey}
resource-wide template parameters
parameter value description
idOrKey string a numeric StatusCategory id or a status category key
Methods
GET
GET
/rest/api/2/user?username&key
Returns a user. This resource cannot be accessed anonymously.
PUT (experimental)
/rest/api/2/user?username&key
Modify user. The "value" fields present will override the existing value. Fields skipped in request will not be changed.
application/json [expand]
POST (experimental)
Create user. By default created user will not be notified with email. If password field is not set then password will be
randomly generated.
application/json [expand]
201 [expand]
400 [expand]
403 [expand]
500 [expand]
DELETE (experimental)
/rest/api/2/user?username&key
Removes user.
204 [expand]
400 [expand]
403 [expand]
404 [expand]
/rest/api/2/user/assignable/multiProjectSearch
Project
Methods
GET
/rest/api/2/user/assignable/multiProjectSearch
Project ?username&projectKeys
project &startAt&maxResults
Returns a list of users that match the search string and can be assigned issues for all the given projects. This
resource cannot be accessed anonymously.
/rest/api/2/user/assignable/search
Methods
GET
/rest/api/2/user/assignable/search?
username&project
project&issueKey&startAt&maxResults&actionDescriptorId
Returns a list of users that match the search string. This resource cannot be accessed anonymously. Please note that
this resource should be called with an issue key when a list of assignable users is retrieved for editing. For create only
a project key should be supplied. The list of assignable users may be incorrect if it's called with the project key for
editing.
/rest/api/2/user/avatar
Methods
POST
/rest/api/2/user/avatar?username
Converts temporary avatar into a real avatar
application/json [expand]
PUT
/rest/api/2/user/avatar?username
request query parameters
parameter value description
username string
application/json [expand]
application/json [expand]
/rest/api/2/user/avatar/{id}
resource-wide template parameters
parameter value description
id long database id for avatar
Methods
DELETE
/rest/api/2/user/avatar/{id}?username
Deletes avatar
/rest/api/2/user/avatar/temporary
Methods
POST
/rest/api/2/user/avatar/temporary?username&filename&size
Creates temporary avatar. Creating a temporary avatar is part of a 3-step process in uploading a new avatar for a
user: upload, crop, confirm.
The following examples shows these three steps using curl. The cookies (session) need to be preserved between
requests, hence the use of -b and -c. The id created in step 2 needs to be passed to step 3 (you can simply pass the
whole response of step 2 as the request of step 3).
curl -c cookiejar.txt -X POST -u admin:admin -H "X-Atlassian-Token: no-check" \
-H "Content-Type: image/png" --data-binary @mynewavatar.png \
'http://localhost:8090/jira/rest/api/2/user/avatar/temporary?username=admin&filename=mynewavatar.png'
POST
/rest/api/2/user/avatar/temporary?username
Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because
the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back
from which the client parses the JSON from.
Creating a temporary avatar is part of a 3-step process in uploading a new avatar for a user: upload, crop, confirm.
This endpoint allows you to use a multipart upload instead of sending the image directly as the request body.
/rest/api/2/user/avatars
Methods
GET
/rest/api/2/user/avatars?username
Returns all avatars which are visible for the currently logged in user.
/rest/api/2/user/columns
Methods
GET
/rest/api/2/user/columns?username
Returns the default columns for the given user. Admin permission will be required to get columns for a user other than
the currently logged in user.
PUT
Sets the default columns for the given user. Admin permission will be required to get columns for a user other than the
currently logged in user.
application/x-www-form-urlencoded [expand]
200 [expand]
500 [expand]
DELETE
/rest/api/2/user/columns?username
Reset the default columns for the given user to the system default. Admin permission will be required to get columns
for a user other than the currently logged in user.
request query parameters
parameter value description
username string username
204 [expand]
401 [expand]
500 [expand]
/rest/api/2/user/password
Methods
PUT (experimental)
/rest/api/2/user/password?username&key
Modify user password.
application/json [expand]
204 [expand]
403 [expand]
404 [expand]
/rest/api/2/user/permission/search
Methods
GET
/rest/api/2/user/permission/search?username&permissions&issueKey&projectKey
project &startAt&maxResults
Returns a list of active users that match the search string and have all specified permissions for the project or issue.
This resource can be accessed by users with ADMINISTER_PROJECT permission for the project or global ADMIN or
SYSADMIN rights.
/rest/api/2/user/picker
Methods
GET
/rest/api/2/user/picker?query&maxResults&showAvatar&exclude
Returns a list of users matching query with highlighting. This resource cannot be accessed anonymously.
/rest/api/2/user/search
Methods
GET
/rest/api/2/user/search?username&startAt&maxResults&includeActive&includeInactive
Returns a list of users that match the search string. This resource cannot be accessed anonymously.
/rest/api/2/user/viewissue/search
Methods
GET
/rest/api/2/user/viewissue/search?username&issueKey&projectKey
project &startAt&maxResults
Returns a list of active users that match the search string. This resource cannot be accessed anonymously. Given an
issue key this resource will provide a list of users that match the search string and have the browse issue permission
for the issue provided.
/rest/api/2/version
Methods
POST
application/json [expand]
available response representations:
/rest/api/2/version/{id}/move
resource-wide template parameters
parameter value description
id string a String containing the version id
Methods
POST
Modify a version's sequence within a project. The move version bean has 2 alternative field value pairs:
position
An absolute position, which may have a value of 'First', 'Last', 'Earlier' or 'Later'
after
A version to place this version after. The value should be the self link of another version
application/json [expand]
/rest/api/2/version/{id}
resource-wide template parameters
parameter value description
id string
Methods
DELETE
/rest/api/2/version/{id}?moveFixIssuesTo&moveAffectedIssuesTo
Delete a project version.
204 [expand]
403 [expand]
404 [expand]
GET
/rest/api/2/version/{id}?expand
Returns a project version.
PUT
Modify a version via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field is not
present, it is silently ignored.
application/json [expand]
available response representations:
200 [expand]
403 [expand]
404 [expand]
/rest/api/2/version/{id}/relatedIssueCounts
resource-wide template parameters
parameter value description
id string a String containing the version id
Methods
GET
Returns a bean containing the number of fixed in and affected issues for the given version.
/rest/api/2/version/{id}/unresolvedIssueCount
resource-wide template parameters
parameter value description
id string a String containing the version id
Methods
GET
/rest/api/2/version/{versionId}/remotelink
resource-wide template parameters
parameter value description
versionId string The version for which to delete ALL existing remote version links
Methods
GET
Returns the remote version links associated with the given version ID.
POST
Create a remote version link via POST. The link's global ID will be taken from the JSON payload if provided;
otherwise, it will be generated.
application/json [expand]
201 [expand]
400 [expand]
403 [expand]
404 [expand]
DELETE
204 [expand]
403 [expand]
404 [expand]
/rest/api/2/version/{versionId}/remotelink/{globalId}
resource-wide template parameters
parameter value description
versionId string The version ID of the remote link
globalId string The global ID of the remote link
Methods
GET
POST
Create a remote version link via POST. The link's global ID will be taken from the JSON payload if provided;
otherwise, it will be generated.
application/json [expand]
201 [expand]
400 [expand]
403 [expand]
404 [expand]
DELETE
Delete a specific remote version link with the given version ID and global ID.
204 [expand]
403 [expand]
404 [expand]
/rest/api/2/version/remotelink
Methods
GET
/rest/api/2/version/remotelink?globalId
Returns the remote version links for a given global ID.
/rest/api/2/workflow
REST resource for retrieving workflows.
Methods
GET
/rest/api/2/workflow?workflowName
Returns all workflows.
/rest/api/2/workflow/{id}/properties
resource-wide template parameters
parameter value description
id long the ID of the transition within the workflow.
Methods
GET
/rest/api/2/workflow/{id}/properties?includeReservedKeys&key&workflowName&workflowMode
Return the property or properties associated with a transition.
POST
/rest/api/2/workflow/{id}/properties?key&workflowName&workflowMode
Add a new property to a transition. Trying to add a property that already exists will fail.
application/json [expand]
DELETE
/rest/api/2/workflow/{id}/properties?key&workflowName&workflowMode
Delete a property from the passed transition on the passed workflow. It is not an error to delete a property that does
not exist.
PUT
/rest/api/2/workflow/{id}/properties?key&workflowName&workflowMode
Update/add new property to a transition. Trying to update a property that does not exist will result in a new property
being added.
application/json [expand]
/rest/api/2/workflowscheme
Methods
POST
Create a new workflow scheme. The body contains a representation of the new scheme. Values not passed are
assumed to be set to their defaults.
application/json [expand]
201 [expand]
401 [expand]
/rest/api/2/workflowscheme/{id}
resource-wide template parameters
parameter value description
id long the id of the scheme.
Methods
PUT
Update the passed workflow scheme. The body of the request is a representation of the workflow scheme. Values not
passed are assumed to indicate no change for that field. The passed representation can have its
updateDraftIfNeeded flag set to true to indicate that the draft should be created and/or updated when the actual
scheme cannot be edited (e.g. when the scheme is being used by a project). Values not appearing the body will not
be touched.
application/json [expand]
200 [expand]
401 [expand]
404 [expand]
GET
/rest/api/2/workflowscheme/{id}?returnDraftIfExists
Returns the requested workflow scheme to the caller.
DELETE
/rest/api/2/workflowscheme/{id}/createdraft
resource-wide template parameters
parameter value description
id long the id of the parent scheme.
Methods
POST
Create a draft for the passed scheme. The draft will be a copy of the state of the parent.
201 [expand]
401 [expand]
/rest/api/2/workflowscheme/{id}/default
resource-wide template parameters
parameter value description
id long the id of the scheme.
Methods
GET
/rest/api/2/workflowscheme/{id}/default?returnDraftIfExists
Return the default workflow from the passed workflow scheme.
200 [expand]
401 [expand]
404 [expand]
DELETE
/rest/api/2/workflowscheme/{id}/default?updateDraftIfNeeded
Remove the default workflow from the passed workflow scheme.
200 [expand]
401 [expand]
404 [expand]
PUT
Set the default workflow for the passed workflow scheme. The passed representation can have its
updateDraftIfNeeded flag set to true to indicate that the draft should be created/updated when the actual scheme
cannot be edited.
application/json [expand]
200 [expand]
401 [expand]
404 [expand]
/rest/api/2/workflowscheme/{id}/draft
resource-wide template parameters
parameter value description
id long the id of the parent scheme.
Methods
GET
DELETE
204 [expand]
401 [expand]
404 [expand]
PUT
Update a draft workflow scheme. The draft will created if necessary. The body is a representation of the workflow
scheme. Values not passed are assumed to indicate no change for that field.
application/json [expand]
200 [expand]
401 [expand]
404 [expand]
/rest/api/2/workflowscheme/{id}/draft/default
resource-wide template parameters
parameter value description
id long the id of the parent scheme.
Methods
GET
Return the default workflow from the passed draft workflow scheme to the caller.
200 [expand]
401 [expand]
404 [expand]
DELETE
Remove the default workflow from the passed draft workflow scheme.
200 [expand]
401 [expand]
404 [expand]
PUT
Set the default workflow for the passed draft workflow scheme.
application/json [expand]
200 [expand]
401 [expand]
404 [expand]
/rest/api/2/workflowscheme/{id}/draft/issuetype/{issueType}
resource-wide template parameters
parameter value description
id long the id of the parent scheme.
issueType string the issue type being set.
Methods
GET
Returns the issue type mapping for the passed draft workflow scheme.
DELETE
Remove the specified issue type mapping from the draft scheme.
200 [expand]
401 [expand]
404 [expand]
PUT
Set the issue type mapping for the passed draft scheme. The passed representation can have its
updateDraftIfNeeded flag set to true to indicate that the draft should be created/updated when the actual scheme
cannot be edited.
application/json [expand]
200 [expand]
401 [expand]
404 [expand]
/rest/api/2/workflowscheme/{id}/draft/workflow
resource-wide template parameters
parameter value description
id long the id of the parent scheme.
Methods
GET
/rest/api/2/workflowscheme/{id}/draft/workflow?workflowName
Returns the draft workflow mappings or requested mapping to the caller.
DELETE
/rest/api/2/workflowscheme/{id}/draft/workflow?workflowName
Delete the passed workflow from the draft workflow scheme.
200 [expand]
401 [expand]
404 [expand]
PUT
/rest/api/2/workflowscheme/{id}/draft/workflow?workflowName
Update the draft scheme to include the passed mapping. The body is a representation of the workflow mapping.
Values not passed are assumed to indicate no change for that field.
application/json [expand]
200 [expand]
401 [expand]
/rest/api/2/workflowscheme/{id}/issuetype/{issueType}
resource-wide template parameters
parameter value description
id long the id of the scheme.
issueType string the issue type being set.
Methods
GET
/rest/api/2/workflowscheme/{id}/issuetype/{issueType}?returnDraftIfExists
Returns the issue type mapping for the passed workflow scheme.
DELETE
/rest/api/2/workflowscheme/{id}/issuetype/{issueType}?updateDraftIfNeeded
Remove the specified issue type mapping from the scheme.
200 [expand]
401 [expand]
404 [expand]
PUT
Set the issue type mapping for the passed scheme. The passed representation can have its updateDraftIfNeeded flag
set to true to indicate that the draft should be created/updated when the actual scheme cannot be edited.
application/json [expand]
200 [expand]
401 [expand]
404 [expand]
/rest/api/2/workflowscheme/{id}/workflow
resource-wide template parameters
parameter value description
id long the id of the scheme.
Methods
GET
/rest/api/2/workflowscheme/{id}/workflow?workflowName&returnDraftIfExists
Returns the workflow mappings or requested mapping to the caller for the passed scheme.
DELETE
/rest/api/2/workflowscheme/{id}/workflow?workflowName&updateDraftIfNeeded
Delete the passed workflow from the workflow scheme.
200 [expand]
401 [expand]
404 [expand]
PUT
/rest/api/2/workflowscheme/{id}/workflow?workflowName
Update the scheme to include the passed mapping. The body is a representation of the workflow mapping. Values not
passed are assumed to indicate no change for that field. The passed representation can have its
updateDraftIfNeeded flag set to true to indicate that the draft should be created/updated when the actual scheme
cannot be edited.
application/json [expand]
200 [expand]
401 [expand]
/rest/auth/1/session
Implement a REST resource for acquiring a session cookie.
Methods
POST
Creates a new session for a user in JIRA. Once a session has been successfully created it can be used to access any
of JIRA's remote APIs and also the web UI by passing the appropriate HTTP Cookie header.
Note that it is generally preferrable to use HTTP BASIC authentication with the REST API. However, this resource
may be used to mimic the behaviour of JIRA's log-in page (e.g. to display log-in errors to a user).
Example
{
"username": "fred",
"password": "freds_password"
}
200 [expand]
401 [collapse]
403 [expand]
GET
Returns information about the currently authenticated user's session. If the caller is not authenticated they will get a
401 Unauthorized status code.
200 [expand]
401 [expand]
DELETE
Logs the current user out of JIRA, destroying the existing session, if any.
204 [expand]
401 [expand]
/rest/auth/1/websudo
Methods
DELETE
204 [expand]