Crafter Studio (4.2.0)

Download OpenAPI specification:Download

E-mail: info@craftercms.org License: GPL 3.0

Crafter Studio API

groups

Group management operations

Get all groups

Required Permission: "READ_GROUPS"

Authorizations:
jwtAuthbasicAuth
query Parameters
keyword
string

The keyword to filter groups

offset
integer <int32>

Offset of first group in the response

limit
integer <int32>

Number of groups to return

sort
string

The fields to use for sorting, plus the asc or desc keyword case-insensitive. Multiple fields are separated by commas. Example: column1 ASC, column2 DESC.

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "groups": [
    ]
}

Create group

Required Permission: "CREATE_GROUPS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Group entity to create

id
required
integer <int64>

Group ID, unique and immutable

name
required
string

Group name, unique

desc
string

Group description

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "desc": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "group": {
    }
}

Update group

Required Permission: "UPDATE_GROUPS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Group entity to update

id
required
integer <int64>

Group ID, unique and immutable

desc
string

Group description

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "desc": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "group": {
    }
}

Delete group(s)

Required Permission: "DELETE_GROUPS"

Authorizations:
jwtAuthbasicAuth
query Parameters
id
required
Array of strings

The group ID(s). Can be repeated for multiple deletes (id=1&id=2&id=3)

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get group by ID

Required Permission: "READ_GROUPS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The group ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "group": {
    }
}

Get all the members of the specified group

Required Permission: "READ_GROUPS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The group ID

query Parameters
offset
integer <int32>

Offset of first record in the response

limit
integer <int32>

Number of records to return

sort
string

The fields to use for sorting, plus the asc or desc keyword case-insensitive. Multiple fields are separated by commas. Example: column1 ASC, column2 DESC.

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "users": [
    ]
}

Add member(s) to the specified group

Required Permission: "UPDATE_GROUPS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The group ID

Request Body schema: application/json

List of user IDs and/or usernames to add

ids
Array of strings
usernames
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "usernames": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "users": [
    ]
}

Remove member(s) from the specified group

Required Permission: "DELETE_GROUPS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The group ID

query Parameters
userId
Array of strings

The user ID(s) to remove. Can be repeated for multiple deletes (userId=1&userId=2&userId=3)

username
Array of strings

The username(s) to remove. Can be repeated for multiple deletes (username=john&username=mark)

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

users

User management operations

Get all users

Required Permission: "READ_USERS"

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
string

The site ID to filter users for a particular site

keyword
string

The keyword to filter users

offset
integer <int32>

Offset of first record in the response

limit
integer <int32>

Number of records to return

sort
string

The fields to use for sorting, plus the asc or desc keyword case-insensitive. Multiple fields are separated by commas. Example: column1 ASC, column2 DESC.

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "users": [
    ]
}

Create user

Required Permission: "CREATE_USERS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

User entity to create

username
required
string

Username, unique

password
required
string

User's password (not returned to caller)

firstName
required
string

User's first name

lastName
required
string

User's last name

email
required
string

User's email address

enabled
required
boolean

Indicates if the user is enabled

externallyManaged
required
boolean

Indicates if a user is managed in by an external system (LDAP, SAML, etc.)

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "enabled": true,
  • "externallyManaged": true
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "users": {
    }
}

Update user

Required Permission: "UPDATE_USERS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

User entity to update. Supported update attributes are firstName, lastName, email and enabled.

id
required
integer <int64>

User ID, unique and immutable

firstName
required
string

User's first name

lastName
required
string

User's last name

email
required
string

User's email address

enabled
required
boolean

Indicates if the user is enabled

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "user": {
    }
}

Delete user(s)

Required Permission: "DELETE_USERS"

Authorizations:
jwtAuthbasicAuth
query Parameters
id
Array of strings

The user ID(s). Can be repeated for multiple deletes (id=1&id=2&id=3)

username
Array of strings

The username(s). Can be repeated for multiple deletes (username=john&username=mark)

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get user by user ID or username

Required Permission: "READ_USERS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

The user ID. Username can also be used

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "user": {
    }
}

Enable user(s)

Required Permission: "UPDATE_USERS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

List of user IDs and/or usernames to enable

ids
Array of strings
usernames
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "usernames": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "users": [
    ]
}

Disable user(s)

Required Permission: "UPDATE_USERS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

List of user IDs and/or usernames to disable

ids
Array of strings
usernames
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "usernames": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "users": [
    ]
}

Get all the sites the specified user has access to

Required Permission: "READ_USERS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

The user ID. Username can also be used

query Parameters
offset
integer <int32>

Offset of first site in the response

limit
integer <int32>

Number of sites to return

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "sites": [
    ]
}

Get the site roles for the specified user

Required Permission: "READ_USERS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

The user ID. Username can also be used

site
required
string

The site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "roles": [
    ]
}

Reset password for user

Required Permission: "UPDATE_USERS"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

The user ID. Username can also be used

Request Body schema: application/json

request body to reset password for user

username
required
string
new
required
string

new password

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "new": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Change password for user

Required Permission: "ANONYMOUS"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

request body to change password

token
required
string
new
required
string

new password

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "new": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "user": {
    }
}

Get current authenticated user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "authenticatedUser": {
    }
}

Get all the sites the current authenticated user has access to

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
query Parameters
offset
integer <int32>

Offset of first record in the response

limit
integer <int32>

Number of records to return

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "sites": [
    ]
}

Get the site roles for the current authenticated user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
path Parameters
site
required
string

The site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "roles": [
    ]
}

Get the site permissions for the current authenticated user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
path Parameters
site
required
string

The site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "permissions": [
    ]
}

Check if the current authenticated user has given permissions

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
path Parameters
site
required
string

The site ID

Request Body schema: application/json

request body to check if current authenticated user has permissions

permissions
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "permissions": {
    }
}

Get the global for the current authenticated user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "permissions": [
    ]
}

Check if the current authenticated user has given global permissions

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

request body to check if current authenticated user has permissions

permissions
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "permissions": {
    }
}

Get the SSO Service Provide logout URL for the current authenticated user

  • Required Permission: "LOGGED_IN"
  • The system should redirect to this logout URL AFTER local logout. Response entity can be null if user is not authenticated through SSO or if logout is disabled
Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "logoutUrl": "string"
}

Change password for current user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

request body to change password

username
required
string
current
required
string

current password

new
required
string

new password

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "current": "string",
  • "new": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "user": {
    }
}

Retrieve properties for the current user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
string

The id of the site (defaults to global)

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "properties": {
    }
}

Update properties for the current user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
string

The id of the site (defaults to global)

object

Properties to update or add

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "properties": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "properties": {
    }
}

Delete properties for the current user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
string

The id of the site (defaults to global)

properties
required
Array of strings

List of keys to delete

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "properties": {
    }
}

Forgot password

Required Permission: "ANONYMOUS"

Authorizations:
jwtAuthbasicAuth
query Parameters
username
required
string

The username of user that forgot password

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Validate forgot password token

Required Permission: "ANONYMOUS"

Authorizations:
jwtAuthbasicAuth
query Parameters
token
required
string

forgot password token to be validated

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

ui

UI support operations

Get the global menu items available to the current user

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "menuItems": [
    ]
}

Get the current active environment for the system

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "environment": "string"
}

aws

AWS operations

Get a list of items from an S3 bucket

Required Permission: "s3_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

The site ID

profileId
required
string

The profile ID

path
string

The path of the directory to list (defaults to the root)

type
string

The type of items to list (defaults to all types)

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

Upload a file to an S3 bucket

Required Permission: "s3_write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: multipart/form-data
siteId
required
string

The site ID

profileId
required
string

The profile ID

path
string

The path where the file will be uploaded (will be used as part of the key in S3)

filename
required
string

The name of the file (will be used as part of the item key in S3)

file
required
string <binary>

The content of the file to upload

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "item": {
    }
}

Upload a file to an S3 bucket and trigger a MediaConvert job

Required Permission: "s3_write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: multipart/form-data
siteId
required
string

The site ID

inputProfileId
required
string

The MediaConvert profile ID

outputProfileId
required
string

The S3 profile ID for the generated URLs

file
required
string <binary>

The content of the file to upload

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "item": {
    }
}

cluster

Cluster management operations

Get all the members of the cluster

Required Permission: "read_cluster"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "clusterMembers": [
    ]
}

Get the local Studio instance cluster mode

Required Permission: "read_cluster"

Authorizations:
jwtAuthbasicAuth
query Parameters
token
required
string

Management token - not required for authenticated users

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "mode": "PRIMARY"
}

sites

Site management operations

Get all available blueprints

Required Permission: "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "blueprints": [
    ]
}

Create a site from a Marketplace blueprint

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

The site information

siteId
required
string

Site ID to use

description
string

Site description

sandboxBranch
string

Name for sandbox branch (default master)

remoteName
string

Remote repository name (default origin)

blueprintId
required
string

The ID of the blueprint to use

required
object (Version)
object

Object containing all parameters for the blueprint. It should include all required parameters from the descriptor

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "description": "string",
  • "sandboxBranch": "string",
  • "remoteName": "string",
  • "blueprintId": "string",
  • "blueprintVersion": {
    },
  • "siteParams": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Updates the name and description for a given site

Required Permission: "edit_site"

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string

The site ID

Request Body schema: application/json
name
string

The name of the site

description
string

The description of the site

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Deletes a site

Required Permission: "delete_site"

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string

The site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Unlock a site locked with state LOCKED

Required Permission: "edit_site"

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "result": {
    }
}

Verifies if all indicated actions are compliant with the site policies

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string
Request Body schema: application/json
required
Array of objects

The list of actions to verify

Responses

Request samples

Content type
application/json
{
  • "actions": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "result": {
    }
}

Duplicates a site

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string
Request Body schema: application/json

Duplicate site request information

siteName
string

The name of the new site

siteId
string

The ID of the new site

description
string

The description of the new site

sandboxBranch
string

The sandbox branch to be used in the new site sandbox repository

readOnlyBlobStores
boolean
Default: false

If true, the blob stores will be read-only in the copied site.

Responses

Request samples

Content type
application/json
{
  • "siteName": "string",
  • "siteId": "string",
  • "description": "string",
  • "sandboxBranch": "string",
  • "readOnlyBlobStores": false
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create a Crafter Studio project.

Required Role: "Admin"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Project/site details

site_id
required
string

Project/Site ID to use

name
required
string

Label to use for the project/site

sandbox_branch
string

Name for sandbox branch (default: master)

description
string

Project/Site description

blueprint
string

Blueprint to use for bootstrapping the project/site

Required if use_remote is false

use_remote
boolean

Use remote repository option if true, otherwise false

remote_name
string

Remote repository name (default: origin)

remote_url
string

Remote repository URL

Required if use_remote is true

remote_branch
string

Branch to clone repo from

single_branch
string

Clone single branch if true, otherwise clone all

authentication_type
string

Authentication type to use to access remote repository

  none: No authentication 

  basic: username password authentication 

  token: username token authentication 

  key: key-based authentication 

Required if authentication_type to be used is not none

remote_username
string

Username to access remote repository

Required if authentication_type is set to basic

remote_password
string

Password to access remote repository

Required if authentication_type is set to basic

remote_token
string

Token to use to access remote repository

Required if authentication_type is set to token

remote_private_key
string

Private key to access remote repository

create_option
string

Create options for remote repository:

clone: clone from remote repository Required if use_remote is true

site_params
object

Object containing all parameters for the blueprint. It should include all required parameters from the descriptor

create_as_orphan
boolean

Create the project/site from a remote repository as orphan (no git history) - default is false

Responses

Request samples

Content type
application/json
{
  • "site_id": "my-editorial",
  • "name": "string",
  • "sandbox_branch": "string",
  • "description": "My very first site!",
  • "blueprint": "org.craftercms.blueprint.empty",
  • "use_remote": false,
  • "remote_name": "string",
  • "remote_url": "string",
  • "remote_branch": "string",
  • "single_branch": "string",
  • "authentication_type": "string",
  • "remote_username": "string",
  • "remote_password": "string",
  • "remote_token": "string",
  • "remote_private_key": "string",
  • "create_option": "string",
  • "site_params": { },
  • "create_as_orphan": true
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Delete a Crafter Studio project.

Required Role: "Admin"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Project/site to delete

site_id
string

Project/Site ID to use

Responses

Request samples

Content type
application/json
{
  • "site_id": "my-editorial"
}

Response samples

Content type
application/json
true

Check if Crafter Studio project/site exists.

Required role: admin, member in the project/site

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

Responses

Response samples

Content type
application/json
{
  • "exists": true
}

Get rejection reason.

No required role

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

locale
required
string
Example: locale=en

Locale of message

type
required
string
Example: type=Typos

Message type

Responses

Response samples

Content type
application/json
{
  • "exists": "This content has multiple spelling errors and/or grammatical errors. Please correct and re-submit."
}

Get a Crafter Studio project/site

No required role

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

Responses

Response samples

Content type
application/json
{
  • "id": 8,
  • "siteUuid": "8d71254a-ceb3-409a-bb59-610505764a77",
  • "siteId": "third",
  • "name": "third",
  • "description": "null",
  • "deleted": 0,
  • "liveUrl": "null",
  • "lastCommitId": "5cb6fe1a1f2fa5aa38d372c757c8db8f0f17ecb3",
  • "publishingEnabled": 1,
  • "publishingStatus": "ready",
  • "lastVerifiedGitlogCommitId": "5cb6fe1a1f2fa5aa38d372c757c8db8f0f17ecb3",
  • "sandboxBranch": "master",
  • "publishedRepoCreated": 0,
  • "state": "READY",
  • "lastSyncedGitlogCommitId": "5cb6fe1a1f2fa5aa38d372c757c8db8f0f17ecb3",
  • "siteDeleted": false,
  • "sitePublishedRepoCreated": false
}

Get all projects/sites content monitors

Required role: none

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

search

Search operations

Performs a search for the given site

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

The site ID

Request Body schema: application/json

Search Parameters

query
string

The main Lucene query to execute

keywords
string

The keywords to search in the files

path
string

Regular expression to filter the paths

offset
integer <int64>

The offset to paginate the results (defaults to 0)

limit
integer <int64>

The limit to paginate the results (defaults to 10)

sortBy
string

The name of the field to sort the results (defaults to sort by relevance)

sortOrder
string

The order to sort the results (defaults to DESC)

orOperator
boolean

Indicates if the filters should use an OR instead of an AND operator (defaults to false)

object

Object containing facets to filter the search results. Facets can be simple key-value pairs like "MIME Type":"text/css" or nested objects for range facets like "Width": { "min": 0, "max": 150 }. Both keys and values can be taken from the facets object of a previous search.

Responses

Request samples

Content type
application/json
{
  • "query": "string",
  • "keywords": "string",
  • "path": "string",
  • "offset": 0,
  • "limit": 0,
  • "sortBy": "string",
  • "sortOrder": "string",
  • "orOperator": true,
  • "filters": { }
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "result": {
    }
}

audit

Audit log operations

Get audit log

Required permission "AUDIT_LOG"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
string

Site ID (site identifier) - optional for super admin user, otherwise required

offset
integer <int32>

Offset of first record in the response

limit
integer <int32>

Number of records to return

user
string

Filter log by user name

operations
Array of strings

Filter log by operations

includeParameters
boolean

Include parameters into result set if true. Default false

dateFrom
string

Lower boundary in date range query

dateTo
string

Upper boundary in date range query

target
string

Regular expression to filter target values

origin
string

Origin filter for audit log. Possible values API and GIT

clusterNodeId
string

Cluster node id filter for audit log

sort
string

Sort result set by specified field. Possible values date.

order
string

Order in sorted result. Possible values ASC and DESC

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "auditLog": [
    ]
}

Get audit log entry

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The log entry ID

query Parameters
siteId
string

Site ID (site identifier) - optional for super admin user, otherwise required

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "auditLog": [
    ]
}

monitoring

Monitoring operations

Get the current version information

Authorizations:
jwtAuthbasicAuth
query Parameters
token
required
string

Management token - not required for authenticated users

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "version": {
    }
}

Get the current status information

Authorizations:
jwtAuthbasicAuth
query Parameters
token
required
string

Management token - not required for authenticated users

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "status": {
    }
}

Get the current memory information

Authorizations:
jwtAuthbasicAuth
query Parameters
token
required
string

Management token - not required for authenticated users

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "memory": {
    }
}

Get the log events for a specific time period

Authorizations:
jwtAuthbasicAuth
query Parameters
since
required
integer <int64>

The time in milliseconds from which events should be fetched

token
required
string

Management token - not required for authenticated users

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "events": [
    ]
}

repository

Repository operations

Synchronize Crafter Studio’s database and object state with the underlying repository.

Required role: Admin, site member

This needs to be done if the underlying repository was updated directly, bypassing Studio’s APIs/UI.

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Synchronize from repository request body

site_id
required
string

Site ID

Responses

Request samples

Content type
application/json
{
  • "site_id": "string"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Add remote repository to the site content repository

Required permission "add_remote"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Remote repository entity

siteId
required
string

site identifier

remoteName
required
string

remote repository name

remoteUrl
required
string <URL>

URL to access remote repository

authenticationType
required
string

Authentication type to use to access remote repository Possible values:

  • none: no authentication

  • basic: username and password authentication

  • token: token authentication

  • key: key-based authentication

remoteUsername
string

username to use to access remote repository

remotePassword
string

password to use to access remote repository

remoteToken
string

token to use to access remote repository

remotePrivateKey
string

private key to access

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "remoteName": "string",
  • "remoteUrl": "string",
  • "authenticationType": "string",
  • "remoteUsername": "string",
  • "remotePassword": "string",
  • "remoteToken": "string",
  • "remotePrivateKey": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Pull content from remote repository to site content repository

Required permission "pull_from_remote"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

pull from remote repository request body

siteId
required
string

Site ID

remoteName
required
string

Remote repository name to pull from

remoteBranch
required
string

Remote repository branch to pull from

mergeStrategy
string <theirs, ours, none>

Merge strategy to use when pulling content from remote repository

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "remoteName": "string",
  • "remoteBranch": "string",
  • "mergeStrategy": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "result": {
    }
}

Push content to remote repository from site content repository

Required permission "push_to_remote"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

push to remote repository request body

siteId
required
string

Site ID

remoteName
required
string

Remote repository name to push to

remoteBranch
required
string

Remote repository branch to push to

force
boolean

Indicates whether to force push to remote or not

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "remoteName": "string",
  • "remoteBranch": "string",
  • "force": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove remote repository from site content repository

Required permission "remove_remote"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

remove remote repository request body

siteId
required
string

Site ID

remoteName
required
string

Remote repository name of remote to be removed

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "remoteName": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List remote repositories for a site

Required permission "list_remote"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "remotes": [
    ]
}

Get status of repository for a site

Required permission "site_status"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "repositoryStatus": {
    }
}

Resolve a conflict for a file by accepting ours or theirs

Required permission "resolve_conflict"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

resolve conflict request body

siteId
required
string

site ID

path
required
string

Conflicted file path

resolution
required
string

resolution mechanism to use (ours, theirs)

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string",
  • "resolution": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "repositoryStatus": {
    }
}

Get the difference between ours and theirs for a conflicted file for a site

Required permission "site_diff_conflicted_file"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

path
required
string

Path of conflicted file

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "diff": {
    }
}

Commit a resolved set of conflicts for a site

Required permission "commit_resolution"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Commit resolution request body

siteId
required
string

site ID

commitMessage
required
string

Commit message

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "commitMessage": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "repositoryStatus": {
    }
}

Cancel a failed/conflicted pull for a site

Required permission "cancel_failed_pull"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

cancel failed pull request body

siteId
required
string

site ID

Responses

Request samples

Content type
application/json
{
  • "siteId": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "repositoryStatus": {
    }
}

Unlock local git repository

Required role "system_admin" for global, "admin" for site sandbox or published

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Unlock local git repository request

siteId
string

site ID, do not send if unlocking the GLOBAL repository

repositoryType
required
string <GLOBAL, SANDBOX or PUBLISHED>

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "repositoryType": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "repositoryStatus": {
    }
}

Check if a given repository is corrupted

Required role "system_admin" for global, "admin" for site sandbox or published

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
string

site ID, do not send if checking the GLOBAL repository

repositoryType
required
string <GLOBAL, SANDBOX or PUBLISHED>

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "corrupted": true
}

Repair local git repository

Required role "system_admin" for global, "admin" for site sandbox or published

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
string

site ID, do not send if repairing the GLOBAL repository

repositoryType
required
string <GLOBAL, SANDBOX or PUBLISHED>

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "repositoryType": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

content

Content operations

Change template for the content.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the content

contentType
required
string
Example: contentType=/page/generic

Content type to change to

Responses

Response samples

Content type
application/json
{
  • "message": "OK"
}

Create folder.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/

Path of the content

name
required
string
Example: name=newFolder

Name of the new folder

Responses

Response samples

Content type
application/json
{
  • "message": true
}

Rename folder.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/

Path of the content

name
required
string
Example: name=newFolder

New name of the folder

Responses

Response samples

Content type
application/json
{
  • "result": "true"
}

Get content stream.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/health/index.xml

Path of the content

edit
required
boolean
Example: edit=true

True to make content locked

Responses

Response samples

Content type
application/json
{
  • "content": "<page>\n\t<content-type>/page/category-landing</content-type>\n\t<display-template>/templates/web/pages/category-landing.ftl</display-template>\n\t<no-template-required/>\n\t<merge-strategy>inherit-levels</merge-strategy>\n\t<objectGroupId>0557</objectGroupId>\n\t<objectId>05573d7a-3556-1ad0-6e34-9b085944fee2</objectId>\n\t<file-name>index.xml</file-name>\n\t<folder-name>health</folder-name>\n\t<placeInNav>true</placeInNav>\n\t<orderDefault_f>9000</orderDefault_f>\n\t<internal-name>Health</internal-name>\n\t<title_t>Health</title_t>\n\t<createdDate>2017-03-14T15:21:57.000Z</createdDate>\n\t<createdDate_dt>2017-03-14T15:21:57.000Z</createdDate_dt>\n\t<lastModifiedDate>2020-10-07T12:08:00.200Z</lastModifiedDate>\n\t<lastModifiedDate_dt>2020-10-07T12:08:00.200Z</lastModifiedDate_dt>\n\t<category_s>health</category_s>\n\t<max_articles_i>10</max_articles_i>\n\t<articles_title_t>Health</articles_title_t>\n\t<disabled>false</disabled>\n\t<header_o item-list=\"true\"/>\n\t<left_rail_o item-list=\"true\"/>\n</page>\n"
}

Get content stream at path.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/health/index.xml

Path of the content

Responses

Response samples

Content type
application/json
{
  • "contentStream": {
    },
  • "contentPath": "/site/website/health/index.xml"
}

Get content type configuration.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

type
required
string
Example: type=/page/category-landing

Content type

Responses

Response samples

Content type
application/json
{
  • "name": "/page/category-landing",
  • "label": "Category Landing",
  • "form": "/page/category-landing",
  • "formPath": "simple",
  • "type": "page",
  • "contentAsFolder": true,
  • "useRoundedFolder": false,
  • "modelInstancePath": "NOT-USED-BY-SIMPLE-FORM-ENGINE",
  • "allowedRoles": [ ],
  • "lastUpdated": "2023-11-10T18:00:05.882948Z",
  • "copyDependencyPattern": [ ],
  • "imageThumbnail": "page-category-landing.png",
  • "noThumbnail": false,
  • "pathIncludes": [
    ],
  • "pathExcludes": [ ],
  • "nodeRef": "null",
  • "quickCreate": false,
  • "quickCreatePath": "",
  • "deleteDependencyPattern": [ ],
  • "previewable": true
}

Get content types allowed for given path.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/

Path to get content types for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get content item.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the content

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "internalName": "string",
  • "contentType": "string",
  • "uri": "string",
  • "path": "string",
  • "browserUri": "string",
  • "navigation": true,
  • "floating": true,
  • "hideInAuthoring": true,
  • "previewable": true,
  • "lockOwner": "string",
  • "user": "string",
  • "userFirstName": "string",
  • "userLastName": "string",
  • "nodeRef": "string",
  • "metaDescription": "string",
  • "site": "string",
  • "page": true,
  • "component": true,
  • "document": true,
  • "asset": true,
  • "isContainer": true,
  • "container": true,
  • "disabled": true,
  • "savedAsDraft": true,
  • "submitted": true,
  • "submittedForDeletion": true,
  • "scheduled": true,
  • "published": true,
  • "deleted": true,
  • "inProgress": true,
  • "live": true,
  • "inFlight": true,
  • "isDisabled": true,
  • "isSavedAsDraft": true,
  • "isInProgress": true,
  • "isLive": true,
  • "isSubmittedForDeletion": true,
  • "isScheduled": true,
  • "isPublished": true,
  • "isNavigation": true,
  • "isDeleted": true,
  • "isNew": true,
  • "isSubmitted": true,
  • "isFloating": true,
  • "isPage": true,
  • "isPreviewable": true,
  • "isComponent": true,
  • "isDocument": true,
  • "isAsset": true,
  • "isInFlight": true,
  • "eventDate": "string",
  • "endpoint": "string",
  • "timezone": "string",
  • "numOfChildren": 0,
  • "scheduledDate": "string",
  • "publishedDate": "string",
  • "mandatoryParent": "string",
  • "isLevelDescriptor": true,
  • "categoryRoot": "string",
  • "lastEditDate": "string",
  • "form": "string",
  • "formPagePath": "string",
  • "renderingTemplates": [
    ],
  • "folder": true,
  • "submissionComment": "string",
  • "components": "string",
  • "documents": "string",
  • "levelDescriptors": "string",
  • "pages": "string",
  • "parentPath": "string",
  • "orders": [
    ],
  • "children": [
    ],
  • "size": 0,
  • "sizeUnit": "string",
  • "mimeType": "string",
  • "levelDescriptor": true,
  • "newFile": true,
  • "reference": true,
  • "new": true
}

Get item orders.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/style/index.xml

Path of the content

Responses

Response samples

Content type
application/json
{
  • "item": {
    },
  • "versions": [
    ]
}

Get content item version history.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the content

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get items tree.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the content

depth
required
integer
Example: depth=1

Depth of the tree to display

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "internalName": "string",
  • "contentType": "string",
  • "uri": "string",
  • "path": "string",
  • "browserUri": "string",
  • "navigation": true,
  • "floating": true,
  • "hideInAuthoring": true,
  • "previewable": true,
  • "lockOwner": "string",
  • "user": "string",
  • "userFirstName": "string",
  • "userLastName": "string",
  • "nodeRef": "string",
  • "metaDescription": "string",
  • "site": "string",
  • "page": true,
  • "component": true,
  • "document": true,
  • "asset": true,
  • "isContainer": true,
  • "container": true,
  • "disabled": true,
  • "savedAsDraft": true,
  • "submitted": true,
  • "submittedForDeletion": true,
  • "scheduled": true,
  • "published": true,
  • "deleted": true,
  • "inProgress": true,
  • "live": true,
  • "inFlight": true,
  • "isDisabled": true,
  • "isSavedAsDraft": true,
  • "isInProgress": true,
  • "isLive": true,
  • "isSubmittedForDeletion": true,
  • "isScheduled": true,
  • "isPublished": true,
  • "isNavigation": true,
  • "isDeleted": true,
  • "isNew": true,
  • "isSubmitted": true,
  • "isFloating": true,
  • "isPage": true,
  • "isPreviewable": true,
  • "isComponent": true,
  • "isDocument": true,
  • "isAsset": true,
  • "isInFlight": true,
  • "eventDate": "string",
  • "endpoint": "string",
  • "timezone": "string",
  • "numOfChildren": 0,
  • "scheduledDate": "string",
  • "publishedDate": "string",
  • "mandatoryParent": "string",
  • "isLevelDescriptor": true,
  • "categoryRoot": "string",
  • "lastEditDate": "string",
  • "form": "string",
  • "formPagePath": "string",
  • "renderingTemplates": [
    ],
  • "folder": true,
  • "submissionComment": "string",
  • "components": "string",
  • "documents": "string",
  • "levelDescriptors": "string",
  • "pages": "string",
  • "parentPath": "string",
  • "orders": [
    ],
  • "children": [
    ],
  • "size": 0,
  • "sizeUnit": "string",
  • "mimeType": "string",
  • "levelDescriptor": true,
  • "newFile": true,
  • "reference": true,
  • "new": true
}

Get next item order.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the parent item

Responses

Response samples

Content type
application/json
1000

Get pages. Gets tree of content items for given path.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the content

depth
required
integer
Example: depth=1

Depth of the tree to display

order
required
string
Example: order=default

Order of content items.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Reorder content items.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/health/index.xml

Path of the content

before
required
string
Example: before=1

Item before the item with given path

after
required
string
Example: after=default

Item after the item with given path

Responses

Response samples

Content type
application/json
10500

Revert content item to a specific version.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/style/index.xml

Path of the content

version
required
string
Example: version=818e0f68bfccda9a9a1a788341b87ca3ba5ad3c6

Version to revert to

Responses

Response samples

Content type
application/json
true

Write content.

Required role: Author

Options:
WriteContentWebForm: Save content using Create/Edit web form.
WriteContentAssetForm: Save content using asset form (templates, javascript, css, groovy).
WriteContentFileUpload: File upload (multipart request)

Authorizations:
jwtAuthbasicAuth
query Parameters
required
WriteContentWebForm (object) or WriteContentAssetForm (object) or WriteContentFileUpload (object)
Request Body schema:

Write content request body
Use "multipart/form-data" when uploading a file (WriteContentFileUpload)

string

Responses

Request samples

Content type
Example
<?xml version="1.0" encoding="UTF-8"?> <!-- ~ Copyright (C) 2007-2024 Crafter Software Corporation. All Rights Reserved. ~ ~ This program is free software: you can redistribute it and/or modify ~ it under the terms of the GNU General Public License version 3 as published by ~ the Free Software Foundation. ~ ~ This program is distributed in the hope that it will be useful, ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the ~ GNU General Public License for more details. ~ ~ You should have received a copy of the GNU General Public License ~ along with this program.  If not, see <http://www.gnu.org/licenses/>. --><page> <content-type>/page/article</content-type> <display-template>/templates/web/pages/article.ftl</display-template> <merge-strategy>inherit-levels</merge-strategy> <objectGroupId>f1f9</objectGroupId> <objectId>f1f9c488-67e1-7ec0-d3ca-560b194e64d1</objectId> <sections_o> <item> <section_html><![CDATA[<p>Nulla sed enim ipsum. Sed ac neque a ligula malesuada volutpat. Donec et ligula rutrum, mattis mauris eget, vestibulum metus. Maecenas non vehicula neque. Nunc ac mauris id ipsum commodo tempus. Integer at dolor consequat, dignissim eros in, imperdiet dui. Aliquam condimentum turpis eget tellus ultrices tincidunt. Pellentesque id varius purus, ac tristique augue. Etiam ut pharetra purus. Vestibulum quis vehicula eros. Mauris laoreet purus nec felis ullamcorper convallis. test</p> <p>Quisque urna purus, posuere nec urna sed, ornare aliquet mauris. In faucibus vitae tellus id iaculis. Donec porttitor, elit eu elementum pulvinar, sapien ex cursus lacus, non ornare ex lectus ut elit. Donec eros ligula, suscipit eu tellus ut, tristique hendrerit tortor. Fusce sollicitudin mollis risus, ut rhoncus magna volutpat vel. Cras auctor, elit id pellentesque semper, neque nibh fermentum ante, sit amet malesuada felis magna nec enim. Vivamus sollicitudin placerat felis, vel blandit dolor sollicitudin a. Nunc vitae volutpat augue. Nunc tristique placerat tortor condimentum sagittis. Sed eu egestas ex, quis auctor neque. Nam eget tellus suscipit, vestibulum augue nec, consequat erat. Mauris malesuada nec ligula non posuere. Proin vitae posuere tortor. Phasellus vulputate quam ut dictum vulputate.</p> <p>Integer ac lectus metus. Ut aliquam ipsum ligula, quis molestie ex pretium sit amet. Morbi porttitor neque vel luctus laoreet. Mauris varius lacus a eros aliquam, in maximus nibh aliquam. Integer sodales consequat metus eget accumsan. Integer viverra mi erat, in hendrerit massa vestibulum placerat. Sed ut gravida nisl, ut cursus neque. Vestibulum tristique rutrum augue vel aliquet.</p> <p>Ut quis faucibus diam. Aliquam dolor metus, laoreet vitae lacinia a, aliquam a tellus. Vivamus sed commodo ipsum, in lacinia nisl. Sed metus diam, porta eget tortor et, vehicula hendrerit sapien. Vestibulum vehicula urna felis, id elementum libero pellentesque id. Vivamus in massa velit. Suspendisse vitae turpis fermentum lectus pellentesque laoreet. Curabitur viverra pretium turpis, eget feugiat mi blandit a. Quisque nisl urna, porta ut urna eget, mattis fringilla nisi. Ut lacus ligula, dapibus ac fermentum ac, rhoncus eget metus. Donec scelerisque, felis vitae viverra iaculis, diam sem gravida tellus, non sodales urna urna sit amet enim. Duis id justo vitae justo suscipit porta placerat vel ligula. Morbi justo nunc, rhoncus laoreet ipsum a, aliquet eleifend dui. In a quam tortor.</p> <p>Pellentesque eget eros ut dui tincidunt convallis. Pellentesque tincidunt rutrum tellus, non rhoncus dui finibus eu. Integer eu sem maximus, blandit neque eu, congue leo. Ut pretium efficitur turpis, id dapibus turpis bibendum vel. Suspendisse a nibh dictum, imperdiet est et, interdum odio. Morbi urna magna, eleifend vitae luctus ac, scelerisque sit amet nisi. Quisque maximus placerat ante et fermentum. Nulla eu aliquet arcu, vel maximus massa. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam posuere arcu ex, in sagittis orci rhoncus eu. Suspendisse potenti. Curabitur facilisis sapien et ligula tristique lacinia. Aliquam a mauris bibendum, placerat augue sit amet, hendrerit arcu. Nam in bibendum sapien. Pellentesque laoreet nisi vel metus dapibus dictum. Integer semper, velit laoreet ornare maximus, nulla orci maximus ante, a tincidunt eros risus blandit eros.</p>]]></section_html> </item> </sections_o> <file-name>index.xml</file-name> <folder-name>men-styles-for-winter</folder-name> <internal-name>Men Styles For Winter</internal-name> <title_t>Men Styles For Winter</title_t> <subject_t>Men Styles For Winter</subject_t> <author_s>John Doe</author_s> <categories_o> <item> <key>style</key> <value_smv>Style</value_smv> </item> </categories_o> <segments_o> <item> <key>guy</key> <value_smv>Guy</value_smv> </item> </segments_o> <date_dt>2021-01-05T05:00:00.000Z</date_dt> <createdDate>2017-03-3T20:57:7.000Z</createdDate> <createdDate_dt>2017-03-3T20:57:7.000Z</createdDate_dt> <lastModifiedDate>2017-03-13T20:33:5.000Z</lastModifiedDate> <lastModifiedDate_dt>2023-11-20T13:25:05.289Z</lastModifiedDate_dt> <featured_b>true</featured_b> <summary_t>Nulla sed enim ipsum. Sed ac neque a ligula malesuada volutpat. Donec et ligula rutrum, mattis mauris eget, vestibulum metus. Maecenas non vehicula neque. Nunc ac mauris id ipsum commodo tempus. Integer at dolor consequat, dignissim eros in, imperdiet dui.</summary_t> <image_s>/static-assets/images/winter-man-pic.jpg</image_s> </page>

Response samples

Content type
application/json
{
  • "result": null
}

Get list of content types available for Quick Create functionality

Required permission "create content"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

Get a list of delete children (will be deleted) and dependent items (will have broken references) for a given list of items to be deleted

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

Site ID

paths
required
Array of strings

Content paths to get a delete package for

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "paths": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": {
    }
}

Delete content

Required permission "content_delete"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters for delete content

siteId
required
string

site identifier

items
required
Array of strings

path(s) of content item(s)

optionalDependencies
Array of strings

optional (soft) dependencies

comment
string

deletion comment by the user performing the delete

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "items": [
    ],
  • "optionalDependencies": [
    ],
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Rename content

Required permission "content_write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters for rename content

siteId
required
string

site identifier

path
required
string

full path to the item to rename

name
required
string

new item name (just the name, no path)

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get list of children for given item path Deprecated

Required permission "get_children" and "site member".
This operation is deprecated, use /content/{siteId}/children instead.

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

Site ID

path
required
string

item path to get children for

localeCode
string

filter children by locale code, or show source items (not translation) if translation to specified locale code does not exist

sortStrategy
string

sort strategy (sort order) Possible values:

  • alphabetical (default)
  • foldersFirst (order by: folders alphabetical, files alphabetical)
  • lastUpdated (order by: dateModified)
order
string <ASC, DESC>

order for sort strategy ascending or descending (ASC / DESC)

offset
integer

offset of first child in response - default 0

limit
integer

number of children to return

keyword
string

filter children by keyword

systemTypes
Array of strings

filter children by system type

excludes
Array of strings

exclude items by path

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string",
  • "localeCode": "string",
  • "sortStrategy": "string",
  • "order": "string",
  • "offset": 0,
  • "limit": 0,
  • "keyword": "string",
  • "systemTypes": [
    ],
  • "excludes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "levelDescriptor": {
    },
  • "children": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0
}

Get list of children for given item paths

Required permission "get_children" and "site member"

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string

Site ID

Request Body schema: application/json
required
Array of objects (ChildrenByPathRequest)

item paths to get children for

Responses

Request samples

Content type
application/json
{
  • "paths": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ],
  • "missingItems": [
    ]
}

Check the existent of a content path

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

path
required
string

item path

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "exists": true
}

Get item details for given an item path

Required permission "get_children"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

path
required
string

item path

preferContent
boolean

when set to true, return an item instead of a folder if the path can match either

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "item": {
    }
}

Get list of items for given item paths

Required permission "get_children" and "site member"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

Site ID

paths
required
Array of strings

item paths to get

preferContent
boolean

when set to true, return an item instead of a folder if the path can match either

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "paths": [
    ],
  • "preferContent": true
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ],
  • "missingItems": [
    ]
}

Get the XML descriptor for a given path

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

The site ID

path
required
string

The path of the descriptor

flatten
boolean

Indicates if included descriptors should be flattened

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "xml": "string"
}

Paste a tree of items to a target path (copy content or move content). To be used by the UI in the clipboard implementation.

Required permission "Write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

operation
string
Enum: "COPY" "CUT"

Indicate the type of operation

targetPath
string

The target path for the operation

required
object (PasteItem)

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "operation": "COPY",
  • "targetPath": "string",
  • "item": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

Duplicate the given item in the same location

Required permission "Write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

path
required
string

The path of the item to duplicate

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "item": "string"
}

Lock item by path

Required permission "content_write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

path
required
string

Path of item to lock

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Unlock item by path

Required permission "item_unlock" or lock owner

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

path
required
string

The path of the item to unlock

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get content for commit id

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

path
required
string

path of the content

commitId
required
string

commit id of the content version

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "content": "string"
}

Get history for a content item

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

path
required
string

path of the content

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "history": [
    ]
}

configuration

Configuration operations

Get configuration content for site and configuration location

Required permission "read_configuration"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

module
required
string

Module name (e.g. studio, engine)

path
required
string

Configuration file path, relative to /config/

environment
string

environment to use

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "content": "string"
}

Write configuration content for site

Required permission "write_configuration"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

write configuration request body

siteId
required
string

site ID

module
required
string

Module name (e.g. studio, engine)

path
required
string

Configuration file path, relative to /config/

environment
string

environment to use

content
required
string

configuration file content

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "module": "string",
  • "path": "string",
  • "environment": "string",
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Clear all configuration cache for a given site

Required Permission: "write_configuration"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get configuration history for site and configuration location

Required permission "read_configuration"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

module
required
string

Module name (e.g. studio, engine)

path
required
string

Configuration file path, relative to /config/

environment
string

environment to use

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "history": {
    }
}

Get all usage of a given content-type

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

contentType
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "dependencies": {
    }
}

Get preview image of a given content type

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

contentTypeId
required
string

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Delete files related to a given content-type

Required permission "write_configuration"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

contentType
required
string

The content-type to delete

deleteDependencies
boolean

Indicates if all dependencies of the content-type should be deleted (defaults to false)

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "contentType": "string",
  • "deleteDependencies": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

plugin

Plugin operations

Get a file for a given plugin

query Parameters
siteId
required
string

The site ID

type
required
string

The plugin type (e.g. control, data-source)

name
required
string

The plugin name (e.g. custom-input)

filename
required
string

The name of the file (e.g. input.js, style/main.css)

pluginId
string

The id of the plugin (e.g. org.craftercms.plugin). This is only needed for plugins installed from the marketplace

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Get configuration for the given site and plugin

Required permission "site member"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

The id of the site

pluginId
required
string

The id of the plugin

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "content": "string"
}

Write configuration content a given site and plugin

Required permission "write_configuration" and "site member"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

write configuration request body

siteId
required
string

The id of the site

pluginId
required
string

The id of the plugin

content
required
string

configuration file content

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "pluginId": "string",
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Reloads groovy classes for all plugins in a given site

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

Site ID

token
required
string

Management token

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

dependency

Dependencies operations

Get dependant content items.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/templates/web/pages/home.ftl

Path of the content

Responses

Response samples

Content type
application/json
{
  • "message": "OK"
}

Get simple dependencies.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website/index.xml

Path of the content

Responses

Response samples

Content type
application/json
{
  • "message": "OK"
}

Get list of dependencies for given content paths

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

Site ID

paths
required
Array of strings

Content paths to get dependencies for

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "paths": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": {
    }
}

marketplace

Marketplace operations

Search for compatible plugins in the marketplace

Authorizations:
jwtAuthbasicAuth
query Parameters
type
string

Plugin type to search (e.g. blueprint, control, datasource)

keywords
string

The keywords to filter plugins

showPending
boolean

Include plugins pending of approval (default to false)

offset
integer <int64>

Offset for pagination

limit
integer <int64>

Limit for pagination

showIncompatible
boolean

Include incompatible plugins (defaults to false)

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "items": [
    ]
}

Get the list of marketplace plugins installed in the given site

Required permission "list_plugins"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "plugins": [
    ]
}

Install a marketplace plugin in the given site

Required permission "install_plugins"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

pluginId
required
string

The id of the plugin

required
object (Version)
object

Object containing all parameters for the plugin. It should include all required parameters from the descriptor

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "pluginId": "string",
  • "pluginVersion": {
    },
  • "parameters": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Copy a local plugin to a given site

Required permission "install_plugins"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

path
required
string

The path of the local plugin source folder

object

Object containing all parameters for the plugin. It should include all required parameters from the descriptor

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string",
  • "parameters": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove a marketplace plugin from the given site

Required permission "remove_plugins"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

The id of the site

pluginId
required
string

The id of the plugin

force
any

Indicates if the plugin should be removed even if there are dependant items

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "pluginId": "string",
  • "force": null
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List dependant items for a plugin

Required permission "remove_plugins"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

The id of the site

pluginId
required
string

The id of the plugin

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

webdav

WebDAV operations

Get a list of items from a WebDAV server

Required Permission: "webdav_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

The site ID

profileId
required
string

The profile ID

path
string

The path of the directory to list (defaults to the root)

type
string

The MIME-type of items to list, defaults to all

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

Upload a file to a WebDAV server

Required Permission: "webdav_write"

Authorizations:
jwtAuthbasicAuth
Request Body schema: multipart/form-data
siteId
required
string

The site ID

profileId
required
string

The profile ID

path
string

The path where the file will be uploaded

file
required
string <binary>

The content of the file to upload

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "item": {
    }
}

box

Box operations

Get Box token.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site
required
string

Project/Site ID to use

profileId
required
string

Box profile ID to use

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

publishing

Publishing operations

Publish commits from sandbox repository by commit id.

Required role: Admin, Site Admin or the permission 'publish_by_commits'

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Publish commits from sandbox repository request body

site_id
required
string

Project/Site to use

environment
required
string

Environment to deploy content

commit_ids
required
Array of strings

List of commit ids to publish

comment
string

Submission comment

Responses

Request samples

Content type
application/json
{
  • "site_id": "my-editorial",
  • "environment": "live",
  • "commit_ids": [
    ],
  • "comment": "My submission comment"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Start Crafter Studio’s publishing for a project/site.

Required role: Admin, Site Admin

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Start project/site publishing request body

site_id
string

Project/Site ID to use

Responses

Request samples

Content type
application/json
{
  • "site_id": "string"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Stop Crafter Studio’s publishing for a project/site.

Required role: Admin, Site Admin

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Stop project/site publishing request body

site_id
string

Project/Site ID to use

Responses

Request samples

Content type
application/json
{
  • "site_id": "string"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Publishes the entire project to the target (staging or live)

Required permission "Publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

publish all request body

siteId
required
string

site ID

publishingTarget
required
string

the publishing target (staging or live)

submissionComment
string

optional submission comment

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "publishingTarget": "string",
  • "submissionComment": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get the list of packages in the publishing queue

Required permission "get_publishing_queue"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

publishingTarget
string

filter by publishing target

path
string

regular expression to filter by path

states
Array of strings

filter by package state(s)

offset
integer <int64>

Offset for pagination

limit
integer <int64>

Limit for pagination

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "packages": [
    ]
}

Get package details

Required permission "get_publishing_queue"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

packageId
required
string

package ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "package": {
    }
}

Cancel publishing packages

Required permission "cancel_publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

cancel publishing packages request body

siteId
required
string

site ID

packageIds
required
Array of strings

packageIds

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "packageIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get publishing status for site

Required permission "publish_status"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "publishingStatus": {
    }
}

Get publishing history for site Deprecated

Required permission "publish". This operation is deprecated, use /api/2/dashboard/publishing/history instead.

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

days
required
integer <int32>

number of days to display history for

num
required
integer <int32>

number of items to fetch

filterType
string

filter items by type (all, page, component, asset)

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "publishingStatus": {
    }
}

Get available publishing targets for site

Required permission "publish"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "publishingTargets": [
    ],
  • "published": true
}

Check if site has initial publish

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "hasInitialPublish": true
}

security

Security operations

Get user permissions for project/site and space (path).

No required role

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
string

Project/Site ID to use

path
string

Path of the content

Responses

Response samples

Content type
application/json
{
  • "permissions": [
    ]
}

Encrypt a text value

Required permission "encryption_tool"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
text
required
string

Responses

Request samples

Content type
application/json
{
  • "text": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "item": "string"
}

Get all existing tokes for the current user

Required permission "manage_access_token"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "tokens": [
    ]
}

Creates a new access token for the current user

Required permission "manage_access_token"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
label
required
string

The label for the access token

expiresAt
string <date-time>

The date of expiration for the access token

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "token": {
    }
}

Updates an access token for the current user

Required permission "manage_access_token"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The id of the access token to update

Request Body schema: application/json
enabled
required
boolean

Indicates if the access token is enabled

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "token": {
    }
}

Deletes an access token for the current user

Required permission "manage_access_token"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
integer <int64>

The id of the access token to delete

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Configures preview to use a different site. Site is expected to be set in `crafterSite` cookie

Required permission "LOGGED_IN"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

dashboard

Dashboard operations

Get user activities

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

usernames
Array of strings

filter activities for given users only

actions
Array of strings

filter activities for given actions only

dateFrom
string <date-time>

lower boundary to filter by date-time range

dateTo
string <date-time>

upper boundary to filter by date-time range

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "activities": [
    ]
}

Get current user's activities

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

actions
Array of strings

filter activities for given actions only

dateFrom
string <date-time>

lower boundary to filter by date-time range

dateTo
string <date-time>

upper boundary to filter by date-time range

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "activities": [
    ]
}

Get publishing packages that are pending for approval

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

sort
string

The fields to use for sorting, plus the asc or desc keyword case-insensitive. Multiple fields are separated by commas. Example: dateModified asc, label desc. Supported fields: id dateModified label. Default dateModified desc

itemType
string

The system types to filter the results by. Multiple types are separated by commas. Example: renderingTemplate, asset.Supported values: asset component content type document file folder levelDescriptor page renderingTemplate script taxonomy

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "publishingItems": [
    ]
}

Get content items of the package that is pending for approval

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

package ID

query Parameters
siteId
required
string

site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "publishingPackageItems": [
    ]
}

Get unpublished items for site

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

sort
string

The fields to use for sorting, plus the asc or desc keyword case-insensitive. Multiple fields are separated by commas. Example: dateModified asc, label desc. Supported fields: id dateModified label. Default dateModified desc

itemType
string

The system types to filter the results by. Multiple types are separated by commas. Example: renderingTemplate, asset. Supported values: asset component content type document file folder levelDescriptor page renderingTemplate script taxonomy

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "unpublishedItems": [
    ]
}

Get scheduled publishing items

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

publishingTarget
string

publishing target to filter results

approver
string

approver user to filter results

dateFrom
string <date-time>

lower boundary to filter by date-time range

dateTo
string <date-time>

upper boundary to filter by date-time range

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

sort
string

The fields to use for sorting, plus the asc or desc keyword case-insensitive. Multiple fields are separated by commas. Example: dateScheduled asc, label desc. Supported fields: id dateScheduled label. Default dateScheduled desc

itemType
string

The system types to filter the results by. Multiple types are separated by commas. Example: renderingTemplate, asset. Supported values: asset component content type document file folder levelDescriptor page renderingTemplate script taxonomy

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "publishingItems": [
    ]
}

Get content items of the package that is scheduled

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

package ID

query Parameters
siteId
required
string

site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "publishingPackageItems": [
    ]
}

Get history of published packages

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

publishingTarget
string

publishing target to filter results

approver
string

approver user to filter results

dateFrom
string <date-time>

lower boundary to filter by date-time range

dateTo
string <date-time>

upper boundary to filter by date-time range

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "publishingPackages": [
    ]
}

Get content items of the package that was published

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string

package ID

query Parameters
siteId
required
string

site ID

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "publishingPackageItems": [
    ]
}

Get publishing stats

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

days
required
integer <int32>

number of days to display stats for

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "publishingStats": {
    }
}

Get content that is expiring

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

dateFrom
required
string <date-time>

lower boundary to filter by date-time range

dateTo
required
string <date-time>

upper boundary to filter by date-time range

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

Get content that expired

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

workflow

Workflow operations

Get item workflow states for site

Required permission "get_item_states"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

path
string

path regex

states
integer <int64>

states bitmap mask

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "items": [
    ]
}

Set item workflow states for site

Required permission "set_item_states"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

List of items to set workflow state(s)

siteId
required
string

site ID

items
required
Array of strings

path(s) of item(s)

clearSystemProcessing
boolean

true if system processing is to be cleared

clearUserLocked
boolean

true if user lock is to be cleared

live
boolean

true if item is to be set as live, otherwise false

staged
boolean

true if item is to be set as staged, otherwise false

new
boolean

true if item is to be set as new, otherwise false

modified
boolean

true if item is to be set as modified, otherwise false

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "items": [
    ],
  • "clearSystemProcessing": true,
  • "clearUserLocked": true,
  • "live": true,
  • "staged": true,
  • "new": true,
  • "modified": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Set item workflow states for site using query

Required permission "set_item_states"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

List of items to set workflow state(s)

required
object
required
object

Responses

Request samples

Content type
application/json
{
  • "query": {
    },
  • "update": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get workflow affected paths

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

site ID

path
required
string

path of the content

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": [
    ]
}

Request publish for content

Required permission "site_member"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters for request publish

siteId
required
string

site identifier

items
required
Array of strings

path(s) of content item(s)

optionalDependencies
Array of strings

optional (soft) dependencies

publishingTarget
required
string

target to publish content to

schedule
string <datetime>

schedule when to publish content

comment
string

comment about publish request

sendEmailNotifications
boolean

if true, send email notifications

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "items": [
    ],
  • "optionalDependencies": [
    ],
  • "publishingTarget": "string",
  • "schedule": "string",
  • "comment": "string",
  • "sendEmailNotifications": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Publish content

Required permission "publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters for publish content

siteId
required
string

site identifier

items
required
Array of strings

path(s) of content item(s)

optionalDependencies
Array of strings

optional (soft) dependencies

publishingTarget
required
string

target to publish content to

schedule
string <datetime>

schedule when to publish content

comment
string

submission comment by publisher

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "items": [
    ],
  • "optionalDependencies": [
    ],
  • "publishingTarget": "string",
  • "schedule": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Approve request publish submission

Required permission "publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters for approve request publish submission

siteId
required
string

site identifier

items
required
Array of strings

path(s) of content item(s)

optionalDependencies
Array of strings

optional (soft) dependencies

publishingTarget
required
string

target to publish content to

schedule
string <datetime>

schedule when to publish content

comment
string

Reviewer's comment

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "items": [
    ],
  • "optionalDependencies": [
    ],
  • "publishingTarget": "string",
  • "schedule": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Reject request publish submission

Required permission "publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters for reject request publish submission

siteId
required
string

site identifier

items
required
Array of strings

path(s) of content item(s)

comment
string

Reviewer's rejection comment

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "items": [
    ],
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List workflow packages order by scheduled date

Required permission "request_publish, publish"

Authorizations:
jwtAuthbasicAuth
query Parameters
siteId
required
string

filter workflow packages by site

dateFrom
string <date>

lower boundary for filtering results by scheduled date

dateTo
string <date>

upper boundary for filtering results by scheduled date

offset
integer <int32>

Offset of the first package in the response

limit
integer <int32>

Number of packages to return

order
string

ascending or descending (ASC | DESC). Default ascending

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "packages": [
    ]
}

Create workflow package

Required permission "request_publish, publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters to create new workflow package

siteId
required
string

site identifier

paths
required
Array of strings

paths of content items to add to package

publishingTarget
required
string

target where to publish content

schedule
string <datetime>

schedule when publishing should be performed

authorComment
string

author's comment about the package

label
string

user friendly name for the package

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "paths": [
    ],
  • "publishingTarget": "string",
  • "schedule": "string",
  • "authorComment": "string",
  • "label": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update workflow package

Required permission "request_publish, publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

Workflow package entity to update

id
required
string

workflow package ID

siteId
required
string

site identifier

status
required
string

workflow package status

author
required
string

username of the author

reviewer
string

username of the reviewer

schedule
string <datetime>

scheduled date and time to publish the package

publishingTarget
required
string

name of the publishing target where package will be published

authorComment
string

author's comment

reviewerComment
string

reviewer's comment

label
string

user friendly label for package

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "siteId": "string",
  • "status": "string",
  • "author": "string",
  • "reviewer": "string",
  • "schedule": "string",
  • "publishingTarget": "string",
  • "authorComment": "string",
  • "reviewerComment": "string",
  • "label": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "package": {
    }
}

Get workflow package by id

Required permission "request_publish, publish"

Authorizations:
jwtAuthbasicAuth
path Parameters
id
required
string <UUID>

The workflow package ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "package": {
    }
}

Approve workflow package

Required permission "publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters to approve a workflow package

siteId
required
string

site identifier

required
Array of objects
schedule
string <datetime>

approved schedule when to publish package

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "packages": [
    ],
  • "schedule": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create workflow package

Required permission "request_publish, publish"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters to create new workflow package

siteId
required
string

site identifier

required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "packages": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

loggers

Logger configuration operations

Get all loggers and their configured priority levels

Required permission "view_log_levels or configure_log_levels"

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "results": [
    ]
}

Update logger priority level

Required permission "configure_log_levels"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json

parameters to update the logger level

name
required
string

the logger name

level
required
string

the logger priority level (off|error|warn|info|debug|trace|all)

createIfAbsent
boolean

if true, the logger will be created in case it does not exist yet. If false, a 404 status code will be returned if logger is not in the registry.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "level": "string",
  • "createIfAbsent": true
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "result": {
    }
}

server

Server operations

Get available languages.

Required role: N/A

Authorizations:
jwtAuthbasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

deployment

Bulk go live.

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

path
required
string
Example: path=/site/website

Path of the content

environment
required
string
Example: environment=Live

Environment to deploy content

comment
string

Submission comment

Responses

Response samples

Content type
application/json
{
  • "message": "OK"
}

preview

Sync preview content with repository

Required role: N/A

Authorizations:
jwtAuthbasicAuth
query Parameters
site_id
required
string

Project/Site ID to use

Responses

Response samples

Content type
application/json
{
  • "message": "OK"
}

model

Get all model definitions for site.

Required permission "read_configuration".
In a future release this request will accept a set of arguments which could surpass the max length of the GET request, consequently, this endpoint answers to a POST method..

Authorizations:
jwtAuthbasicAuth
path Parameters
siteId
required
string

Site ID

Responses

Response samples

Content type
application/json
{
  • "response": {
    },
  • "types": [
    ]
}

dependent_items

Get list of dependent items for given content path

Required permission "content_read"

Authorizations:
jwtAuthbasicAuth
Request Body schema: application/json
siteId
required
string

Site ID

path
required
string

Content path to get dependencies for

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    },
  • "items": {
    }
}