JIRA REST API Example Create Issue 7897248
JIRA REST API Example Create Issue 7897248
We’re making changes to our server and Data Center products, including the end of sale for new server licenses on February 2, 2021 and
the end of support for server on February 2, 2024. Learn what this means for you.
The JIRA REST api allows you to easily create an issue. You can POST a single JSON document.
The examples shown here use curl with an input file denoted by the "--data @filename" syntax and the file
data is shown separately
1 http://localhost:8090/rest/api/2/issue/createmeta
2
This will return all of the create metadata for all issue types across all projects.
You most likely want a subset of that information, for example for a specific project and issue type, which you can ask for
by specifying the project ids, project names, issue type ids, or issue type names in the URL. For example, to get the create
metadata for the Bug issue type in the JRA project:
1 http://localhost:8090/rest/api/2/issue/createmeta?projectKeys=JRA&issuetypeNames=Bug&expand=projects.
2
See the Discovering meta-data for creating issues tutorial for more information
Request
1 curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json" http://localhost
2
Data
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 1/7
6/26/22, 8:54 PM JIRA REST API Example Create Issue 7897248
1 {
2 "fields": {
"project":
{
"key": "TEST"
},
"summary": "REST ye merry gentlemen.",
"description": "Creating of an issue using project keys and issue type names using the REST AP
"issuetype": {
"name": "Bug"
}
}
}
Response
1 {
2 "id":"39000",
"key":"TEST-101",
"self":"http://localhost:8090/rest/api/2/issue/39000"
}
Example of creating an issue using project ids and issue type ids.
Programs using REST may have queried the set of projects and issue ids (for example via createmeta above), and not want
to use the names of projects or issue types. They can just as easily use ids, as in the example below:
Request
1 curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json" http://localhost
2
Data
1 {
2 "fields": {
"project":
{
"id": "10110"
},
"summary": "No REST for the Wicked.",
"description": "Creating of an issue using ids for projects and issue types using the REST API
"issuetype": {
"id": "1"
}
}
}
Response
The response provides the issue id, key, and the URL to the issue (which can then be used to GET additional data, PUT
updates, etc) via the REST API.
1 {
2 "id":"39001",
"key":"TEST-102",
"self":"http://localhost:8090/rest/api/2/issue/39001"
}
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 2/7
6/26/22, 8:54 PM JIRA REST API Example Create Issue 7897248
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.
Because a sub-task is essentially a special type of issue, the sub-task creation request and response are very similar to
issue creation, as you can see from the following examples.
Request
1 curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json" http://localhost
2
Data
1 {
2 "fields":
{
"project":
{
"key": "TEST"
},
"parent":
{
"key": "TEST-101"
},
"summary": "Sub-task of TEST-101",
"description": "Don't forget to do this too.",
"issuetype":
{
"id": "5"
}
}
}
Response
The response provides the sub-task id, key, and the URL to the issue (which can then be used to GET additional data, PUT
updates, etc) via the REST API.
1 {
2 "id":"39002",
"key":"TEST-103",
"self":"http://localhost:8090/rest/api/2/issue/39002"
}
In REST in JIRA, customfields are referenced by "customfield_" + the id of the custom field.
So the "Story Points" custom field, with id = "10000", would be referenced as "customfield_10000" for the field name in
the JIRA REST API.
If you're looking to always set a specific field, such as "Story Points", you should first GET the createmeta information for
the issue type, and then get the appropriate custom field id for that field name.
In the example below, we have a field called "Explanation" that is a Free Text Field in JIRA, and the id of that field is 11050,
so we reference the field as "customfield_11050". Notice that the name of the field "Explanation" is not used anywhere.
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 3/7
6/26/22, 8:54 PM JIRA REST API Example Create Issue 7897248
Request
1 curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json" http://localhost
2
Data
1 {
2 "fields": {
"project":
{
"key": "TEST"
},
"summary": "Always do right. This will gratify some people and astonish the REST.",
"description": "Creating an issue while setting custom field values",
"issuetype": {
"name": "Bug"
},
"customfield_11050" : "Value that we're putting into a Free Text Field."
}
}
Response
1 {
2 "id":"39002",
"key":"TEST-103",
"self":"http://localhost:8090/rest/api/2/issue/TEST-103"
}
Examples of how to set custom field data for other field types:
CascadingSelectField
The value associated with "name" ("green" in this example) is the parent option selected, then "blue" is the child option }
DatePickerField
1 "customfield_10002": "2011-10-03"
2
DateTimeField
1 "customfield_10003": "2011-10-19T10:29:29.908+1100"
2
FreeTextField
GroupPicker
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 4/7
6/26/22, 8:54 PM JIRA REST API Example Create Issue 7897248
1
2
Labels
MultiGroupPicker
MultiSelect
MultiUserPicker
Array of users
NumberField
1 "customfield_10010": 42.07
2
ProjectPicker
1 { "id":"10000" }
2
RadioButtons
SelectList
SingleVersionPicker
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 5/7
6/26/22, 8:54 PM JIRA REST API Example Create Issue 7897248
TextField
URLField
1 "customfield_10016": "http://www.atlassian.com"
2
UserPicker
1 "customfield_10017": { "name":"brollins" }
2
VersionPicker
1 "timetracking":
2 {
"originalEstimate": "1d 2h",
"remainingEstimate": "3h 25m"
}
Time tracking must be enabled to set these fields. In addition, if you are using the JIRA "Legacy" time tracking mode (set
by a JIRA Administrator), then only the remaining estimate can be set, so the "originalestimate" field should not be
included in the REST request.
Request
No different from any of the other examples, the create is simply a POST:
1 curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json" http://localhost
2
Data
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 6/7
6/26/22, 8:54 PM JIRA REST API Example Create Issue 7897248
1 {
2 "fields": {
"project":
{
"key": "TEST"
},
"summary": "Who seeks a faultless friend RESTs friendless.",
"description": "Creating an issue and setting time tracking fields",
"issuetype": {
"name": "Bug"
},
"timetracking":
{
"originalEstimate": "1d 2h",
"remainingEstimate": "3h 25m"
}
}
}
Response
1 {
2 "id":"39003",
"key":"TEST-104",
"self":"http://localhost:8090/rest/api/2/issue/TEST-104"
}
System status
Privacy
Developer Terms
Trademark
© 2022 Atlassian
https://developer.atlassian.com/server/jira/platform/jira-rest-api-example-create-issue-7897248/ 7/7