The XML-RPC and SOAP APIs are deprecated since Confluence 5.5, and may not work as expected.
Confluence has a new REST API that is progressively replacing our existing APIs. We recommend plugin developers use the new REST APIs where possible.
Note that for Confluence Cloud, API tokens do not support the XML-RPC and SOAP APIs.
Confluence provides remote APIs in the form of XML-RPC and SOAP interfaces. XML-RPC and SOAP have bindings for almost every language, making them very portable. This document refers to the XML-RPC specification. See SOAP details below.
When choosing between SOAP and XML-RPC you should consider the language for your client and how quickly you need to develop it. SOAP is generally more useful from a strongly typed language (like Java or C#) but these require more setup. XML-RPC is easier to use from a scripting language (like Perl, Python, or AppleScript) and is often quicker to use.
See the following child pages:
Note the following points:
confluence2.
" to indicate that this is version 2 of the API. For example to call the getPage
method, use confluence2.getPage
. There is also a version 1 API available see below.web.xml
file. This file is located in the following folder: /confluence/WEB-INF/
The SOAP API follows the same methods as below, except with typed objects (as SOAP allows for). To find out more about the SOAP API, simply point your SOAP 'stub generator' at your instance's WSDL file, located at http://<confluence-install>/rpc/soap-axis/confluenceservice-v2?wsdl
Confluence 4.0 introduced changes to the way page content is stored in Confluence. Page content is no longer stored as wiki markup, but is now stored in an XHTML based storage format. Confluence 4.0 also introduced a new version 2 remote API. The new version 2 API implements the same methods as the version 1 API, however all content is stored and retrieved using the storage format. This means that you cannot, for example, create a page using wiki markup with the version 2 API, you must instead define the page using the storage format. Atlassian recommends that you migrate towards this new API.
The version 1 remote API will continue to work with Confluence 4.0. You will be able to create pages, blogs and comments in wiki markup using the version 1 API. However you will no longer be able to retrive pages, blogs and comments using the version 1 API.
Specifically the following methods no longer work with the version 1 API:
getBlogEntryByDayAndTitle(String token, String spaceKey, int dayOfMonth, String postTitle)
getBlogEntryByDateAndTitle(String token, String spaceKey, int year, int month, int dayOfMonth, String postTitle)
getBlogEntry(String token, long entryId)
getPage(String token, String spaceKey, String pageTitle)
getPage(String token, long pageId)
getComments(String token, long pageId)
getComment(String token, long commentId)
You can use both APIs in a client, creating content in wiki markup using the version 1 API and retrieving it in the storage format using the version 2 API. This may be a useful stepping stone for clients to move towards the version 2 API. You should note that there is no longer any way to retrive content from Confluence as wiki markup.
To aid the migration from the version 1 API to the version 2 API a new method convertWikiToStorageFormat(String token, String markup) has been added to both versions of the API.
The following changes apply to the Remote Confluence Methods and Remote Confluence Data Objects:
All SOAP and XML-RPC APIs have been deprecated. These will be replaced by the official REST API.
removePageVersion
methods.removePageWatch
, removeSpacewatch
and removePageWatchForUser
methods.getSpaceStatus
and setSpaceStatus
for space archiving.convertWikiToStorageFormat(String token, String markup)
watchPage
, watchSpace
, watchPageForUser
, getWatchersForPage
, getWatchersForSpace
getBlogEntryByDateAndTitle
getTrashContents
, purgeFromTrash
, emptyTrash
.ContentSummaries
, ContentSummary
.updatePage
.getClusterInformation
and getClusterNodeStatuses
.addPersonalSpace
, convertToPersonalSpace
and addProfilePicture
.getPermissionsForUser
.getLocks()
to getPagePermissions()
addAttachment
, getAttachment
, getAttachmentData
, removeAttachment
and moveAttachment
methods to allow remote attachment handling. Note that adding large attachments with this API uses a lot of memory during the addAttachment
operation.addAnonymousPermissionToSpace
, addAnonymousPermissionsToSpace
and removeAnonymousPermissionFromSpace
.exportSpace
and exportSite
methods to build exports of an individual space or an entire Confluence instance and return with a URL leading to the download.getChildren
and getDescendents
methods to get the direct children and all descendents of a given page.getAncestors
method to get the ancestors of a given page.getLocks
as locks are superceded by page level permissions.getPagePermissions
method to retrieve page level permissions.removeUser
, removeGroup
, removeAllPermissionsForGroup
, addUserToGroup
and removeUserFromGroup
methods.addPermissionToSpace
method.Permission
data object.getSpaceLevelPermissions
method.getPage
method which retrieves a page by space key and page title.removeSpace
method to remove an entire space.renderContent
takes an optional hashtable for rendering hints, the only one supported right now is "style=clean"getLocks
gives you back a list of any locks that apply to a given pagelocks
field to the various Page structs containing a count of any applicable page-level locksgetServerInfo
gives you some basic information about the server version CONF1123storePage
now allows you to change the page's name (incoming links are all renamed) CONF-974storePage
now reliably allows you to re-parent pagesRate this page: