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

# Connect Confluence with OAuth 2.0 (Your Own App) – StackOne Hub

> Link a Confluence account in the StackOne Hub using OAuth 2.0 (Your Own App). End-user guide to authorize the integration and start using Confluence actions.

> [!WARNING]
>
> You need administrator access to your Atlassian organization to create an OAuth 2.0 (3LO) integration and grant it Confluence API scopes.

Select Actions to adjust the guideSome actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.

Select all
Clear

ActionScope(s)

Loading actions...No actions match your search.

Dynamic Guide URL

Copy URL

Scopes Selected

<pre role="textbox" aria-readonly="true" tabIndex="0" />

Separator

Copy scopes

## Create an OAuth 2.0 (3LO) integration

Register a new integration in the Atlassian Developer Console. The integration provides the **Client ID** and **Client Secret**.

**1. Create a new integration**

Sign in to the [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/) with the Atlassian account that administers your organization.

<ul>
  <li>On the **My apps** page, click **Create**.</li>
  <li>Choose **OAuth 2.0 integration**.</li>
</ul>

![The My apps page in the Atlassian Developer Console with the Create button highlighted](https://mintcdn.com/stackone-60/2nElIMfsbk1BNw0e/connectors/confluence/images/oauth2-config-create-app.png?fit=max\&auto=format\&n=2nElIMfsbk1BNw0e\&q=85\&s=73b654b0d93f5028efe195510271ae60)

**2. Enter the integration details**

Fill in the **Create a new OAuth 2.0 (3LO) integration** form.

<ul>
  <li>**Name**: `StackOne Integration`</li>
  <li>**Access type**: **Resource-level**, which restricts access to the specific site the user selects during authorization</li>
  <li>Select **Account-level** only if you need one connection to reach every site in the Atlassian account.</li>
  <li>Tick **I agree to be bound by Atlassian's developer terms.**</li>
  <li>Click **Create**.</li>
</ul>

![The Create a new OAuth 2.0 (3LO) integration form with Name, Access type, terms checkbox and Create button highlighted](https://mintcdn.com/stackone-60/2nElIMfsbk1BNw0e/connectors/confluence/images/oauth2-config-integration-details.png?fit=max\&auto=format\&n=2nElIMfsbk1BNw0e\&q=85\&s=ebd60579c3be7e432101b002da74fa1d)

## Grant the Confluence API scopes

An integration starts with no permissions. Add the Confluence API and enable the scopes the connector's actions need.

**1. Add the Confluence API**

In the left sidebar, click **Permissions**.

<ul>
  <li>Find the **Confluence API** row.</li>
  <li>Click **Add**.</li>
  <li>Click **Configure**, which replaces **Add** once the API is added.</li>
</ul>

![The Permissions page with the Confluence API row and its Configure button highlighted](https://mintcdn.com/stackone-60/2nElIMfsbk1BNw0e/connectors/confluence/images/oauth2-config-add-confluence-api.png?fit=max\&auto=format\&n=2nElIMfsbk1BNw0e\&q=85\&s=5b46a33fed9a74af0ddb388d268dbffa)

**2. Enable the required scopes**

Enables actions: Create Attachment, Create Attachment Labels, Create Blog Post, Create Blog Post Labels, Create Blog Post Property, Create Database, Create Folder, Create Footer Comment, Create Inline Comment, Create Page, Create Page Labels, Create Page Property, Create Smart Link In The Content Tree, Create Space, Create Space Property In Space, Create Whiteboard, Delete Attachment, Delete Attachment Label, Delete Blog Post, Delete Blog Post Label, Delete Blog Post Property, Delete Database, Delete Folder, Delete Footer Comment, Delete Inline Comment, Delete Page, Delete Page Label, Delete Page Property, Delete Smart Link In The Content Tree, Delete Space, Delete Space Default Classification Level, Delete Space Property By Id, Delete Whiteboard, Download Unified File, Get Account IDs Of Likes For Blog Post, Get Account IDs Of Likes For Footer Comment, Get Account IDs Of Likes For Inline Comment, Get Account IDs Of Likes For Page, Get Anonymous User, Get Attachment By Id, Get Attachment Comments, Get Attachment Labels, Get Attachments, Get Attachments For Blog Post, Get Attachments For Custom Content, Get Attachments For Label, Get Attachments For Page, Get Blog Post By Id, Get Blog Post Classification Level, Get Blog Post Labels, Get Blog Post Properties, Get Blog Post Property By ID, Get Blog Post Versions, Get Blog Posts, Get Blog Posts For Label, Get Blog Posts In Space, Get Children Footer Comments, Get Children Inline Comments, Get Current User, Get Custom Content Comments, Get Custom Content Labels, Get Database, Get Database Classification Level, Get Folder, Get Footer Comment By Id, Get Footer Comments For Blog Post, Get Footer Comments For Page, Get Group Memberships For User, Get Inline Comment By Id, Get Inline Comments For Blog Post, Get Inline Comments For Page, Get Like Count For Blog Post, Get Like Count For Footer Comment, Get Like Count For Inline Comment, Get Like Count For Page, Get Multiple Users Using IDs, Get Page, Get Page Ancestors, Get Page Children, Get Page Classification Level, Get Page Labels, Get Page Properties, Get Page Property By ID, Get Page Versions, Get Pages For Label, Get Pages In Space, Get Smart Link In The Content Tree By Id, Get Space By Id, Get Space Content Labels, Get Space Default Classification Level, Get Space Labels, Get Space Permissions Assignments, Get Space Properties In Space, Get Space Property By Id, Get Space Role Mode, Get Spaces, Get Task, Get Unified Credentials, Get Unified Drive, Get Unified File, Get Unified Folder, Get Unified Group, Get Unified Role, Get Unified User, Get User, Get User Email Address, Get User Email Addresses In Batch, Get Whiteboard By Id, Get Whiteboard Classification Level, List Classification Levels, List Footer Comments, List Inline Comments, List Labels, List Pages, List Tasks, List Unified Drives, List Unified Files, List Unified Folders, List Unified Groups, List Unified Resource Types, List Unified Resource Users, List Unified Roles, List Unified Users, Reset Blog Post Classification Level, Reset Database Classification Level, Reset Page Classification Level, Reset Whiteboard Classification Level, Update Blog Post, Update Blog Post Classification Level, Update Blog Post Property, Update Database Classification Level, Update Footer Comment, Update Inline Comment, Update Page, Update Page Classification Level, Update Page Property, Update Page Title, Update Space, Update Space Default Classification Level, Update Space Property By Id, Update Task, Update Whiteboard Classification Level, Upload Unified File

Open the **Granular scopes** tab.

<ul>
  <li>Click **Edit Scopes**.</li>
  <li>Use **Search by name or code** to find each scope in the list by its **Code**.</li>
  <li>Tick each scope in the **Select** column.</li>
  <li>Save your changes.</li>
  <li>Stay on the **Granular scopes** tab, not **Classic scopes**.</li>
  <li>The read scopes alone are enough for a read-only integration.</li>
  <li>`read:email-address:confluence` is also governed by your site's external user data privacy setting.</li>
</ul>

![The Confluence API scopes screen with the Granular scopes tab, the search box and the Edit Scopes button highlighted](https://mintcdn.com/stackone-60/2nElIMfsbk1BNw0e/connectors/confluence/images/oauth2-config-granular-scopes.png?fit=max\&auto=format\&n=2nElIMfsbk1BNw0e\&q=85\&s=2674aabccae8aa252f83f76d00ec9fa1)

<ul>
  <li>
    read:attachment:confluence
  </li>

  <li>
    read:comment:confluence
  </li>

  <li>
    read:configuration:confluence
  </li>

  <li>
    read:content-details:confluence
  </li>

  <li>
    read:content.metadata:confluence
  </li>

  <li>
    read:custom-content:confluence
  </li>

  <li>
    read:database:confluence
  </li>

  <li>
    read:email-address:confluence
  </li>

  <li>
    read:embed:confluence
  </li>

  <li>
    read:folder:confluence
  </li>

  <li>
    read:group:confluence
  </li>

  <li>
    read:label:confluence
  </li>

  <li>
    read:page:confluence
  </li>

  <li>
    read:space:confluence
  </li>

  <li>
    read:task:confluence
  </li>

  <li>
    read:user:confluence
  </li>

  <li>
    read:whiteboard:confluence
  </li>

  <li>
    write:attachment:confluence
  </li>

  <li>
    write:comment:confluence
  </li>

  <li>
    write:database:confluence
  </li>

  <li>
    write:embed:confluence
  </li>

  <li>
    write:folder:confluence
  </li>

  <li>
    write:label:confluence
  </li>

  <li>
    write:page:confluence
  </li>

  <li>
    write:space:confluence
  </li>

  <li>
    write:task:confluence
  </li>

  <li>
    write:whiteboard:confluence
  </li>

  <li>
    delete:attachment:confluence
  </li>

  <li>
    delete:comment:confluence
  </li>

  <li>
    delete:database:confluence
  </li>

  <li>
    delete:embed:confluence
  </li>

  <li>
    delete:folder:confluence
  </li>

  <li>
    delete:page:confluence
  </li>

  <li>
    delete:space:confluence
  </li>

  <li>
    delete:whiteboard:confluence
  </li>
</ul>

## Register the callback URL

The integration needs the callback URL from your Connector Profile.

**1. Add the StackOne callback URL**

In the left sidebar, click **Authorization**.

<ul>
  <li>Click **Add** on the **OAuth 2.0 (3LO)** row.</li>
  <li>In the **Callback URLs** field, enter the **Callback URL** from your Connector Profile exactly as shown.</li>
  <li>Click **Save changes**.</li>
</ul>

![The OAuth 2.0 authorization code grants screen with the Callback URLs field and Save changes button highlighted](https://mintcdn.com/stackone-60/2nElIMfsbk1BNw0e/connectors/confluence/images/oauth2-config-callback-url.png?fit=max\&auto=format\&n=2nElIMfsbk1BNw0e\&q=85\&s=2feed08a0b43942fef132eba6a768ec4)

## Copy the client credentials

Copy the two values from the integration.

**1. Copy the Client ID and Secret**

In the left sidebar click **Settings** and scroll to **Authentication details**.

<ul>
  <li>Use the copy button beside each value.</li>
  <li>**Client ID**: the public identifier of your integration, shown under **Client ID**. Copy it across.</li>
  <li>**Client Secret**: shown under **Secret**. Copy it across.</li>
</ul>

![The Settings page Authentication details section with the Client ID and Secret fields and their copy buttons highlighted](https://mintcdn.com/stackone-60/2nElIMfsbk1BNw0e/connectors/confluence/images/oauth2-config-client-credentials.png?fit=max\&auto=format\&n=2nElIMfsbk1BNw0e\&q=85\&s=0b5de9d63720c8901499140a820d068d)

## Add an organization API key

This key is optional. Create it only if you need organization data.

**1. Create the organization API key**

Create the key in [Atlassian administration](https://admin.atlassian.com) under Settings, API keys. This is issued at the Atlassian organization level, so it is separate from the OAuth integration you just created.

<ul>
  <li>Copy the **Organization Admin API Key** across.</li>
  <li>Atlassian lets you create the key **with scopes** or **without scopes** (full access). If you create a scoped key, select the `read:orgs:admin` scope.</li>
</ul>

## Link the Account

**1. Connect**

<ul>
  <li>Click **Connect**.</li>
  <li>If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider's authorization flow.</li>
  <li>Once authorization is successful, you will see a confirmation popup.</li>
</ul>

**2. Use Actions**

Connect an AI platform to the linked account's actions. See [AI Platforms](https://docs.stackone.com/connect/ai-platforms/overview.md).

Other ways to call actions are listed in [Protocols & SDKs](https://docs.stackone.com/connect/protocols-and-sdks.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.