Skip to main content

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:

Bash
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:

Bash
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:

Bash
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}
XML
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:

Bash
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:

Bash
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:

XML
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:

Bash
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:

Bash
http://localhost:8080/api/v1/editWorkflowSettings/folder/www.example.com/news?u=hill&p=hill

ListMessages

ListMessages

/api/v1/listMessages?{auth}

example:

Bash
http://localhost:8080/api/v1/listMessages?u=hill&p=hill

ListSites

/api/v1/listSites?{auth}

example:

Bash
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:

Bash
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:

Bash
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:

JSON
{
  "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:

Bash
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: 

JSON
{
  "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})

Bash
http://localhost:8080/api/v1/read/page/www.example.com/news/2003/best-of-show

Asset identifier (/api/v1/read/{identifier})

Bash
http://localhost:8080/api/v1/read/page/e9f2f9a1c1a8003a2dba29096e32b2ee

ReadAccessRights

/api/v1/readAccessRights/{identifier}?{auth}

example:

Bash
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:

Bash
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:

Bash
http://localhost:8080/api/v1/readPreferences?u=hill&p=hill

ReadWorkflowInformation

/api/v1/readWorkflowInformation/{identifier}?{auth}

example:

Bash
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:

Bash
http://localhost:8080/api/v1/readWorkflowSettings/folder/www.example.com/news?u=hill&p=hill

Relationships

Relationships

/api/v1/relationships/{identifier}?{auth}

example:

Bash
http://localhost:8080/api/v1/relationships/page/www.example.com/news/2003/best-of-show?u=hill&p=hill

/api/v1/search?{auth}

  • Include “searchInformation” in message body based on {wsdl}

example:

Bash
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:

Bash
http://localhost:8080/api/v1/siteCopy?u=hill&p=hill
{
  originalSiteName: "www.example.com",
  newSiteName: "new-site"
}