REST API operations
Every operation in the Cascade CMS REST API, with its endpoint and the placeholders it takes. See REST API placeholders for what {auth}, {identifier}, and {wsdl} stand for.
CheckIn
/api/v1/checkIn/{identifier}?{auth}
- Optionally include string “comments” in message body
example:
http://localhost:8080/api/v1/checkIn/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
{
"comments": "Here are some comments."
}
CheckOut
/api/v1/checkOut/{identifier}?{auth}
example:
http://localhost:8080/api/v1/checkOut/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
Copy
/api/v1/copy/{identifier}?{auth}
- Include “copyParameters” in message body based on {wsdl}
- Optionally include “workflowConfiguration” in message body based on {wsdl}
example:
http://localhost:8080/api/v1/copy/page/www.example.com/page-to-copy?u=hill&p=hill
{
"copyParameters": {
"newName": "copied-page",
"destinationContainerIdentifier": {
"type": "folder",
"path": {
"siteName": "site-name",
"path": "/"
}
}
}
}
Create
/api/v1/create?{auth}
- Include “asset” in message body based on {wsdl}
http://localhost:8080/api/v1/create?u=hill&p=hill
{
"asset": {
"page": {
"name": "test",
"parentFolderPath": "/",
"siteName": "www.example.com",
"contentTypeId": "b9bc37270a00016b00899e533ba18fe5",
"xhtml": "<div>Content</div>",
"metadata": {
"title": "Page title"
}
}
}
}
Delete
/api/v1/delete/{identifier}?{auth}
- Include “deleteParameters” in message body based on {wsdl}
- Optionally include “workflowConfiguration” in message body based on {wsdl}
example:
http://localhost:8080/api/v1/delete/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
DeleteMessage
/api/v1/deleteMessage/{identifier}?{auth}
example:
http://localhost:8080/api/v1/deleteMessage/message/21903a3d7f000001554c369f276691eb?u=hill&p=hill
Edit
/api/v1/edit?{auth}
- Include “asset” in message body based on {wsdl}
example:
http://localhost:8080/api/v1/edit?u=hill&p=hill
{
"asset": {
"page": {
"id": "b9b0a96c0a00016b00899e5325baab29",
"contentTypeId": "b9bc37270a00016b00899e533ba18fe5",
"xhtml": "<div>Content</div>",
"metadata": {
"title": "Page title"
}
}
}
}
EditAccessRights
EditAccessRights
/api/v1/editAccessRights/{identifier}?{auth}
- Include “accessRightsInformation” in message body based on {wsdl}. Its “identifier” property is not necessary if it was provided in URL.
EditPreference
/api/v1/editPreference?{auth}
- Include “preference” in message body based on {wsdl}
example:
http://localhost:8080/api/v1/editPreference?u=hill&p=hill
{
"preference": {
"name": "system_pref_global_area_external_link_check_on_publish",
"value": "on"
}
}
EditWorkflowSettings
/api/v1/editWorkflowSettings/{identifier}?{auth}
- Optionally include “workflowSettings” in message body based on {wsdl}. Its “identifier” property is not necessary if it was provided in URL. If “workflowSettings” is not provided, the folder will have all workflow definitions removed and workflow will not be required or inherited.
- Optionally include “applyInheritWorkflowsToChildren” with “true” or “false” value (false by default)
- Optionally include “applyRequireWorkflowToChildren” with “true” or “false” value (false by default)
example:
http://localhost:8080/api/v1/editWorkflowSettings/folder/www.example.com/news?u=hill&p=hill
ListMessages
ListMessages
/api/v1/listMessages?{auth}
example:
http://localhost:8080/api/v1/listMessages?u=hill&p=hill
ListSites
/api/v1/listSites?{auth}
example:
http://localhost:8080/api/v1/listSites?u=hill&p=hill
Note
If you don't see certain Sites (or any at all), verify that the user has at least Read access on the Site object itself (under Manage Site > More > Access).
ListSubscribers (deprecated)
ListSubscribers
/api/v1/listSubscribers/{identifier}?{auth}
example:
http://localhost:8080/api/v1/listSubscribers/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
Note
As of Cascade CMS 2025.2.2, this operation is deprecated and has been replaced by the relationships method.
MarkMessage
/api/v1/markMessage/{identifier}?{auth}
- Include “markType” in message body with value “read” or “unread”
example:
http://localhost:8080/api/v1/markMessage/message/21903a3d7f000001554c369f276691eb?u=hill&p=hill
{
"markType": "read"
}
Move
/api/v1/move/{identifier}?{auth}
- Include “moveParameters” in message body based on {wsdl}
- Optionally include “workflowConfiguration” in message body based on {wsdl}
example:
{
"identifier": {
"id": "ba1d843cac1e00593e785d893ce8cd11",
"type": "file"
},
"moveParameters": {
"destinationContainerIdentifier": {
"id": "d8174b287f0000011bd202d182d826d4",
"type": "folder"
},
"doWorkflow": false,
"unpublish": true
}
}
PerformWorkflowTransition
/api/v1/performWorkflowTransition?{auth}
- Include “workflowTransitionInformation” in message body based on {wsdl}
Publish
/api/v1/publish/{identifier}?{auth}
- Optionally include “publishInformation” in message body based on {wsdl}. Its “identifier” property is not necessary if it was provided in URL.
example:
http://localhost:8080/api/v1/publish/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
Note
The response success: true in this case means that the asset has been successfully added to the publish queue. It does not indicate that the asset has actually been published yet to the corresponding Destinations in the request.
Tip
To unpublish, you can include the following in your POST request:
{
"publishInformation": {
"unpublish": true
}
}
Read
/api/v1/read/{identifier}?{auth}
You can structure your URL in multiple ways. A few examples are below:
Path (/api/v1/read/{siteName}/{path}/{to}/{asset})
http://localhost:8080/api/v1/read/page/www.example.com/news/2003/best-of-show
Asset identifier (/api/v1/read/{identifier})
http://localhost:8080/api/v1/read/page/e9f2f9a1c1a8003a2dba29096e32b2ee
ReadAccessRights
/api/v1/readAccessRights/{identifier}?{auth}
example:
http://localhost:8080/api/v1/readAccessRights/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
ReadAudits
/api/v1/readAudits/{identifier}?{auth}
- Optionally include “auditParameters” in message body based on {wsdl}. Its “identifier” property is not necessary if it was provided in URL.
- Date behavior:
- no dates: last week"s audits, based on current date
- start date only: all audits after start date
- end date only: one week’s worth of audits, based on end date
- start and end date: all audits between dates
example:
http://localhost:8080/api/v1/readAudits/user/hill?u=hill&p=hill
{
"auditParameters": {
"startDate": "May 12, 2023 12:00:00 AM",
"endDate": "Aug 12, 2023 11:59:00 PM"
}
}
ReadPreferences
/api/v1/readPreferences?{auth}
example:
http://localhost:8080/api/v1/readPreferences?u=hill&p=hill
ReadWorkflowInformation
/api/v1/readWorkflowInformation/{identifier}?{auth}
example:
http://localhost:8080/api/v1/readWorkflowInformation/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
ReadWorkflowSettings
ReadWorkflowSettings
/api/v1/readWorkflowSettings/{identifier}?{auth}
example:
http://localhost:8080/api/v1/readWorkflowSettings/folder/www.example.com/news?u=hill&p=hill
Relationships
Relationships
/api/v1/relationships/{identifier}?{auth}
example:
http://localhost:8080/api/v1/relationships/page/www.example.com/news/2003/best-of-show?u=hill&p=hill
Search
/api/v1/search?{auth}
- Include “searchInformation” in message body based on {wsdl}
example:
http://localhost:8080/api/v1/search?u=hill&p=hill
{
"searchInformation": {
"searchTerms":"https://www.hannonhill.com",
"searchFields": ["xml"],
"searchTypes": ["page"]
}
}
Note
The searchFields and searchTypes parameters must be included as arrays as seen above.
SiteCopy
/api/v1/siteCopy?{auth}
- Include string “originalSiteId” or “originalSiteName” in message body
- Include string “newSiteName” in message Body
example:
http://localhost:8080/api/v1/siteCopy?u=hill&p=hill
{
originalSiteName: "www.example.com",
newSiteName: "new-site"
}