Child pages
  • UPM REST API
Skip to end of metadata
Go to start of metadata

At the moment this is a HOWTO rather than formal API documentation.

How do I get a list of installed plugins?

Using sysadmin credentials:

GET /rest/plugins/1.0/

Note the trailing /. Each element in the plugins array will contain a name and key, among other attributes. You can use the plugin's self link for retrieving detailed information about the plugin or modifying the plugin itself.

How do I disable a plugin?

  1. Retrieve the plugin's JSON representation (with sysadmin credentials):

    GET /rest/plugins/1.0/${plugin.key}-key
    


  2. Set the enabled field in the JSON representation to false
  3. Put the updated representation on the application (with sysadmin credentials):

    PUT /rest/plugins/1.0/${plugin.key}-key
    Content-Type: application/vnd.atl.plugins.plugin+json
    
    [JSON representation in BODY]


How do I uninstall a plugin?

  1. Make a DELETE request (with sysadmin credentials):

    DELETE /rest/plugins/1.0/${plugin.key}-key

    A 204 "no content" response indicates a successful uninstallation.

  • No labels

12 Comments

  1. Is there an endpoint that I can manage UPM settings?

    1. Yes. The API is available at /rest/plugins/1.0/settings. Inspecting your browser's web console will get you details about the API's content type, expected payload and other details.

  2. Should this also work for Confluence? JIRA works fine, but Confluence reports 401 on /rest/plugins/1.0/

    1. Yes, this API should work for JIRA, Confluence, Bamboo, and Bitbucket Server! You're likely getting a 401 because you don't have sufficient access. Only administrators can access this resource.

      1. Well - i should be administrator on my local dev environment (big grin)

  3. I'm a bit confused on how to update a plugin's value, specifically the plugin license. We frequently refresh our test instance of JIRA with production data, and we would like to replace plugin's license keys back to our test keys once we've refreshed. I'm able to successfully GET /plugins/1.0/{plugin-key}/license but cannot figure out the correct data type/syntax for a PUT.


    Any help would be appreciated Ben Woskow

    1. You need to do a PUT to that URL (/plugins/1.0/{plugin-key}/license). The request body should contain a rawLicense property (similar to that of the GET response) and the content type should be application/vnd.atl.plugins+json.

      1. {
            "rawLicense":" license key here "
        }

        Like that? Or do I have to send back the same response as a GET but with the rawLicense property updated? I'm getting a 400 Bad Request (upm.plugin.license.error.invalid.update) when I just send the above. 

        1. Yeah, your request body looks valid. You should only receive that error message if your request results in no change; in other words, you're requesting to set the license to the value that's already set.

          If you are still running into errors, another suggestion is to open your browser's web console and monitor XHR requests as you add and remove your add-ons' licenses. UPM's UI uses these REST APIs.

          1. Ahhh yes I was sending the same license initially just looking for a valid response. Ok so I don't need to send an entire JSON representation of the plugin back, just the fields I want to update. Also I notice in this doc you specify

            application/vnd.atl.plugins.plugin+json

            as the Content Type but it looks like the correct Type is 

            application/vnd.atl.plugins+json

            Like you mentioned in your comment. 


            Thanks for the help, If I run into errors I will check out the requests being sent in the browser.

  4. Hi, is there any REST API to install a JIRA plugin?

  5. Hello,

    any chance to upgrade a plugin via the API ? (in Confluence, as this is supposed to work as well)