{"id":1189,"date":"2023-09-27T09:30:01","date_gmt":"2023-09-27T09:30:01","guid":{"rendered":"https:\/\/titanapps.io\/blog?p=1189"},"modified":"2025-07-07T15:11:26","modified_gmt":"2025-07-07T15:11:26","slug":"jira-api","status":"publish","type":"post","link":"https:\/\/titanapps.io\/blog\/jira-api","title":{"rendered":"How to use Jira API?"},"content":{"rendered":"\n<p>Jira REST API lets users interact with Jira remotely. You can use API calls to interact with common features like work items (issues) and workflows, or you can interact with application-specific features like customer requests that are only available in JSM.\u00a0<\/p>\n\n\n\n<p>In simpler words, Jira REST API lets you either get information from or update Jira without actually touching Jira. Some of the more prominent use cases include creating new work items (issues) in bulk, setting permissions, or developing new Jira apps that need to interact with Jira\u2019s functionality like custom fields, etc.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What do you need to work with Jira REST API?<\/h2>\n\n\n\n<p>Technically, you don\u2019t need much to start working with Jira REST API. Having an API token and an API client should be more than enough to cover a wide variety of cases.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You will need project admin permissions to generate a token.<\/li>\n\n\n\n<li>You can use any API client that suits your needs. I will be using the downloadable version of <a href=\"https:\/\/www.postman.com\/\">Postman<\/a> for this article, but you are free to use any other alternative to it or just stick with good old curl, if that is your cup of tea.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Is there a difference between Jira Cloud REST API and REST API for Jira Data Center?<\/h2>\n\n\n\n<p>You should pay attention to the differences if you are an Atlassian App developer as there may be certain rate limits. Please refer to this documentation for <a href=\"https:\/\/developer.atlassian.com\/cloud\/jira\/platform\/rate-limiting\/\">Jira Cloud<\/a> or to this documentation for <a href=\"https:\/\/developer.atlassian.com\/server\/hipchat\/hipchat-rest-api-rate-limits\/\">Jira Data Center<\/a>.&nbsp;<\/p>\n\n\n\n<p>There\u2019s one more thing you may need to consider. Atlassian rolls out changes to the Cloud API directly. This functions similarly to functionality updates and changes they introduce in Jira Cloud.&nbsp;<\/p>\n\n\n\n<p>There are also certain differences in terms of authentication and authorization. Other than that, Jira REST API for Cloud and Data Center versions of the software has similar functionality. And you\u2019ll need to add a special permission for API tokens in Jira Cloud.&nbsp;<\/p>\n\n\n\n<p>Just remember to refer to the correct version of documentation when there\u2019s a question.&nbsp;<\/p>\n\n\n\n<p>And just so we are on the same page, I\u2019ll be using a Jira Data Center project for the examples in this article.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to create an API Token in Atlassian Jira?<\/h2>\n\n\n\n<p>First thing\u2019s first. You will need to generate a Token to use API calls. These tokens are needed for secure authentication.&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on your avatar<\/li>\n\n\n\n<li>Click on profile<\/li>\n\n\n\n<li>Select Personal Access Tokens<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"3562\" height=\"2041\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited.png\" alt=\"\" class=\"wp-image-1804\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited.png 3562w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited-300x172.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited-1024x587.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited-768x440.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited-1536x880.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited-2048x1173.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-54-edited-1100x630.png 1100w\" sizes=\"(max-width: 3562px) 100vw, 3562px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a new token\n<ol class=\"wp-block-list\">\n<li>Type the name of your token<\/li>\n\n\n\n<li>Select the automatic expiry date&nbsp;<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"3098\" height=\"2152\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited.png\" alt=\"\" class=\"wp-image-1806\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited.png 3098w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited-300x208.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited-1024x711.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited-768x533.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited-1536x1067.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited-2048x1423.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-55-edited-1100x764.png 1100w\" sizes=\"(max-width: 3098px) 100vw, 3098px\" \/><\/figure>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Generate your Token\n<ol class=\"wp-block-list\">\n<li>Copy the token you see on the screen. You will not be able to see this token after you close the token screen. You can also save it somewhere, though this option isn\u2019t recommended since saving a token isn\u2019t what I\u2019d call secure. Therefore, I highly suggest you copy the token straight into Postman (or whichever app you\u2019ll be using to interact with Jira).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<p>Now that we have our token, let\u2018s use it for authorization in Postman.&nbsp;&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open a new tab in Postman<\/li>\n\n\n\n<li>Go to authorization (Auth)<\/li>\n\n\n\n<li>Select the Bearer Token as Type and paste your Token<\/li>\n\n\n\n<li>Go to body and select raw and JSON from the drop-down menus<\/li>\n\n\n\n<li>Type in your URL and select the HTTP request like <code>POST<\/code> or <code>GET<\/code>, depending on your needs. You can rely on <a href=\"https:\/\/developer.atlassian.com\/server\/jira\/platform\/rest-apis\/\">Atlassian Documentation<\/a> to generate a correct URL.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"3098\" height=\"2152\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited.png\" alt=\"\" class=\"wp-image-1808\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited.png 3098w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited-300x208.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited-1024x711.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited-768x533.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited-1536x1067.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited-2048x1423.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-56-edited-1100x764.png 1100w\" sizes=\"(max-width: 3098px) 100vw, 3098px\" \/><\/figure>\n\n\n\n<p>That\u2019s pretty much the whole setup. You have everything you need to work with Jira without Jira ?.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating and editing work items (issues) with API calls: examples<\/h2>\n\n\n\n<p>Let\u2019s start with something simple. We will create a new work item in your Jira project. The following code will create a task work type inside a project you\u2019ve specified using the project key. As you can see, I\u2019ve also specified the summary and description in this example.\u00a0<\/p>\n\n\n\n<div class=\"copy-template \">\n    <div class=\"copy-template__lines\">\n    <div class=\"copy-template__top\"><\/div>\n    <div class=\"copy-template__markdown\">\n      <p>{<br \/>\n   &#8220;fields&#8221;: {<br \/>\n       &#8220;project&#8221;: {<br \/>\n           &#8220;key&#8221;: &#8220;JAP&#8221;<br \/>\n       },<br \/>\n       &#8220;summary&#8221;: &#8220;New task from Postman&#8221;,<br \/>\n       &#8220;issuetype&#8221;: {<br \/>\n           &#8220;name&#8221;: &#8220;Task&#8221;<br \/>\n       },<br \/>\n       &#8220;description&#8221;: &#8220;This is a new task you&#8217;ve created from Postman&#8221;<br \/>\n   }<br \/>\n}<\/p>\n    <\/div>\n    <div class=\"copy-template__bottom\"><\/div>\n  <\/div>\n  <button class=\"copy-template__copy btn btn-primary\">\n    <i class=\"icon-copy\"><\/i>\n    Copy    <span class=\"copy-template__copied\">Copied<\/span>\n  <\/button>\n<\/div>\n\n\n\n<p>You can be much more descriptive when creating work items. For example, the following code will add an assignee and a label to your newly created ticket.<\/p>\n\n\n\n<div class=\"copy-template \">\n    <div class=\"copy-template__lines\">\n    <div class=\"copy-template__top\"><\/div>\n    <div class=\"copy-template__markdown\">\n      <p>{<br \/>\n   &#8220;fields&#8221;: {<br \/>\n       &#8220;project&#8221;: {<br \/>\n           &#8220;key&#8221;: &#8220;JAP&#8221;<br \/>\n       },<br \/>\n       &#8220;summary&#8221;: &#8220;Another Task From Postman&#8221;,<br \/>\n       &#8220;issuetype&#8221;: {<br \/>\n           &#8220;name&#8221;: &#8220;Task&#8221;<br \/>\n       },<br \/>\n       &#8220;description&#8221;: &#8220;This is a task you&#8217;ve created from Postman&#8221;,<br \/>\n       &#8220;assignee&#8221;: {<br \/>\n           &#8220;name&#8221;: &#8220;admin&#8221;<br \/>\n       },<br \/>\n       &#8220;labels&#8221;: [<br \/>\n           &#8220;demo&#8221;<br \/>\n       ]<br \/>\n   }<br \/>\n}<\/p>\n    <\/div>\n    <div class=\"copy-template__bottom\"><\/div>\n  <\/div>\n  <button class=\"copy-template__copy btn btn-primary\">\n    <i class=\"icon-copy\"><\/i>\n    Copy    <span class=\"copy-template__copied\">Copied<\/span>\n  <\/button>\n<\/div>\n\n\n\n<p>Alternatively, you can post updates to your tickets from the Postman interface. For example, this code will create a new comment inside a specific ticket.<\/p>\n\n\n\n<div class=\"copy-template \">\n    <div class=\"copy-template__lines\">\n    <div class=\"copy-template__top\"><\/div>\n    <div class=\"copy-template__markdown\">\n      <p>{<br \/>\n   &#8220;body&#8221;: &#8220;This is a brand new comment&#8221;<br \/>\n}<\/p>\n    <\/div>\n    <div class=\"copy-template__bottom\"><\/div>\n  <\/div>\n  <button class=\"copy-template__copy btn btn-primary\">\n    <i class=\"icon-copy\"><\/i>\n    Copy    <span class=\"copy-template__copied\">Copied<\/span>\n  <\/button>\n<\/div>\n\n\n\n<p>That being said, you need to specify the work item you want to update inside Postman\u2019s URL field. For example, I used \u201c<code>JAP-1<\/code>\u201d because it is the work item ID I wanted to update, and I also used <code>comment<\/code> to specify what I wanted to do.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1816\" height=\"2262\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited.png\" alt=\"\" class=\"wp-image-1810\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited.png 1816w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited-241x300.png 241w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited-822x1024.png 822w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited-768x957.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited-1233x1536.png 1233w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited-1644x2048.png 1644w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-57-edited-1100x1370.png 1100w\" sizes=\"(max-width: 1816px) 100vw, 1816px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Working with Jira API simplified<\/h2>\n\n\n\n<p>Modifying work items one by one through API is barely faster than doing the same directly in Jira. Modifying several dozens of work items at once &#8211; now that\u2019s where the fun begins.\u00a0<\/p>\n\n\n\n<p>Let\u2019s look at two examples of creating work items in bulk using Jira API. The first example is importing work items from a CSV file.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bulk update from CSV<\/h3>\n\n\n\n<p>For starters, you need to transform your work item key and the comment body into variables. Replace the actual work item key in the URL field for <code>{{issuekey}}<\/code> and the body of the comment to <code>{{comment}}<\/code>.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"3098\" height=\"2152\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited.png\" alt=\"\" class=\"wp-image-1812\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited.png 3098w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited-300x208.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited-1024x711.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited-768x533.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited-1536x1067.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited-2048x1423.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-58-edited-1100x764.png 1100w\" sizes=\"(max-width: 3098px) 100vw, 3098px\" \/><\/figure>\n\n\n\n<p>Next, create a CSV file and populate it with work item keys and comments. Make sure to name your columns the same way as the variables. Save your CSV file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2228\" height=\"1683\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited.png\" alt=\"\" class=\"wp-image-1814\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited.png 2228w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited-300x227.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited-1024x774.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited-768x580.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited-1536x1160.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited-2048x1547.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-59-edited-1100x831.png 1100w\" sizes=\"(max-width: 2228px) 100vw, 2228px\" \/><\/figure>\n\n\n\n<p>Go back to Postman. We will be using the Runner feature. You can access it by clicking on the Runner button at the bottom of the app\u2019s interface.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"3098\" height=\"2152\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited.png\" alt=\"\" class=\"wp-image-1816\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited.png 3098w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited-300x208.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited-1024x711.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited-768x533.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited-1536x1067.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited-2048x1423.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/09\/Untitled-60-edited-1100x764.png 1100w\" sizes=\"(max-width: 3098px) 100vw, 3098px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Select the option you\u2019d like to proceed with. In our case, I\u2019ll go with Running manually.&nbsp;<\/li>\n\n\n\n<li>Click on the Select file button to upload your CSV. You\u2019ll see that the number in the Iterations field has changed. This number corresponds to the number of rows you have in your Excel sheet.&nbsp;<\/li>\n\n\n\n<li>Drag the POST function you\u2019d like to run into the Run order column from the Collections folder.&nbsp;<\/li>\n\n\n\n<li>You can use the history tab to find the POST function if you haven\u2019t created a collection yet. Hover over the function, click on the + button, and add it to your collection.&nbsp;<\/li>\n\n\n\n<li>Click on the now brightly orange Run Jira button.&nbsp;<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Bulk update from JSON representation<\/h3>\n\n\n\n<p>The second example is the creation of multiple work items or sub-tasks from a JSON representation. The method you will be using is <code>POST \/rest\/api\/2\/issue\/bulk<\/code><\/p>\n\n\n\n<p>Here is an example of a request provided by <a href=\"https:\/\/docs.atlassian.com\/software\/jira\/docs\/api\/REST\/9.11.0\/#api\/2\/issue-createIssues\">Atlassian documentation<\/a>:<\/p>\n\n\n\n<div class=\"copy-template \">\n    <div class=\"copy-template__lines\">\n    <div class=\"copy-template__top\"><\/div>\n    <div class=\"copy-template__markdown\">\n      <p>{<br \/>\n    &#8220;issueUpdates&#8221;: [<br \/>\n        {<br \/>\n            &#8220;update&#8221;: {<br \/>\n                &#8220;worklog&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;add&#8221;: {<br \/>\n                            &#8220;timeSpent&#8221;: &#8220;60m&#8221;,<br \/>\n                            &#8220;started&#8221;: &#8220;2011-07-05T11:05:00.000+0000&#8221;<br \/>\n                        }<br \/>\n                    }<br \/>\n                ]<br \/>\n            },<br \/>\n            &#8220;fields&#8221;: {<br \/>\n                &#8220;project&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                },<br \/>\n                &#8220;summary&#8221;: &#8220;something&#8217;s wrong&#8221;,<br \/>\n                &#8220;issuetype&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                },<br \/>\n                &#8220;assignee&#8221;: {<br \/>\n                    &#8220;name&#8221;: &#8220;homer&#8221;<br \/>\n                },<br \/>\n                &#8220;reporter&#8221;: {<br \/>\n                    &#8220;name&#8221;: &#8220;smithers&#8221;<br \/>\n                },<br \/>\n                &#8220;priority&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;20000&#8221;<br \/>\n                },<br \/>\n                &#8220;labels&#8221;: [<br \/>\n                    &#8220;bugfix&#8221;,<br \/>\n                    &#8220;blitz_test&#8221;<br \/>\n                ],<br \/>\n                &#8220;timetracking&#8221;: {<br \/>\n                    &#8220;originalEstimate&#8221;: &#8220;10&#8221;,<br \/>\n                    &#8220;remainingEstimate&#8221;: &#8220;5&#8221;<br \/>\n                },<br \/>\n                &#8220;security&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                },<br \/>\n                &#8220;versions&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                    }<br \/>\n                ],<br \/>\n                &#8220;environment&#8221;: &#8220;environment&#8221;,<br \/>\n                &#8220;description&#8221;: &#8220;description&#8221;,<br \/>\n                &#8220;duedate&#8221;: &#8220;2011-03-11&#8221;,<br \/>\n                &#8220;fixVersions&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;id&#8221;: &#8220;10001&#8221;<br \/>\n                    }<br \/>\n                ],<br \/>\n                &#8220;components&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                    }<br \/>\n                ],<br \/>\n                &#8220;customfield_30000&#8221;: [<br \/>\n                    &#8220;10000&#8221;,<br \/>\n                    &#8220;10002&#8221;<br \/>\n                ],<br \/>\n                &#8220;customfield_80000&#8221;: {<br \/>\n                    &#8220;value&#8221;: &#8220;red&#8221;<br \/>\n                },<br \/>\n                &#8220;customfield_20000&#8221;: &#8220;06\/Jul\/11 3:25 PM&#8221;,<br \/>\n                &#8220;customfield_40000&#8221;: &#8220;this is a text field&#8221;,<br \/>\n                &#8220;customfield_70000&#8221;: [<br \/>\n                    &#8220;jira-administrators&#8221;,<br \/>\n                    &#8220;jira-software-users&#8221;<br \/>\n                ],<br \/>\n                &#8220;customfield_60000&#8221;: &#8220;jira-software-users&#8221;,<br \/>\n                &#8220;customfield_50000&#8221;: &#8220;this is a text area. big text.&#8221;,<br \/>\n                &#8220;customfield_10000&#8221;: &#8220;09\/Jun\/81&#8221;<br \/>\n            }<br \/>\n        },<br \/>\n        {<br \/>\n            &#8220;update&#8221;: {},<br \/>\n            &#8220;fields&#8221;: {<br \/>\n                &#8220;project&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;1000&#8221;<br \/>\n                },<br \/>\n                &#8220;summary&#8221;: &#8220;something&#8217;s very wrong&#8221;,<br \/>\n                &#8220;issuetype&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                },<br \/>\n                &#8220;assignee&#8221;: {<br \/>\n                    &#8220;name&#8221;: &#8220;jerry&#8221;<br \/>\n                },<br \/>\n                &#8220;reporter&#8221;: {<br \/>\n                    &#8220;name&#8221;: &#8220;kosecki&#8221;<br \/>\n                },<br \/>\n                &#8220;priority&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;20000&#8221;<br \/>\n                },<br \/>\n                &#8220;labels&#8221;: [<br \/>\n                    &#8220;new_release&#8221;<br \/>\n                ],<br \/>\n                &#8220;timetracking&#8221;: {<br \/>\n                    &#8220;originalEstimate&#8221;: &#8220;15&#8221;,<br \/>\n                    &#8220;remainingEstimate&#8221;: &#8220;5&#8221;<br \/>\n                },<br \/>\n                &#8220;security&#8221;: {<br \/>\n                    &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                },<br \/>\n                &#8220;versions&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                    }<br \/>\n                ],<br \/>\n                &#8220;environment&#8221;: &#8220;environment&#8221;,<br \/>\n                &#8220;description&#8221;: &#8220;description&#8221;,<br \/>\n                &#8220;duedate&#8221;: &#8220;2011-04-16&#8221;,<br \/>\n                &#8220;fixVersions&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;id&#8221;: &#8220;10001&#8221;<br \/>\n                    }<br \/>\n                ],<br \/>\n                &#8220;components&#8221;: [<br \/>\n                    {<br \/>\n                        &#8220;id&#8221;: &#8220;10000&#8221;<br \/>\n                    }<br \/>\n                ],<br \/>\n                &#8220;customfield_30000&#8221;: [<br \/>\n                    &#8220;10000&#8221;,<br \/>\n                    &#8220;10002&#8221;<br \/>\n                ],<br \/>\n                &#8220;customfield_80000&#8221;: {<br \/>\n                    &#8220;value&#8221;: &#8220;red&#8221;<br \/>\n                },<br \/>\n                &#8220;customfield_20000&#8221;: &#8220;06\/Jul\/11 3:25 PM&#8221;,<br \/>\n                &#8220;customfield_40000&#8221;: &#8220;this is a text field&#8221;,<br \/>\n                &#8220;customfield_70000&#8221;: [<br \/>\n                    &#8220;jira-administrators&#8221;,<br \/>\n                    &#8220;jira-software-users&#8221;<br \/>\n                ],<br \/>\n                &#8220;customfield_60000&#8221;: &#8220;jira-software-users&#8221;,<br \/>\n                &#8220;customfield_50000&#8221;: &#8220;this is a text area. big text.&#8221;,<br \/>\n                &#8220;customfield_10000&#8221;: &#8220;09\/Jun\/81&#8221;<br \/>\n            }<br \/>\n        }<br \/>\n    ]<br \/>\n}<\/p>\n    <\/div>\n    <div class=\"copy-template__bottom\"><\/div>\n  <\/div>\n  <button class=\"copy-template__copy btn btn-primary\">\n    <i class=\"icon-copy\"><\/i>\n    Copy    <span class=\"copy-template__copied\">Copied<\/span>\n  <\/button>\n<\/div>\n\n\n\n<p>Some other examples of operations with work items using API include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Editing and deleting work items;<\/li>\n\n\n\n<li>Notifying users;<\/li>\n\n\n\n<li>Getting, updating, and deleting comments;<\/li>\n\n\n\n<li>Getting the work item work log, and much more.\u00a0<\/li>\n<\/ul>\n\n\n\n<p>That said, you are not limited to operations with work items with Jira REST API. You can work with fields, dashboards, components, filters, groups, and so much more. Please refer to Atlassian documentation for a <a href=\"https:\/\/docs.atlassian.com\/software\/jira\/docs\/api\/REST\/9.11.0\/\">full list of API references<\/a>.<\/p>\n\n\n\n<p>It is also worth mentioning that Jira API is not limited to Jira itself. You can use API calls to interact with the apps you\u2019ve installed from the Atlassian Marketplace. For instance, you can read, update, and delete checklists with <a href=\"https:\/\/railsware.atlassian.net\/wiki\/spaces\/CHKSDC\/pages\/3238854657\/Smart+Checklist+REST+API+v1.0\">Smart Checklist REST API<\/a>. This is interesting for cases when you need to get Smart Checklist history in a specific work item.\u00a0<\/p>\n\n\n\n<section class=\"banner-block\">\n  <div class=\"banner-block__info\">\n    <h5 class=\"banner-block__title\">Add checklists to your Jira tasks<\/h5>\n        <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1216451\/smart-checklist-for-jira-pro?utm_source=scblog&#038;utm_medium=seo&#038;utm_campaign=jiraworkflow\" target=\"_blank\" class=\"banner-block__link btn btn-orange\" >Try it free<\/a>\n  <\/div>\n  <div class=\"banner-block__image\">\n    <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2020\/05\/Smart-Checklist_Jira-3.svg\" alt=\"\" width=\"420\" height=\"331\">\n  <\/div>\n<\/section>\n\n\n\n<section class=\"writer\">\n  <div class=\"writer__image\">\n    <img alt='Oleksandr Siryi' src='https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/05\/oleksandr-siryi_avatar-180x180.png' srcset='https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/05\/oleksandr-siryi_avatar-361x360.png 2x' class='avatar avatar-180 photo' height='180' width='180' \/>  <\/div>\n\n  <div class=\"writer-data\">\n    <span class=\"writer-data__label\">Article by<\/span>\n    <span class=\"writer-data__name\">\n      Oleksandr Siryi    <\/span>\n    <div class=\"writer-data__bio\">\n          <\/div>\n\n      <\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Jira REST API lets users interact with Jira remotely. You can use API calls to interact with common features like work items (issues) and workflows, or you can interact with application-specific features like customer requests that are only available in JSM.\u00a0 In simpler words, Jira REST API lets you either get information from or update [&hellip;]<\/p>\n","protected":false},"author":181780125,"featured_media":6499,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1401,1405,1419,1409],"tags":[],"coauthors":[1427],"class_list":["post-1189","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-article","category-atlassian-jira","category-project-management","category-smart-checklist"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jira API 101 [Use Cases Included] | TitanApps Blog<\/title>\n<meta name=\"description\" content=\"Learn how to use API calls to interact with common features of Jira like fields, work items (issues) and workflows.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/titanapps.io\/blog\/jira-api\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jira API 101 [Use Cases Included] | Smart Checklist Blog\" \/>\n<meta property=\"og:description\" content=\"Learn how to use API calls to interact with common features of Jira like fields, issues and workflows.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/titanapps.io\/blog\/jira-api\" \/>\n<meta property=\"og:site_name\" content=\"Titanapps\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-27T09:30:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-07T15:11:26+00:00\" \/>\n<meta name=\"author\" content=\"Oleksandr Siryi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oleksandr Siryi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/titanapps.io\/blog\/jira-api\",\"url\":\"https:\/\/titanapps.io\/blog\/jira-api\",\"name\":\"Jira API 101 [Use Cases Included] | TitanApps Blog\",\"isPartOf\":{\"@id\":\"https:\/\/titanapps.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/titanapps.io\/blog\/jira-api#primaryimage\"},\"image\":{\"@id\":\"https:\/\/titanapps.io\/blog\/jira-api#primaryimage\"},\"thumbnailUrl\":\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2023\/09\/How-to-use-Jira-API-1.svg\",\"datePublished\":\"2023-09-27T09:30:01+00:00\",\"dateModified\":\"2025-07-07T15:11:26+00:00\",\"author\":{\"@id\":\"https:\/\/titanapps.io\/blog\/#\/schema\/person\/e31194dd28ed4ff3f447c7ce300f46cf\"},\"description\":\"Learn how to use API calls to interact with common features of Jira like fields, work items (issues) and workflows.\",\"breadcrumb\":{\"@id\":\"https:\/\/titanapps.io\/blog\/jira-api#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/titanapps.io\/blog\/jira-api\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/titanapps.io\/blog\/jira-api#primaryimage\",\"url\":\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2023\/09\/How-to-use-Jira-API-1.svg\",\"contentUrl\":\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2023\/09\/How-to-use-Jira-API-1.svg\",\"width\":480,\"height\":314},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/titanapps.io\/blog\/jira-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/titanapps.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use Jira API?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/titanapps.io\/blog\/#website\",\"url\":\"https:\/\/titanapps.io\/blog\/\",\"name\":\"Titanapps\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/titanapps.io\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/titanapps.io\/blog\/#\/schema\/person\/e31194dd28ed4ff3f447c7ce300f46cf\",\"name\":\"Oleksandr Siryi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/titanapps.io\/blog\/#\/schema\/person\/image\/3071edc8a225b0198b189bd93cd7db6f\",\"url\":\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/05\/oleksandr-siryi_avatar-96x96.png\",\"contentUrl\":\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/05\/oleksandr-siryi_avatar-96x96.png\",\"caption\":\"Oleksandr Siryi\"},\"sameAs\":[\"http:\/\/blogjirachecklist.wordpress.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jira API 101 [Use Cases Included] | TitanApps Blog","description":"Learn how to use API calls to interact with common features of Jira like fields, work items (issues) and workflows.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/titanapps.io\/blog\/jira-api","og_locale":"en_US","og_type":"article","og_title":"Jira API 101 [Use Cases Included] | Smart Checklist Blog","og_description":"Learn how to use API calls to interact with common features of Jira like fields, issues and workflows.","og_url":"https:\/\/titanapps.io\/blog\/jira-api","og_site_name":"Titanapps","article_published_time":"2023-09-27T09:30:01+00:00","article_modified_time":"2025-07-07T15:11:26+00:00","author":"Oleksandr Siryi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oleksandr Siryi","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/titanapps.io\/blog\/jira-api","url":"https:\/\/titanapps.io\/blog\/jira-api","name":"Jira API 101 [Use Cases Included] | TitanApps Blog","isPartOf":{"@id":"https:\/\/titanapps.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/titanapps.io\/blog\/jira-api#primaryimage"},"image":{"@id":"https:\/\/titanapps.io\/blog\/jira-api#primaryimage"},"thumbnailUrl":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2023\/09\/How-to-use-Jira-API-1.svg","datePublished":"2023-09-27T09:30:01+00:00","dateModified":"2025-07-07T15:11:26+00:00","author":{"@id":"https:\/\/titanapps.io\/blog\/#\/schema\/person\/e31194dd28ed4ff3f447c7ce300f46cf"},"description":"Learn how to use API calls to interact with common features of Jira like fields, work items (issues) and workflows.","breadcrumb":{"@id":"https:\/\/titanapps.io\/blog\/jira-api#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/titanapps.io\/blog\/jira-api"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/titanapps.io\/blog\/jira-api#primaryimage","url":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2023\/09\/How-to-use-Jira-API-1.svg","contentUrl":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2023\/09\/How-to-use-Jira-API-1.svg","width":480,"height":314},{"@type":"BreadcrumbList","@id":"https:\/\/titanapps.io\/blog\/jira-api#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/titanapps.io\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use Jira API?"}]},{"@type":"WebSite","@id":"https:\/\/titanapps.io\/blog\/#website","url":"https:\/\/titanapps.io\/blog\/","name":"Titanapps","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/titanapps.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/titanapps.io\/blog\/#\/schema\/person\/e31194dd28ed4ff3f447c7ce300f46cf","name":"Oleksandr Siryi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/titanapps.io\/blog\/#\/schema\/person\/image\/3071edc8a225b0198b189bd93cd7db6f","url":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/05\/oleksandr-siryi_avatar-96x96.png","contentUrl":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/05\/oleksandr-siryi_avatar-96x96.png","caption":"Oleksandr Siryi"},"sameAs":["http:\/\/blogjirachecklist.wordpress.com"]}]}},"article_bg":"#F2F6F5","_links":{"self":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts\/1189"}],"collection":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/users\/181780125"}],"replies":[{"embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/comments?post=1189"}],"version-history":[{"count":18,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts\/1189\/revisions"}],"predecessor-version":[{"id":5762,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts\/1189\/revisions\/5762"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/media\/6499"}],"wp:attachment":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/media?parent=1189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/categories?post=1189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/tags?post=1189"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/coauthors?post=1189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}