Download PDF
Download page API resources.
API resources
Please note, that the following REST endpoints are not officially supported and may change in upcoming releases without notice. Please test your tools heavily on a test system before using those in Production environment.
You can have a look at the collection private APIs with REST API browser for Confluence.
Get the page details of a versioned page
You can get the Confluence page ID, page title, change type, and additional information of a versioned page using the following POST request:
POST -H "Accept: application/json" -H "Content-Type: application/json" [confluence_base_url]/rest/scroll-versions/1.0/page/<spaceKey>
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
spaceKey | The space key of your versioned space | VSN |
As this is a POST request, make sure to authorize and set the following body arguments and their values depending on what you're looking for:
Body argument | Body value | Description |
---|---|---|
queryArg |
| - |
value |
| The |
Example: To get a list of a versioned page called scrollpage in space VSN on confluence.k15t.com
:
POST confluence.k15t.com/rest/scroll-versions/1.0/page/VSN
with this raw body: [{"queryArg": "scrollPageTitle", "value": "scrollpage"}]
This will result in a list of the page for all its versions in the following format:
{
"targetVersion": {
"versionId": "C0A812CE0160D685FEF2582F7A13FAE6",
"id": "C0A812CE0160D685FEF2582F7A13FAE6",
"name": "1",
"i18nName": "version 1"
},
"scrollPageTitle": "scrollpage",
"plainConfluenceTitle": "scrollpage",
"confluencePageTitle": ".scrollpage v1",
"scrollPageId": "C0A8127401622E4524D61AE85B97F931",
"pageType": "change",
"changeType": "Modify",
"confluencePageId": 4227112,
"spaceKey": "VSN",
"available": false,
"converted": false,
"isDirty": false,
"includedScrollPageIds": "",
"cached": false,
"lastModificationDate": 1521194706062,
"lastModifier": "admin"
}
Search for versioned or unversioned pages
You can search for versioned or unversioned pages in a specific space using the following POST request:
POST -H "Accept: application/json" -H "Content-Type: application/json" [confluence_base_url]/rest/scroll-versions/1.0/page/<spaceKey>
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
spaceKey | The space key of your versioned space | VSN |
As this is a POST request, make sure to authorize and set the following body arguments and their values depending on what you're looking for:
Body argument | Body value | Description |
---|---|---|
|
| - |
|
| Shows all versions pages |
|
| - |
|
| Shows all unversioned pages |
|
| - |
|
| Shows all master pages |
Example: To get a list of all versioned pages in space VSN on confluence.k15t.com
:
POST confluence.k15t.com/rest/scroll-versions/1.0/page/VSN
with this raw body: [{"queryArg": "pageType", "value": "change"}]
This will result in a list of all versioned pages in the following format:
{
"targetVersion": {
"versionId": "C0A812CE0160D685FEF2582F7A13FAE6",
"id": "C0A812CE0160D685FEF2582F7A13FAE6",
"name": "1",
"i18nName": "version 1"
},
"scrollPageTitle": "VSN Home1gggdfsdfsef",
"plainConfluenceTitle": "VSN Home1gggdfsdfsef",
"confluencePageTitle": ".VSN Home1gggdfsdfsef v1",
"scrollPageId": "C0A812CE0160D685FF000899402A9F76",
"pageType": "change",
"changeType": "Modify",
"confluencePageId": 66355,
"scrollPageKey": "test5",
"spaceKey": "VSN",
"available": false,
"converted": false,
"isDirty": false,
"includedScrollPageIds": "",
"cached": false,
"lastModificationDate": 1517229013049,
"lastModifier": "admin"
}
...
Manage workflows states
To get the workflow state
You can get additional information about the workflow state of a specific page by using the following GET request:
GET -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/workflow/{confluencePageId}
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
confluencePageId | The Confluence page ID should be the one from the versioned page you want to get the workflow from. | 66355 |
Example: To get the workflow state of the page with page ID 66355 on confluence.k15t.com
:
GET confluence.k15t.com/rest/scroll-versions/1.0/workflow/66355
This will result in workflow details for the specific page in the following format:
{
"id": "done",
"i18nName": "Complete",
"isCompleted": false,
"isFinalState": true,
"actions": [
{
"id": "restart",
"i18nName": "Restart"
}
]
}
To write the workflow state
You can set a workflow state to a specific page by using the following PUT request:
PUT -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/workflow/changeStatus/{spaceKey}/{newStateId}/with
You have to set the following parameters:
Path parameters | Mandatory | Description | Example |
---|---|---|---|
confluence_base_url | The base url of your Confluence system | confluence.k15t.com | |
spaceKey | The space key of your versioned space | VSN | |
newStateId | The state of the workflow you want to set. Please note that it's currently only possible to change the page status of the default Scroll Versions workflow. The state IDs of the standard workflows are as follows:
| draft | |
includeStateId | The state of the workflow you want to specifically include in the change. If this is not set, all states will be changed, if not explicitely excluded. | approval | |
excludeStateId | The state of the workflow you want to specifically exclude from the change. Please note that exclusion takes precedence over inclusion. If a workflow state is set for both parameters, it will not be changed. | done | |
versionId | Only the pages with the specified version will be processed. | 7F0000010161DD48EAD95DA06BCB9A83 | |
includePrecedingVersions | indicates if the pages of all preceding versions versionId should be changed. If versionId is not provided then it has no impact. | true |
Example: To change the workflow state of pages in state review in space with space key VSN in version with versionid C0A812CE0160D685FEF2582F7A13FAE6 and all preceding versions to state done on confluence.k15t.com
:
PUT confluence.k15t.com/rest/scroll-versions/1.0/workflow/changeStatus/VSN/done/with?versionId=C0A812CE0160D685FEF2582F7A13FAE6&includePrecedingVersions=true
This will return something like the following:
{
"id": "C0A8127401622E794192788978BCD82C",
"clusterNo": -1,
"started": false,
"cancelled": false,
"hasFailed": false,
"finished": false,
"failureMessage": null,
"progress": 0,
"message": "The task 'Change workflow status' is currently queued.",
"resourceLocation": null
}
Change the Scroll Page Title
You can change the page title of a versioned page using the following PUT request:
PUT -H "Accept: application/json" -H "Content-Type: application/json" [confluence_base_url]/rest/scroll-versions/1.0/metadata/scroll-page-title/{confluencePageId}
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
confluencePageId | The page ID of the versioned space you want to change the page title | 107302 |
In this PUT request, make sure to authorize and set the following body argument and the values to set the new page title
Body argument | Body value | Description |
---|---|---|
scrollPageTitle | Guide | The value will be used for the new page title |
Example: To change the page title of the versioned page with page ID 1017302 on confluence.k15t.com
to page title Guide:
PUT confluence.k15t.com/rest/scroll-versions/1.0/metadata/scroll-page-title/1017302
with this raw body: {"scrollPageTitle": "Guide"}
Manage variants with REST API
It can sometimes be quite tedious to manually apply attributes to a large amount of existing Scroll Version pages via the Scroll Versions User Interface. The Scroll Versions Variant Management UI uses a REST API list and applies attributes. That REST API can also be used in scripts to automate this process.
To automatically set attributes using REST:
Get a list of all attributes and values for a given space
GET -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/attribute/<spaceKey>
CODEYou will get response the following:
[{ "id": < attributeId > , "name": < attributeName > , "values": [ { "id": < valueId > , "name": < valueName > }] }]
CODE
For example:[{ "id": "C0A81194013F85E4D708347C1B3CF8FF", "name": "Deployment Type", "values": [ { "id": "C0A81194013F85E4D708AB280D8F63AA", "name": "AOD" }, { "id": "C0A81194013F85E4D70856EF40D834DA", "name": "BTF" }] }]
CODEAdd attribute value(s) to a page:
POST -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/metadata/page/<confluencePageId>
CODEBody argument Body value attributeId
attributeValueId:true
For example:
To add the '
AOD
' value of the attribute 'Deployment Type
' to the Confluence page with Confluence Page Id '533232', you would need to do POST request to http://localhost:1990/confluence/rest/scroll-versions/1.0/metadata/page/533232 with body {"C0A81194013F85E4D708347C1B3CF8FF":{"C0A81194013F85E4D708AB280D8F63AA":true}}Get a list of attribute value(s) for a page:
GET -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/metadata/page/<confluencePageId>
CODE
This request will respond with the following:Response
{"attributeValues":{<attributeId>:{<valueId>:true}}} For example: {"attributeValues":{"C0A81194013F85E4D708347C1B3CF8FF":{"C0A81194013F85E4D708AB280D8F63AA":true}}}
CODE
Publishing via REST API
Re-schedule pages to a specific version via REST
With REST API tool of your choice you could automate the rescheduling process for a series of pages. Here is how to do it for a single page:
POST -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/page/{spaceKey}/reschedule/{ScrollPageId}/{versionId}/{targetVersionId}
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
spaceKey | The space key of the space you are going to reschedule a page | VSN |
ScrollPageId | You can get it by sending a GET request to <baseUrl>/rest/scroll-versions/1.0/page/<spaceKey>/<ConfluencePageId> . See Get the page details of a versioned page via REST. | C0A8127401622E4524D61AE85B97F931 |
versionId | You can get the list of versions and their versionIds by sending a GET request to <baseUrl>/rest/scroll-versions/1.0/versions/<spaceKey> . | C0A812CE0160D685FEF2582F7A13FAE6 |
targetVersionId | The target versionId of the version you would like a page to be rescheduled to. | 7F00000101622AC94A76FE6A0C2D61A0 |
We also have a feature request to implement this functionality in UI: https://k15t.jira.com/browse/VSN-3487.
Manage versioned pages via REST
POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" [confluence_base_url]/rest/scroll-versions/1.0/page/modify
For this case you need to set the following request headers:
Header key | Header value |
---|---|
Accept | application/json |
Content-Type | application/x-www-form-urlencoded |
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
masterPageId | The Confluence page id of the masterpage. | 107302 |
pageTitle | The title for the page in this version | Versioned%20page |
versionId | The Id of the version to be added | 7F00000101622AC94A76FE6A0C2D61A0 |
changeType | Use "Modify" if you want to add the page to a version. Use "Remove" to remove the page from this version | Modify |
For example, this request changes the title of the versioned page to "Changed title":
POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" [confluence_base_url]/rest/scroll-versions/1.0/page/modify?masterPageId=17989634&pageTitle=Changed%20title&versionId=7F00000101622AC94A76FE6A0C2D61A0&changeType=Modify
To remove a page from version with versionId 7F00000101622AC94A76FE6A0C2D61A0:
POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" [confluence_base_url]/rest/scroll-versions/1.0/page/modify?masterPageId=17989634&pageTitle=Created%20with%20REST%20APIaa&versionId=7F00000101622AC94A76FE6A0C2D61A0&changeType=Remove
To edit a versioned page in a newly created version, simply use the versionId of that version with Modify
value of ChangeType
parameter:
POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" [confluence_base_url]/rest/scroll-versions/1.0/page/modify?masterPageId=17989634&pageTitle=Changed%20title&versionId=7F00000101622F08E55548715DF477BA&changeType=Modify
Create versioned page via REST
To create a new versioned page, use the following POST request:
POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" [confluence_base_url]/rest/scroll-versions/1.0/page/new/<spaceKey>?parentConfluenceId=<parentConfluenceId>&pageTitle=<pageTitle>&versionId=<versionId>
For this case you need to set the following request headers:
Header key | Header value |
---|---|
Accept | application/json |
Content-Type | application/x-www-form-urlencoded |
You have to set the following parameters:
Path parameters | Description | Example |
---|---|---|
confluence_base_url | The base URL of your Confluence system | confluence.k15t.com |
parentConfluenceId | The Confluence page Id of the masterpage of the parent page (not the id of a dot-page!) | 107302 |
pageTitle | The title of the new versioned page. Use %20 for spaces. | New%20Page |
versionId | The id of the version in which the page should be created initially. | 7F00000101622AC94A76FE6A0C2D61A0 |
The example request below creates a master page and a versioned page with title "Created with REST API" in the specified version. The call itself returns the page id of the new versioned page, which you can use to edit the page through Confluence REST API:
POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" [confluence_base_url]/rest/scroll-versions/1.0/page/new/TT?parentConfluenceId=1671170&pageTitle=Created%20with%20REST%20API&versionId=7F000001016150D096C2761A2569920D
Edit versioned pages via REST
Once the page is created, you can edit the content over the normal Confluence REST API (the response contains the confluencePageId of the versioned page).
Health Check via REST
To run the checks:
POST -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/checks/health?mode=run&spaceKey={SPACEKEY}
To execute the repair:
POST -H "Accept: application/json" [confluence_base_url]/rest/scroll-versions/1.0/checks/health?mode=fix&spaceKey={SPACEKEY}