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
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.jsQuick 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
- Create an API token: Atlassian Account Settings
- 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
- audit
- analytics
- content
- contentAttachments
- contentBody
- contentChildrenAndDescendants
- contentComments - was deprecated
- contentMacroBody
- contentLabels
- contentPermissions
- contentProperties - was deprecated
- contentRestrictions
- contentStates
- contentVersions
- contentWatches
- dynamicModules
- experimental
- group
- inlineTasks - was deprecated
- labelInfo
- longRunningTask
- relation
- search
- settings
- space
- spacePermissions
- spaceProperties - was deprecated
- spaceSettings
- template
- themes
- users
- userProperties
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.