Introduction

Confluence provides remote APIs as both XML-RPC and SOAP. This document refers to the XML-RPC specification, see SOAP details below. XML-RPC and SOAP are both remote choices, as they have bindings for almost every language making them very portable.

Which should I use?

XML-RPC Information

Some borrowed from the VPWik specification):

SOAP Information

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 the WSDL file, located at http://<confluence-install>/rpc/soap-axis/confluenceservice-v1?wsdl .

For reference, the confluence.atlassian.com WSDL file is here.

Remote Methods

Authentication Methods

Administration

General

Spaces

Retrieval

Management

Pages

Retrieval

Dependencies

Management

Attachments - new in version 2.0

Retrieval

Management

Blog Entries

Search

Parameters for Limiting Search Results

key

description

values

default

spaceKey

search a single space

(any valid space key)

Search all spaces

type

Limit types of search results to return

all
page
blogpost
mail
comment
attachment
spacedescription
personalinformation

All except mail

lastModified

Search recently modified content

today
yesterday
lastweek
lastmonth

No limit

Security

User Management

Labels

Data Objects

Most returned structs have a summary and a detailed form:

Unless otherwise specified, all returned structs are in detailed form.

ServerInfo

Key

Type

Value

majorVersion

int

the major version number of the Confluence instance

minorVersion

int

the minor version number of the Confluence instance

patchLevel

int

the patch-level of the Confluence instance

buildId

String

the build ID of the Confluence instance (usually a number)

developmentBuild

Boolean

Whether the build is a developer-only release or not

baseUrl

String

The base URL for the confluence instance

Note: Version 1.0.3 of Confluence would be major-version: 1, minor-version: 0, patch-level: 3. Version 2.0 would have a patch-level of 0, even if it's not visible in the version number.

SpaceSummary

Key

Type

Value

key

String

the space key

name

String

the name of the space

type

String

type of the space

url

String

the url to view this space online

Space

Key

Type

Value

key

String

the space key

name

String

the name of the space

url

String

the url to view this space online

homepage

String

the id of the space homepage

description

String

the HTML rendered space description

PageSummary

Key

Type

Value

id

String

the id of the page

space

String

the key of the space that this page belongs to

parentId

String

the id of the parent page

title

String

the title of the page

url

String

the url to view this page online

locks

int

the number of locks current on this page

Page

Key

Type

Value

id

String

the id of the page

space

String

the key of the space that this page belongs to

parentId

String

the id of the parent page

title

String

the title of the page

url

String

the url to view this page online

version

int

the version number of this page

content

String

the page content

created

Date

timestamp page was created

creator

String

username of the creator

modified

Date

timestamp page was modified

modifier

String

username of the page's last modifier

homePage

Boolean

whether or not this page is the space's homepage

locks

int

the number of locks current on this page

contentStatus

String

status of the page (eg. current or deleted)

current

Boolean

whether the page is current and not deleted

PageHistorySummary

Key

Type

Value

id

String

the id of the historical page

version

int

the version of this historical page

modifier

String

the user who made this change

modified

Date

timestamp change was made

BlogEntrySummary

Key

Type

Value

id

String

the id of the blog entry

space

String

the key of the space that this blog entry belongs to

title

String

the title of the blog entry

url

String

the url to view this blog entry online

locks

int

the number of locks current on this page

publishDate

Date

the date the blog post was published

BlogEntry

Key

Type

Value

id

String

the id of the blog entry

space

String

the key of the space that this blog entry belongs to

title

String

the title of the page

url

String

the url to view this blog entry online

version

int

the version number of this blog entry

content

String

the blog entry content

locks

int

the number of locks current on this page

RSS Feed

Key

Type

Value

url

String

the URL of the RSS feed

title

String

the feed's title

Search Result

Key

Type

Value

title

String

the feed's title

url

String

the remote URL needed to view this search result online

excerpt

String

a short excerpt of this result if it makes sense

type

String

the type of this result - page, comment, spacedesc, attachment, userinfo, blogpost

id

String

the long ID of this result (if the type has one)

Attachment

Key

Type

Value

id

String

numeric id of the attachment

pageId

String

page ID of the attachment

title

String

title of the attachment

fileName

String

file name of the attachment (Required)

fileSize

String

numeric file size of the attachment in bytes

contentType

String

mime content type of the attachment (Required)

created

Date

creation date of the attachment

creator

String

creator of the attachment

url

String

url to download the attachment online

comment

String 

comment for the attachment (Required) 

Comment

Key

Type

Value

id

String

numeric id of the comment

pageId

String

page ID of the comment

title

String

title of the comment

content

String

notated content of the comment (use renderContent to render)

url

String

url to view the comment online

created

Date

creation date of the attachment

creator

String

creator of the attachment

User

Key

Type

Value

name

String

the username of this user

fullname

String

the full name of this user

email

String

the email address of this user

url

String

the url to view this user online

Permission

Key

Type

Value

lockType

String

The type of permission. One of 'View' or 'Edit'

lockedBy

String

The user or group name of the permission's owner

Label

Key

Type

Value

name

String

the nameof the label

owner

String

the username of the owner

namespace

String

the namespace of the label

id

String

the ID of the label

UserInformation

Key

Type

Value

username

String

the username of this user

content

String

the user description

creatorName

String

the creator of the user

lastModifierName

String

the url to view this user online

version

int 

the version

id

String 

the ID of the user

creationDate

Date 

the date the user was created 

lastModificationDate

Date

the date the user was last modified 

ClusterInformation

Key

Type

Value

isRunning

boolean

true if this node is part of a cluster.

name

String

the name of the cluster.

memberCount

int

the number of nodes in the cluster, including this node (this will be zero if this node is not clustered.)

description

String

a description of the cluster.

multicastAddress

String

the address that this cluster uses for multicasr communication.

multicastPort

String

the port that this cluster uses for multicast communication.

NodeStatus

Key

Type

Value

nodeId

int

an integer uniquely identifying the node within the cluster.

jvmStats

Map

a Map containing attributes about the JVM memory usage of node.  Keys are "total.memory", "free.memory", "used.memory".

props

Map

a Map containing attributes of the node. Keys are "system.date", "system.time", "system.favourite.colour", "java.version", "java.vendor",
"jvm.version", "jvm.vendor", "jvm.implemtation.version", "java.runtime", "java.vm", "user.name.word", "user.timezone",
"operating.system", "os.architecture",  "fs.encoding".

buildStats

Map

a Map containing attributes of the build of Confluence running on the node. Keys are "confluence.home", "system.uptime", "system.version",
"build.number".

Script Examples

The Confluence Extension space contains various examples of scripts

Changelog

2.3

2.2

2.1.4

2.0

1.4

1.3

1.2

1.1

1.0.3