Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Confluence connector

OAuth 2.0Project ManagementFiles & DocumentsCollaboration

Connect to Confluence. Manage spaces, pages, content, and team collaboration

Confluence connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Confluence credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Register your Scalekit environment with the Confluence connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

    1. Set up auth redirects

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Confluence and click Create. Copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

        Copy redirect URI from Scalekit dashboard

      • In the Atlassian Developer Console, open your app and go to AuthorizationOAuth 2.0 (3LO)Configure.

      • Paste the copied URI into the Callback URL field and click Save changes.

        Add callback URL in Atlassian Developer Console

    2. Get client credentials

      In the Atlassian Developer Console, open your app and go to Settings:

      • Client ID — listed under Client ID
      • Client Secret — listed under Secret
    3. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.

      • Enter your credentials:

        Add credentials for Confluence in Scalekit dashboard

      • Click Save.

  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'confluence'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Confluence:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'confluence_blogpost_list',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Create blogpost, footer comment, page — Create a new blog post in a Confluence space
  • Get blogpost, footer comments, page attachments — Retrieve a specific Confluence blog post by its ID
  • List blogpost, page, space — List blog posts in Confluence
  • Delete page — Delete a Confluence page by its ID
  • Update page — Update an existing Confluence page
  • Search records — Search Confluence content using Confluence Query Language (CQL)
Proxy API call

Don’t worry about the Confluence cloud ID in the path. Scalekit automatically resolves {{cloud_id}} from the connected account’s configuration. For example, a request with path="/wiki/rest/api/user/current" will be sent to https://api.atlassian.com/ex/confluence/a1b2c3d4-e5f6-7890-abcd-ef1234567890/wiki/rest/api/user/current automatically.

const result = await actions.request({
connectionName: 'confluence',
identifier: 'user_123',
path: '/wiki/rest/api/user/current',
method: 'GET',
});
console.log(result);
Execute a tool
const result = await actions.executeTool({
connector: 'confluence',
identifier: 'user_123',
toolName: 'confluence_list',
toolInput: {},
});
console.log(result);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

confluence_blogpost_create#Create a new blog post in a Confluence space. Requires a target space ID and a title. Optionally set the status (published or draft) and provide body content in storage or atlas_doc_format representation. Set the private query parameter to restrict visibility.6 params

Create a new blog post in a Confluence space. Requires a target space ID and a title. Optionally set the status (published or draft) and provide body content in storage or atlas_doc_format representation. Set the private query parameter to restrict visibility.

NameTypeRequiredDescription
spaceIdstringrequiredThe ID of the space to create the blog post in
titlestringrequiredTitle of the blog post
body_representationstringoptionalStorage format of the body content
body_valuestringoptionalThe content of the blog post body
privatebooleanoptionalWhether to create the blog post as private
statusstringoptionalPublication status of the blog post
confluence_blogpost_get#Retrieve a specific Confluence blog post by its ID. Returns the blog post content, metadata, author, space, status, and version history. Optionally include body content in a specified format, fetch a draft version, or a historical version.5 params

Retrieve a specific Confluence blog post by its ID. Returns the blog post content, metadata, author, space, status, and version history. Optionally include body content in a specified format, fetch a draft version, or a historical version.

NameTypeRequiredDescription
idstringrequiredThe numeric ID of the blog post to retrieve
body_formatstringoptionalFormat of the blog post body to include in the response
get_draftbooleanoptionalWhether to retrieve the draft version of the blog post
include_labelsbooleanoptionalWhether to include labels applied to the blog post
versionintegeroptionalVersion number of the blog post to retrieve
confluence_blogpost_list#List blog posts in Confluence. Filter by blog post IDs, space IDs, sort order, status, title, or body format. Returns paginated results with cursor-based navigation.8 params

List blog posts in Confluence. Filter by blog post IDs, space IDs, sort order, status, title, or body format. Returns paginated results with cursor-based navigation.

NameTypeRequiredDescription
body_formatstringoptionalFormat of the blog post body to return
cursorstringoptionalCursor token for fetching the next page of results
idarrayoptionalFilter by specific blog post IDs
limitintegeroptionalMaximum number of blog posts to return per page
sortstringoptionalSort order for the results
space_idarrayoptionalFilter blog posts by space IDs
statusstringoptionalFilter blog posts by status
titlestringoptionalFilter blog posts by title (partial match)
confluence_page_attachments_get#Retrieve all attachments on a Confluence page. Returns a paginated list of attachments with metadata including filename, media type, file size, and download URL. Supports filtering by media type or filename and cursor-based pagination.6 params

Retrieve all attachments on a Confluence page. Returns a paginated list of attachments with metadata including filename, media type, file size, and download URL. Supports filtering by media type or filename and cursor-based pagination.

NameTypeRequiredDescription
idstringrequiredThe ID of the page whose attachments to retrieve
cursorstringoptionalCursor token for pagination, returned in the previous response as _links.next
filenamestringoptionalFilter attachments by exact filename
limitintegeroptionalMaximum number of attachments to return per page (default 25, max 250)
media_typestringoptionalFilter attachments by MIME media type (e.g. image/png, application/pdf)
sortstringoptionalSort order for attachments (e.g. created-date, -created-date, modified-date, -modified-date)
confluence_page_children_get#Retrieve the direct child pages of a given Confluence page. Returns a paginated list of child pages with their IDs, titles, and statuses. Use cursor-based pagination to iterate through large result sets.4 params

Retrieve the direct child pages of a given Confluence page. Returns a paginated list of child pages with their IDs, titles, and statuses. Use cursor-based pagination to iterate through large result sets.

NameTypeRequiredDescription
idstringrequiredThe ID of the parent page whose children to retrieve
cursorstringoptionalCursor token for pagination, returned in the previous response as _links.next
limitintegeroptionalMaximum number of child pages to return (default 25, max 250)
sortstringoptionalSort order for child pages (e.g. -modified-date, id, title, -title)
confluence_page_create#Create a new Confluence page in a specified space. Requires a space ID and title. Optionally set the initial status (current for published, draft for unpublished), a parent page, and body content. The body requires both body_representation and body_value to be provided together.8 params

Create a new Confluence page in a specified space. Requires a space ID and title. Optionally set the initial status (current for published, draft for unpublished), a parent page, and body content. The body requires both body_representation and body_value to be provided together.

NameTypeRequiredDescription
spaceIdstringrequiredThe ID of the space in which to create the page
titlestringrequiredTitle of the new page
body_representationstringoptionalThe markup format for the page body (e.g. storage, atlas_doc_format). Must be set together with body_value.
body_valuestringoptionalThe raw content of the page body in the format specified by body_representation. Must be set together with body_representation.
parentIdstringoptionalID of the parent page under which this page will be created
privatebooleanoptionalSet to true to create the page as a private page visible only to the creator
root_levelbooleanoptionalSet to true to create the page at the root level of the space (no parent)
statusstringoptionalInitial status of the page: current (published) or draft (unpublished)
confluence_page_delete#Delete a Confluence page by its ID. By default moves the page to the trash; set purge=true to permanently delete without recovery. Set draft=true to delete a draft version instead of the published page. This action is irreversible when purge is enabled.3 params

Delete a Confluence page by its ID. By default moves the page to the trash; set purge=true to permanently delete without recovery. Set draft=true to delete a draft version instead of the published page. This action is irreversible when purge is enabled.

NameTypeRequiredDescription
idstringrequiredThe ID of the page to delete
draftbooleanoptionalSet to true to delete the draft version of the page rather than the published version
purgebooleanoptionalSet to true to permanently delete the page, bypassing the trash
confluence_page_get#Retrieve a single Confluence page by its ID. Returns the page title, status, version, space, and optionally the full body content. Use body_format to control the markup format returned. Additional flags expose labels, properties, and version history.7 params

Retrieve a single Confluence page by its ID. Returns the page title, status, version, space, and optionally the full body content. Use body_format to control the markup format returned. Additional flags expose labels, properties, and version history.

NameTypeRequiredDescription
idstringrequiredThe ID of the page to retrieve
body_formatstringoptionalFormat for the returned page body (e.g. storage, atlas_doc_format, anonymous_export_view)
get_draftbooleanoptionalSet to true to retrieve the draft version of the page instead of the published version
include_labelsbooleanoptionalSet to true to include labels attached to the page in the response
include_propertiesbooleanoptionalSet to true to include content properties attached to the page
include_versionbooleanoptionalSet to true to include full version details in the response
versionintegeroptionalSpecific version number of the page to retrieve (defaults to latest)
confluence_page_labels_get#Retrieve all labels attached to a Confluence page. Labels can be filtered by prefix (e.g. global, my, team). Returns a paginated list of label names and prefixes. Use cursor-based pagination for pages with many labels.5 params

Retrieve all labels attached to a Confluence page. Labels can be filtered by prefix (e.g. global, my, team). Returns a paginated list of label names and prefixes. Use cursor-based pagination for pages with many labels.

NameTypeRequiredDescription
idstringrequiredThe ID of the page whose labels to retrieve
cursorstringoptionalCursor token for pagination, returned in the previous response as _links.next
limitintegeroptionalMaximum number of labels to return per page (default 25, max 250)
prefixstringoptionalFilter labels by prefix (e.g. global, my, team, system)
sortstringoptionalSort order for labels (e.g. created-date, -created-date, name, -name)
confluence_page_list#List Confluence pages with optional filtering by space, status, title, or page IDs. Returns a paginated collection of pages. Use the cursor parameter to fetch subsequent pages. Supports body format selection for inline content retrieval.8 params

List Confluence pages with optional filtering by space, status, title, or page IDs. Returns a paginated collection of pages. Use the cursor parameter to fetch subsequent pages. Supports body format selection for inline content retrieval.

NameTypeRequiredDescription
body_formatstringoptionalThe content format to return for page bodies (e.g. storage, atlas_doc_format, anonymous_export_view)
cursorstringoptionalCursor token for pagination, returned in previous response as _links.next
idstringoptionalFilter by one or more page IDs (comma-separated or repeated query param)
limitintegeroptionalMaximum number of pages to return per page (default 25, max 250)
sortstringoptionalSort order for results (e.g. -modified-date, id, title, -title)
space_idstringoptionalFilter by one or more space IDs (comma-separated)
statusstringoptionalFilter pages by status (e.g. current, archived, deleted, trashed)
titlestringoptionalFilter pages by title (exact match)
confluence_page_update#Update an existing Confluence page. Requires the page ID, current status, title, and the next version number (must be exactly current version + 1). Optionally update the page body, change the parent, or add a version message. Retrieve the current version number with the Get Page tool before calling this.8 params

Update an existing Confluence page. Requires the page ID, current status, title, and the next version number (must be exactly current version + 1). Optionally update the page body, change the parent, or add a version message. Retrieve the current version number with the Get Page tool before calling this.

NameTypeRequiredDescription
idstringrequiredThe ID of the page to update
statusstringrequiredStatus of the page after the update (e.g. current, draft)
titlestringrequiredUpdated title of the page
version_numberintegerrequiredThe new version number for this update. Must be exactly the current version number plus 1.
body_representationstringoptionalFormat for the updated body content (e.g. storage, atlas_doc_format). Must be set together with body_value.
body_valuestringoptionalThe updated body content in the format specified by body_representation. Must be set together with body_representation.
parentIdstringoptionalID of the new parent page (to move the page in the hierarchy)
version_messagestringoptionalOptional message describing what changed in this version
confluence_space_get#Retrieve details of a specific Confluence space by its ID. Returns space metadata including key, name, type, status, description, homepage, and permissions. Optionally include the space icon and labels.4 params

Retrieve details of a specific Confluence space by its ID. Returns space metadata including key, name, type, status, description, homepage, and permissions. Optionally include the space icon and labels.

NameTypeRequiredDescription
idstringrequiredThe numeric ID of the space to retrieve
description_formatstringoptionalFormat for the space description in the response
include_iconbooleanoptionalWhether to include the space icon in the response
include_labelsbooleanoptionalWhether to include labels applied to the space
confluence_space_list#List Confluence spaces accessible to the authenticated user. Supports filtering by space IDs, keys, type (global or personal), status (current or archived), and labels. Returns paginated results with cursor-based navigation.9 params

List Confluence spaces accessible to the authenticated user. Supports filtering by space IDs, keys, type (global or personal), status (current or archived), and labels. Returns paginated results with cursor-based navigation.

NameTypeRequiredDescription
cursorstringoptionalCursor token for fetching the next page of results
description_formatstringoptionalFormat for the space description in the response
idsarrayoptionalFilter spaces by their numeric IDs
keysarrayoptionalFilter spaces by their space keys
labelsarrayoptionalFilter spaces by labels
limitintegeroptionalMaximum number of spaces to return per page
sortstringoptionalSort order for the results
statusstringoptionalFilter spaces by status
typestringoptionalFilter spaces by type