> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Atlassian

> Access the Atlassian API in 2 minutes 💨

<Tabs>
  <Tab title="🚀 Quickstart">
    <Steps>
      <Step title="Create an integration">
        In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *Atlassian*. Nango doesn't provide a test OAuth app for Atlassian yet. You’ll need to set up your own by following these [instructions](#🧑%E2%80%8D💻-oauth-app-setup). After that, make sure to add the OAuth client ID, secret, and scopes in the integration settings in Nango.
      </Step>

      <Step title="Authorize Atlassian">
        Go to [Connections](https://app.nango.dev/dev/connections) -> *Add Test Connection* -> *Authorize*, then log in to Atlassian. Later, you'll let your users do the same directly from your app.
      </Step>

      <Step title="Call the Atlassian API">
        Let's make your first request to the Atlassian API (fetch accessible resources). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

        <Tabs>
          <Tab title="cURL">
            ```bash theme={null}
            curl "https://api.nango.dev/proxy/oauth/token/accessible-resources" \
              -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
              -H "Provider-Config-Key: <INTEGRATION-ID>" \
              -H "Connection-Id: <CONNECTION-ID>"
            ```
          </Tab>

          <Tab title="Node">
            Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

            ```typescript theme={null}
            import { Nango } from '@nangohq/node';

            const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

            const res = await nango.get({
                endpoint: '/oauth/token/accessible-resources',
                providerConfigKey: '<INTEGRATION-ID>',
                connectionId: '<CONNECTION-ID>'
            });

            console.log(JSON.stringify(res.data, null, 2));
            ```
          </Tab>
        </Tabs>

        Or fetch credentials dynamically via the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).
      </Step>
    </Steps>

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

    <Tip>
      Next step: [Embed the auth flow](/guides/primitives/auth) in your app to let your users connect their Atlassian accounts.
    </Tip>
  </Tab>

  <Tab title="🧑‍💻 OAuth app setup">
    <Steps>
      <Step title="Create an Atlassian developer account">
        If you don't already have one, sign up for an [Atlassian developer account](https://id.atlassian.com/signup/).
      </Step>

      <Step title="Create a new OAuth 2.0 (3LO) app">
        1. Go to the [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/).
        2. Click **Create** and select **OAuth 2.0 integration**.
        3. Enter a name, agree to Atlassian's developer terms by checking the agreement checkbox for your app and click **Create**.
        4. Your app will be created and you'll be taken to the app management page.
      </Step>

      <Step title="Configure OAuth 2.0 (3LO)">
        1. In the left sidebar, select **Authorization**.
        2. Next to OAuth 2.0 (3LO), click **Add**.
        3. Enter `https://api.nango.dev/oauth/callback` as the **Callback URL**.
        4. Click **Save Changes** to save your changes.
      </Step>

      <Step title="Add API permissions">
        1. In the left sidebar, select **Permissions**.
        2. Find the APIs you want to use (Jira, Confluence, etc.) and click **Add**, then click **Configure**.
        3. Click **Edit Scopes** then select the [scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/#scopes) your application requires. For reference, see our [Common Scopes](#common-scopes) table below.
        4. Click **Save Changes** to save your changes.
      </Step>

      <Step title="Obtain your client credentials">
        1. In the left sidebar, select **Settings**.
        2. Copy both the **Client ID** and **Secret** by clicking the copy buttons next to them, as you'll need them when configuring your integration in Nango.
      </Step>

      <Step title="Make your app available to users">
        1. In the left sidebar, select **Distribution**.
        2. In **Distribution controls**, click the **Edit** button, select the **Sharing** radio button, enter a **Privacy Policy URL** and then click the **Save changes** button.
           <Note>By default, your app is private and can only be used by you. Making it public allows other users to authorize your app.</Note>
      </Step>

      <Step title="Next">
        Follow the [*Quickstart*](/getting-started/quickstart).
      </Step>
    </Steps>

    ## Common Scopes

    | Scope                             | Description                                   |
    | --------------------------------- | --------------------------------------------- |
    | `read:jira-user`                  | Read user information                         |
    | `read:jira-work`                  | Read Jira work items (issues, projects, etc.) |
    | `write:jira-work`                 | Create and update Jira work items             |
    | `delete:jira-work`                | Delete issues                                 |
    | `manage:jira-project`             | Manage project settings                       |
    | `manage:jira-configuration`       | Manage Jira instance settings                 |
    | `read:confluence-content.summary` | Read Confluence content summaries             |
    | `read:confluence-content.all`     | Read all Confluence content                   |
    | `write:confluence-content`        | Create and update Confluence content          |
    | `offline_access`                  | Access to refresh tokens for offline access   |
  </Tab>

  <Tab title="🔗 Useful links">
    | Topic     | Links                                                                                                                                             |
    | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
    | General   | [Atlassian Developer Portal](https://developer.atlassian.com/)                                                                                    |
    |           | [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/)                                                                    |
    | Developer | [Registering an OAuth 2.0 (3LO) App](https://developer.atlassian.com/console/myapps/)                                                             |
    |           | [OAuth-related docs](https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps)                                                           |
    |           | [List of Jira scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/)                                 |
    |           | [List of Confluence scopes](https://developer.atlassian.com/cloud/confluence/scopes-for-oauth-2-3LO-and-forge-apps/)                              |
    |           | [Jira Cloud Rest API](https://developer.atlassian.com/cloud/jira/software/rest/intro/#introduction)                                               |
    |           | [Confluence Cloud Rest API](https://developer.atlassian.com/cloud/confluence/rest/v1/intro/#using)                                                |
    |           | [Distributing OAuth 2.0 (3LO) Apps](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#distributing-your-oauth-2-0--3lo--apps) |

    <Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/atlassian.mdx)</Note>
  </Tab>

  <Tab title="🚨 API gotchas">
    * Refresh tokens will expire after 365 days of non use and will expire by 90 days if the resource owner is inactive for 90 days. Make sure you call `nango.getConnection()` at least every 365 days to trigger a refresh. See reference [here](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#how-do-i-get-a-new-access-token--if-my-access-token-expires-or-is-revoked-).
    * When using the proxy for Atlassian, it is important to know that Jira apps will use `/jira/{cloudid}/{api}` for Jira apps and `/confluence/{cloudid}/{api}` for Confluence apps.

    <Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/atlassian.mdx)</Note>
  </Tab>
</Tabs>

<Info>
  Questions? Join us in the [Slack community](https://nango.dev/slack).
</Info>
