JSPM

  • Created
  • Published
  • Downloads 7569
  • Score
    100M100P100Q147995F
  • License MIT

confluence.js is a powerful Node.JS/Browser module that allows you to interact with the Confluence API very easily

Package Exports

  • confluence.js
  • confluence.js/api/analytics
  • confluence.js/api/audit
  • confluence.js/api/content
  • confluence.js/api/contentAttachments
  • confluence.js/api/contentBody
  • confluence.js/api/contentChildrenAndDescendants
  • confluence.js/api/contentComments
  • confluence.js/api/contentLabels
  • confluence.js/api/contentMacroBody
  • confluence.js/api/contentPermissions
  • confluence.js/api/contentProperties
  • confluence.js/api/contentRestrictions
  • confluence.js/api/contentStates
  • confluence.js/api/contentVersions
  • confluence.js/api/contentWatches
  • confluence.js/api/dynamicModules
  • confluence.js/api/experimental
  • confluence.js/api/group
  • confluence.js/api/index
  • confluence.js/api/inlineTasks
  • confluence.js/api/labelInfo
  • confluence.js/api/longRunningTask
  • confluence.js/api/models/accountId
  • confluence.js/api/models/accountIdEmailRecord
  • confluence.js/api/models/accountIdEmailRecordArray
  • confluence.js/api/models/addContentRestriction
  • confluence.js/api/models/addContentRestrictionUpdateArray
  • confluence.js/api/models/affectedObject
  • confluence.js/api/models/appDescriptor
  • confluence.js/api/models/asyncContentBody
  • confluence.js/api/models/asyncId
  • confluence.js/api/models/attachment
  • confluence.js/api/models/attachmentContainer
  • confluence.js/api/models/attachmentMetadata
  • confluence.js/api/models/auditRecord
  • confluence.js/api/models/auditRecordArray
  • confluence.js/api/models/auditRecordCreate
  • confluence.js/api/models/availableContentStates
  • confluence.js/api/models/blueprintTemplate
  • confluence.js/api/models/blueprintTemplateArray
  • confluence.js/api/models/breadcrumb
  • confluence.js/api/models/bulkUserLookup
  • confluence.js/api/models/bulkUserLookupArray
  • confluence.js/api/models/buttonLookAndFeel
  • confluence.js/api/models/changedValue
  • confluence.js/api/models/connectModules
  • confluence.js/api/models/container
  • confluence.js/api/models/containerLookAndFeel
  • confluence.js/api/models/containerSummary
  • confluence.js/api/models/content
  • confluence.js/api/models/contentArray
  • confluence.js/api/models/contentBlueprintDraft
  • confluence.js/api/models/contentBody
  • confluence.js/api/models/contentBodyCreate
  • confluence.js/api/models/contentBodyCreateStorage
  • confluence.js/api/models/contentChildType
  • confluence.js/api/models/contentChildren
  • confluence.js/api/models/contentCreate
  • confluence.js/api/models/contentHistory
  • confluence.js/api/models/contentLookAndFeel
  • confluence.js/api/models/contentPermissionRequest
  • confluence.js/api/models/contentProperty
  • confluence.js/api/models/contentPropertyArray
  • confluence.js/api/models/contentPropertyCreate
  • confluence.js/api/models/contentPropertyCreateNoKey
  • confluence.js/api/models/contentPropertyUpdate
  • confluence.js/api/models/contentRestriction
  • confluence.js/api/models/contentRestrictionArray
  • confluence.js/api/models/contentRestrictionUpdate
  • confluence.js/api/models/contentRestrictionUpdateArray
  • confluence.js/api/models/contentState
  • confluence.js/api/models/contentStateResponse
  • confluence.js/api/models/contentStateRestInput
  • confluence.js/api/models/contentStateSettings
  • confluence.js/api/models/contentTemplate
  • confluence.js/api/models/contentTemplateArray
  • confluence.js/api/models/contentTemplateBodyCreate
  • confluence.js/api/models/contentTemplateCreate
  • confluence.js/api/models/contentTemplateUpdate
  • confluence.js/api/models/contentUpdate
  • confluence.js/api/models/copyPageHierarchyRequest
  • confluence.js/api/models/copyPageHierarchyTitleOptions
  • confluence.js/api/models/copyPageRequest
  • confluence.js/api/models/copyPageRequestDestination
  • confluence.js/api/models/createdAttachment
  • confluence.js/api/models/embeddable
  • confluence.js/api/models/embeddedContent
  • confluence.js/api/models/genericLinks
  • confluence.js/api/models/getRestrictionsByOperation
  • confluence.js/api/models/getViewers
  • confluence.js/api/models/getViews
  • confluence.js/api/models/group
  • confluence.js/api/models/groupArray
  • confluence.js/api/models/groupArrayWithLinks
  • confluence.js/api/models/groupCreate
  • confluence.js/api/models/groupName
  • confluence.js/api/models/headerLookAndFeel
  • confluence.js/api/models/horizontalHeaderLookAndFeel
  • confluence.js/api/models/icon
  • confluence.js/api/models/index
  • confluence.js/api/models/label
  • confluence.js/api/models/labelArray
  • confluence.js/api/models/labelCreate
  • confluence.js/api/models/labelCreateArray
  • confluence.js/api/models/labelDetails
  • confluence.js/api/models/labeledContent
  • confluence.js/api/models/labeledContentPageResponse
  • confluence.js/api/models/labeledContentType
  • confluence.js/api/models/lifecycle
  • confluence.js/api/models/longTask
  • confluence.js/api/models/longTaskStatus
  • confluence.js/api/models/longTaskStatusArray
  • confluence.js/api/models/longTaskStatusWithLinks
  • confluence.js/api/models/lookAndFeel
  • confluence.js/api/models/lookAndFeelSelection
  • confluence.js/api/models/lookAndFeelSettings
  • confluence.js/api/models/macroInstance
  • confluence.js/api/models/menusLookAndFeel
  • confluence.js/api/models/message
  • confluence.js/api/models/migratedUser
  • confluence.js/api/models/migratedUserArray
  • confluence.js/api/models/movePage
  • confluence.js/api/models/navigationLookAndFeel
  • confluence.js/api/models/operationCheckResult
  • confluence.js/api/models/permissionCheckResponse
  • confluence.js/api/models/permissionSubject
  • confluence.js/api/models/permissionSubjectWithGroupId
  • confluence.js/api/models/propertyValue
  • confluence.js/api/models/relation
  • confluence.js/api/models/relationArray
  • confluence.js/api/models/relationData
  • confluence.js/api/models/retentionPeriod
  • confluence.js/api/models/screenLookAndFeel
  • confluence.js/api/models/searchFieldLookAndFeel
  • confluence.js/api/models/searchPageResponseSearchResult
  • confluence.js/api/models/searchResult
  • confluence.js/api/models/space
  • confluence.js/api/models/spaceArray
  • confluence.js/api/models/spaceCreate
  • confluence.js/api/models/spaceDescription
  • confluence.js/api/models/spaceDescriptionCreate
  • confluence.js/api/models/spacePermission
  • confluence.js/api/models/spacePermissionCreate
  • confluence.js/api/models/spacePermissionCustomContent
  • confluence.js/api/models/spacePermissionRequest
  • confluence.js/api/models/spacePermissionV2
  • confluence.js/api/models/spacePrivateCreate
  • confluence.js/api/models/spaceProperty
  • confluence.js/api/models/spacePropertyArray
  • confluence.js/api/models/spacePropertyCreate
  • confluence.js/api/models/spacePropertyCreateNoKey
  • confluence.js/api/models/spacePropertyUpdate
  • confluence.js/api/models/spaceSettings
  • confluence.js/api/models/spaceSettingsUpdate
  • confluence.js/api/models/spaceUpdate
  • confluence.js/api/models/spaceWatch
  • confluence.js/api/models/spaceWatchArray
  • confluence.js/api/models/spaceWatchUser
  • confluence.js/api/models/superBatchWebResources
  • confluence.js/api/models/systemInfoEntity
  • confluence.js/api/models/task
  • confluence.js/api/models/taskPageResponse
  • confluence.js/api/models/taskStatusUpdate
  • confluence.js/api/models/theme
  • confluence.js/api/models/themeArray
  • confluence.js/api/models/themeNoLinks
  • confluence.js/api/models/themeUpdate
  • confluence.js/api/models/topNavigationLookAndFeel
  • confluence.js/api/models/user
  • confluence.js/api/models/userAnonymous
  • confluence.js/api/models/userArray
  • confluence.js/api/models/userProperty
  • confluence.js/api/models/userPropertyCreate
  • confluence.js/api/models/userPropertyKeyArray
  • confluence.js/api/models/userPropertyUpdate
  • confluence.js/api/models/userWatch
  • confluence.js/api/models/usersUserKeys
  • confluence.js/api/models/version
  • confluence.js/api/models/versionArray
  • confluence.js/api/models/versionRestore
  • confluence.js/api/models/watch
  • confluence.js/api/models/watchArray
  • confluence.js/api/models/watchUser
  • confluence.js/api/models/webResourceDependencies
  • confluence.js/api/parameters/addContentWatcher
  • confluence.js/api/parameters/addCustomContentPermissions
  • confluence.js/api/parameters/addGroupToContentRestriction
  • confluence.js/api/parameters/addGroupToContentRestrictionByGroupId
  • confluence.js/api/parameters/addLabelWatcher
  • confluence.js/api/parameters/addLabelsToContent
  • confluence.js/api/parameters/addLabelsToSpace
  • confluence.js/api/parameters/addPermissionToSpace
  • confluence.js/api/parameters/addRestrictions
  • confluence.js/api/parameters/addSpaceWatcher
  • confluence.js/api/parameters/addUserToContentRestriction
  • confluence.js/api/parameters/addUserToGroup
  • confluence.js/api/parameters/addUserToGroupByGroupId
  • confluence.js/api/parameters/archivePages
  • confluence.js/api/parameters/asyncConvertContentBodyRequest
  • confluence.js/api/parameters/asyncConvertContentBodyResponse
  • confluence.js/api/parameters/bulkAsyncConvertContentBodyRequest
  • confluence.js/api/parameters/bulkAsyncConvertContentBodyResponse
  • confluence.js/api/parameters/checkContentPermission
  • confluence.js/api/parameters/convertContentBody
  • confluence.js/api/parameters/copyPage
  • confluence.js/api/parameters/copyPageHierarchy
  • confluence.js/api/parameters/createAttachments
  • confluence.js/api/parameters/createAuditRecord
  • confluence.js/api/parameters/createContent
  • confluence.js/api/parameters/createContentProperty
  • confluence.js/api/parameters/createContentPropertyForKey
  • confluence.js/api/parameters/createContentTemplate
  • confluence.js/api/parameters/createGroup
  • confluence.js/api/parameters/createOrUpdateAttachments
  • confluence.js/api/parameters/createPrivateSpace
  • confluence.js/api/parameters/createRelationship
  • confluence.js/api/parameters/createSpace
  • confluence.js/api/parameters/createSpaceProperty
  • confluence.js/api/parameters/createSpacePropertyForKey
  • confluence.js/api/parameters/createUserProperty
  • confluence.js/api/parameters/deleteContent
  • confluence.js/api/parameters/deleteContentProperty
  • confluence.js/api/parameters/deleteContentVersion
  • confluence.js/api/parameters/deleteGroupById
  • confluence.js/api/parameters/deleteLabelFromSpace
  • confluence.js/api/parameters/deletePageTree
  • confluence.js/api/parameters/deleteRelationship
  • confluence.js/api/parameters/deleteRestrictions
  • confluence.js/api/parameters/deleteSpace
  • confluence.js/api/parameters/deleteSpaceProperty
  • confluence.js/api/parameters/deleteUserProperty
  • confluence.js/api/parameters/downloadAttachment
  • confluence.js/api/parameters/exportAuditRecords
  • confluence.js/api/parameters/findSourcesForTarget
  • confluence.js/api/parameters/findTargetFromSource
  • confluence.js/api/parameters/getAllLabelContent
  • confluence.js/api/parameters/getAndAsyncConvertMacroBodyByMacroId
  • confluence.js/api/parameters/getAndConvertMacroBodyByMacroId
  • confluence.js/api/parameters/getAnonymousUser
  • confluence.js/api/parameters/getAttachments
  • confluence.js/api/parameters/getAuditRecords
  • confluence.js/api/parameters/getAuditRecordsForTimePeriod
  • confluence.js/api/parameters/getAvailableContentStates
  • confluence.js/api/parameters/getBlueprintTemplates
  • confluence.js/api/parameters/getBulkUserLookup
  • confluence.js/api/parameters/getBulkUserMigration
  • confluence.js/api/parameters/getContent
  • confluence.js/api/parameters/getContentById
  • confluence.js/api/parameters/getContentByTypeForSpace
  • confluence.js/api/parameters/getContentChildren
  • confluence.js/api/parameters/getContentChildrenByType
  • confluence.js/api/parameters/getContentComments
  • confluence.js/api/parameters/getContentDescendants
  • confluence.js/api/parameters/getContentForSpace
  • confluence.js/api/parameters/getContentProperties
  • confluence.js/api/parameters/getContentProperty
  • confluence.js/api/parameters/getContentRestrictionStatusForGroup
  • confluence.js/api/parameters/getContentRestrictionStatusForUser
  • confluence.js/api/parameters/getContentState
  • confluence.js/api/parameters/getContentStateSettings
  • confluence.js/api/parameters/getContentTemplate
  • confluence.js/api/parameters/getContentTemplates
  • confluence.js/api/parameters/getContentVersion
  • confluence.js/api/parameters/getContentVersions
  • confluence.js/api/parameters/getContentWatchStatus
  • confluence.js/api/parameters/getContentsWithState
  • confluence.js/api/parameters/getCurrentUser
  • confluence.js/api/parameters/getDescendantsOfType
  • confluence.js/api/parameters/getGroupByGroupId
  • confluence.js/api/parameters/getGroupByName
  • confluence.js/api/parameters/getGroupByQueryParam
  • confluence.js/api/parameters/getGroupMembers
  • confluence.js/api/parameters/getGroupMembersByGroupId
  • confluence.js/api/parameters/getGroupMembershipsForUser
  • confluence.js/api/parameters/getGroups
  • confluence.js/api/parameters/getHistoryForContent
  • confluence.js/api/parameters/getIndividualGroupRestrictionStatusByGroupId
  • confluence.js/api/parameters/getLabelsForContent
  • confluence.js/api/parameters/getLabelsForSpace
  • confluence.js/api/parameters/getLookAndFeelSettings
  • confluence.js/api/parameters/getMacroBodyByMacroId
  • confluence.js/api/parameters/getMembersByQueryParam
  • confluence.js/api/parameters/getPrivacyUnsafeUserEmail
  • confluence.js/api/parameters/getPrivacyUnsafeUserEmailBulk
  • confluence.js/api/parameters/getRelationship
  • confluence.js/api/parameters/getRestrictions
  • confluence.js/api/parameters/getRestrictionsByOperation
  • confluence.js/api/parameters/getRestrictionsForOperation
  • confluence.js/api/parameters/getSpace
  • confluence.js/api/parameters/getSpaceContentStates
  • confluence.js/api/parameters/getSpaceProperties
  • confluence.js/api/parameters/getSpaceProperty
  • confluence.js/api/parameters/getSpaceSettings
  • confluence.js/api/parameters/getSpaceTheme
  • confluence.js/api/parameters/getSpaces
  • confluence.js/api/parameters/getTask
  • confluence.js/api/parameters/getTaskById
  • confluence.js/api/parameters/getTasks
  • confluence.js/api/parameters/getTheme
  • confluence.js/api/parameters/getThemes
  • confluence.js/api/parameters/getUser
  • confluence.js/api/parameters/getUserProperties
  • confluence.js/api/parameters/getUserProperty
  • confluence.js/api/parameters/getViewers
  • confluence.js/api/parameters/getViews
  • confluence.js/api/parameters/getWatchersForSpace
  • confluence.js/api/parameters/getWatchesForPage
  • confluence.js/api/parameters/getWatchesForSpace
  • confluence.js/api/parameters/index
  • confluence.js/api/parameters/isWatchingLabel
  • confluence.js/api/parameters/isWatchingSpace
  • confluence.js/api/parameters/movePage
  • confluence.js/api/parameters/publishLegacyDraft
  • confluence.js/api/parameters/publishSharedDraft
  • confluence.js/api/parameters/registerModules
  • confluence.js/api/parameters/removeContentState
  • confluence.js/api/parameters/removeContentWatcher
  • confluence.js/api/parameters/removeGroup
  • confluence.js/api/parameters/removeGroupById
  • confluence.js/api/parameters/removeGroupByName
  • confluence.js/api/parameters/removeLabelFromContent
  • confluence.js/api/parameters/removeLabelFromContentUsingQueryParameter
  • confluence.js/api/parameters/removeLabelWatcher
  • confluence.js/api/parameters/removeMemberFromGroup
  • confluence.js/api/parameters/removeMemberFromGroupByGroupId
  • confluence.js/api/parameters/removeModules
  • confluence.js/api/parameters/removePermission
  • confluence.js/api/parameters/removeSpaceWatch
  • confluence.js/api/parameters/removeTemplate
  • confluence.js/api/parameters/removeUserFromContentRestriction
  • confluence.js/api/parameters/resetLookAndFeelSettings
  • confluence.js/api/parameters/resetSpaceTheme
  • confluence.js/api/parameters/restoreContentVersion
  • confluence.js/api/parameters/searchByCQL
  • confluence.js/api/parameters/searchContentByCQL
  • confluence.js/api/parameters/searchGroups
  • confluence.js/api/parameters/searchTasks
  • confluence.js/api/parameters/searchUser
  • confluence.js/api/parameters/setContentState
  • confluence.js/api/parameters/setLookAndFeelSettings
  • confluence.js/api/parameters/setRetentionPeriod
  • confluence.js/api/parameters/setSpaceTheme
  • confluence.js/api/parameters/updateAttachmentData
  • confluence.js/api/parameters/updateAttachmentProperties
  • confluence.js/api/parameters/updateContent
  • confluence.js/api/parameters/updateContentProperty
  • confluence.js/api/parameters/updateContentTemplate
  • confluence.js/api/parameters/updateLookAndFeel
  • confluence.js/api/parameters/updateLookAndFeelSettings
  • confluence.js/api/parameters/updateRestrictions
  • confluence.js/api/parameters/updateSpace
  • confluence.js/api/parameters/updateSpaceProperty
  • confluence.js/api/parameters/updateSpaceSettings
  • confluence.js/api/parameters/updateTaskById
  • confluence.js/api/parameters/updateUserProperty
  • confluence.js/api/relation
  • confluence.js/api/search
  • confluence.js/api/settings
  • confluence.js/api/space
  • confluence.js/api/spacePermissions
  • confluence.js/api/spaceProperties
  • confluence.js/api/spaceSettings
  • confluence.js/api/template
  • confluence.js/api/themes
  • confluence.js/api/userProperties
  • confluence.js/api/users
  • confluence.js/callback
  • confluence.js/clients/baseClient
  • confluence.js/clients/client
  • confluence.js/clients/confluenceClient
  • confluence.js/clients/index
  • confluence.js/config
  • confluence.js/index
  • confluence.js/interfaces/extractBaseType
  • confluence.js/interfaces/index
  • confluence.js/interfaces/oneOrMany
  • confluence.js/package.json
  • confluence.js/pagination
  • confluence.js/paramSerializer
  • confluence.js/requestConfig
  • confluence.js/services/authenticationService/authenticationService
  • confluence.js/services/authenticationService/authentications/createBasicAuthenticationToken
  • confluence.js/services/authenticationService/authentications/createJWTAuthentication
  • confluence.js/services/authenticationService/authentications/createOAuth2AuthenticationToken
  • confluence.js/services/authenticationService/authentications/index
  • confluence.js/services/authenticationService/base64Encoder
  • confluence.js/services/authenticationService/index
  • confluence.js/services/index

Readme

Confluence.js logo

NPM version NPM downloads per month build status license

JavaScript/TypeScript library for Node.js and browsers to interact with Atlassian Confluence API

About

Confluence.js is a powerful Node.js and browser-compatible module that provides seamless interaction with:

Designed for developer experience and performance, it offers full API coverage and stays updated with new Confluence features.

Table of Contents

Getting Started

Installation

Requires Node.js 20.0.0 or newer

# npm
npm install confluence.js

# yarn
yarn add confluence.js

# pnpm
pnpm add confluence.js

Quick Example

Create a Confluence space in 3 steps:

import { ConfluenceClient } from 'confluence.js';

const client = new ConfluenceClient({
  host: 'https://your-domain.atlassian.net',
  authentication: {
    basic: {
      email: 'your@email.com',
      apiToken: 'YOUR_API_TOKEN', // Create one: https://id.atlassian.com/manage-profile/security/api-tokens
    },
  },
});

async function createSpace() {
  const space = await client.space.createSpace({
    name: 'Project Galaxy',
    key: 'GALAXY',
  });
  console.log(`Space created: ${space.key}`);
}

createSpace();

Documentation

Full API reference and guides available at: https://mrrefactoring.github.io/confluence.js/

Usage

Authentication

Basic Authentication

  1. Create an API token: Atlassian Account Settings
  2. Configure the client:
const client = new ConfluenceClient({
  host: 'https://your-domain.atlassian.net',
  authentication: {
    basic: {
      email: 'YOUR@EMAIL.ORG',
      apiToken: 'YOUR_API_TOKEN',
    },
  },
});

OAuth 2.0

Implement OAuth 2.0 flow using Atlassian's documentation:

const client = new ConfluenceClient({
  host: 'https://your-domain.atlassian.net',
  authentication: {
    oauth2: {
      accessToken: 'YOUR_ACCESS_TOKEN',
    },
  },
});

JWT

For server-to-server integration:

const client = new ConfluenceClient({
  host: 'https://your-domain.atlassian.net',
  authentication: {
    jwt: {
      issuer: 'your-client-id',
      secret: 'your-secret-key',
      expiryTimeSeconds: 180,
    },
  },
});

First Request

Create a page in an existing space:

const page = await client.content.createContent({
  title: 'Project Overview',
  type: 'page',
  space: { key: 'GALAXY' },
  body: {
    storage: {
      value: '<p>Welcome to our project documentation</p>',
      representation: 'storage',
    },
  },
});

console.log(`Page created: ${page.title}`);

API Structure

Access endpoints using client.<group>.<method> pattern:

// Get space details
const space = await client.space.getSpace({ spaceKey: 'GALAXY' });

// Search content
const results = await client.search.search({ cql: 'title~"Project"' });
🔽 Available API Groups

Custom API Prefix

For custom API endpoints:

const client = new ConfluenceClient({
  host: 'https://custom-domain.com',
  apiPrefix: '/confluence-api', // Default: '/wiki/rest/api'
});

Tree Shaking

Optimize bundle size by importing only needed modules:

// custom-client.ts
import { BaseClient } from 'confluence.js';
import { Content } from 'confluence.js/api/content';
import { Space } from 'confluence.js/api/space';

export class CustomClient extends BaseClient {
  content = new Content(this);
  space = new Space(this);
}

// Usage
const client = new CustomClient({ /* config */ });
await client.space.getSpace({ spaceKey: 'GALAXY' });

Other Products

Explore our other Atlassian integration libraries:

License

MIT License © MrRefactoring See LICENSE for details.