Crafter Studio (3.1.28)

Download OpenAPI specification:Download

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

Crafter Studio API v2

groups

Group management operations

Get all groups

Required Permission: "READ_GROUPS"

query Parameters
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. Multiple fields are separated by commas. Finally, the value should match the following regex: ([a-zA-Z_][a-zA-Z_0-9]*,?)+ (asc|desc)?

Responses

Response samples

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

Create group

Required Permission: "CREATE_GROUPS"

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"

Request Body schema: application/json

Group entity to update

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

Delete group(s)

Required Permission: "DELETE_GROUPS"

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"

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"

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. Multiple fields are separated by commas. Finally, the value should match the following regex: ([a-zA-Z_][a-zA-Z_0-9]*,?)+ (asc|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"

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"

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"

query Parameters
site
string

The site ID to filter users for a particular site

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. Multiple fields are separated by commas. Finally, the value should match the following regex: ([a-zA-Z_][a-zA-Z_0-9]*,?)+ (asc|desc)?

Responses

Response samples

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

Create user

Required Permission: "CREATE_USERS"

Request Body schema: application/json

User entity to create

id
required
integer <int64>

User ID, unique and immutable

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
{
  • "id": 0,
  • "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"

Request Body schema: application/json

User entity to update. The password and externallyManaged fields will be ignored if sent.

id
required
integer <int64>

User ID, unique and immutable

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
{
  • "id": 0,
  • "username": "string",
  • "password": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "enabled": true,
  • "externallyManaged": true
}

Response samples

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

Delete user(s)

Required Permission: "DELETE_USERS"

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"

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"

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"

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"

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"

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": [
    ]
}

Change password for user

Required Permission: "UPDATE_USERS"

path Parameters
id
required
string

The user ID. Username can also be used

Request Body schema: application/json

request body to change password

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"

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"

Responses

Response samples

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

Get all the sites the current authenticated user has access to

Required Permission: "LOGGED_IN"

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"

path Parameters
site
required
string

The site ID

Responses

Response samples

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

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

Responses

Response samples

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

Change password for current user

Required Permission: "LOGGED_IN"

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

Forgot password

Required Permission: "ANONYMOUS"

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"

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"

Responses

Response samples

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

Get the current active environment for the system

Required Permission: "LOGGED_IN"

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"

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"

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"

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"

Responses

Response samples

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

Remove member(s) from the cluster

Required Permission: "DELETE_CLUSTER"

query Parameters
id
required
integer <int64>

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

Responses

Response samples

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

Set the cluster primary publisher node to be the node receiving this call

query Parameters
token
required
string

Management token - required

Responses

Response samples

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

sites

Site management operations

Get all available blueprints

Required Permission: "LOGGED_IN"

Responses

Response samples

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

Create a site from a Marketplace blueprint

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

search

Search operations

Performs a search for the given site

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)

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",
  • "filters": { }
}

Response samples

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

audit

Audit log operations

Get audit log

Required permission "AUDIT_LOG"

query Parameters
siteId
string

Site ID (id from database) - optional for super admin user, otherwise required

siteName
string

Site name - 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 espression 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. Posible values ASC and DESC

Responses

Response samples

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

Get audiy log entry

path Parameters
id
required
integer <int64>

The log entry ID

Responses

Response samples

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

monitoring

Monitoring operations

Get the current version information

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

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

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

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": [
    ]
}

cmis

CMIS operations

List files and folders in a CMIS repository with an optional range for pagination

Required permissions: "list_cmis"

query Parameters
siteId
required
string

site ID

cmisRepoId
required
string

CMIS repository ID as specified in Site Config CMIS Config (cmis-config.xml)

path
string

path to look under. Note this will be under the base path specified in cmis-config.xml

offset
integer <int32>

start offset

limit
integer <int32>

number of records to retrieve

Responses

Response samples

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

Search files and folders in a CMIS repository with an optional range for pagination

Required permissions: "search_cmis"

query Parameters
siteId
required
string

site ID

cmisRepoId
required
string

CMIS repository ID as specified in Site Config CMIS Config (cmis-config.xml)

searchTerm
required
string

CMIS search term to use

path
string

path to look under. Note this will be under the base path secified in cmis-config.xml

offset
integer <int32>

start offset

limit
integer <int32>

number of records to retrieve

Responses

Response samples

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

Clone a file from a CMIS repository to Studio provided paths

Required permissions: "clone_content_cmis"

Request Body schema: application/json

cmis clone request body

siteId
required
string

site ID

cmisRepoId
required
string

CMIS repository ID as specified in Site Config CMIS Config (cmis-config.xml)

cmisPath
required
string

path to read the asset from CMIS repo (source)

studioPath
required
string

path to save the asset in Studio (destination)

Responses

Request samples

Content type
application/json
{
  • "siteId": "string",
  • "cmisRepoId": "string",
  • "cmisPath": "string",
  • "studioPath": "string"
}

Response samples

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

Upload an asset file to CMIS repository

Required permissions: "upload_content_cmis"

Request Body schema: multipart/form-data

cmis upload request body

siteId
required
string

site ID

cmisRepoId
required
string

CMIS repository ID as specified in Site Config CMIS Config (cmis-config.xml)

cmisPath
string

path to upload the asset to CMIS repo (destination)

file
required
string <binary>

Responses

Response samples

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

repository

Repository operations

Add remote repository to the site content repository

Required permission "add_remote"

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
string

Authentication type to use to access remote repository Posible 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"

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

Push content to remote repository from site content repository

Required permission "push_to_remote"

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

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

Required permission "rebuild_database"

Request Body schema: application/json

rebuild database request body

siteId
required
string

Site ID

Responses

Request samples

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

Response samples

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

Remove remote repository from site content repository

Required permission "remove_remote"

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"

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"

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"

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"

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"

Request Body schema: application/json

Commit resolution request body

siteId
required
string

site ID

commit_message
string

Commit message

Responses

Request samples

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

Response samples

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

Cancel a failed/conflicted pull for a site

Required permission "cancel_failed_pull"

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

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

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

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

Get list of content types available for Quick Create functionality

Required permission "create content"

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 "delete_content"

query Parameters
siteId
required
string

Site ID

paths
required
Array of strings

Content paths to get a delete package for

Responses

Response samples

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

Delete content

Required Permission: "delete_content"

query Parameters
siteId
required
string

Site ID

paths
required
Array of strings

Content paths to be deleted

submissionComment
string

Submission comment

Responses

Response samples

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

Get list of children for given item id

Required permission "get_children" ("site member")

query Parameters
siteId
required
string

Site ID

id
required
string

item id to get children for

locale
string

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

sortStrategy
string

sort strategy (sort order) Possible values:

  • default (order by: navigation pages, floating pages, folders, level descriptor)
  • alphabetical
  • foldersFirst (order by: folders alphabetical, files alphabetical)
order
string <ASC, DESC>

order for srot 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

Responses

Response samples

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

Get list of children for given item path

Required permission "get_children" ("site member")

query Parameters
siteId
required
string

Site ID

path
required
string

item path to get children for

locale
string

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

sortStrategy
string

sort strategy (sort order) Possible values:

  • default (order by: navigation pages, floating pages, folders, level descriptor)
  • alphabetical
  • folders first
order
string <ASC, DESC>

order for srot 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

Responses

Response samples

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

Get content item for given item id

Required permission "get_detailed_item" "read_item" ("site member")

query Parameters
siteId
required
string

site ID

id
required
string

item identifier

Responses

Response samples

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

Get item details for given an item path

Required permission "get_detailed_item" "read_item" ("site member")

query Parameters
siteId
required
string

site ID

path
required
string

item path

Responses

Response samples

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

configuration

Configuration operations

Get configuration content for site and configuration location

Required permission "read_configuration"

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"

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

Get configuration history for site and configuration location

Required permission "read_configuration"

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

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)

Responses

Response samples

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

dependency

Dependencies operations

Get list of dependencies for given content paths

Required permission "site member"

query Parameters
siteId
required
string

Site ID

paths
required
Array of strings

Content paths to get dependencies for

Responses

Response samples

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

marketplace

Marketplace operations

Search for compatible plugins in the marketplace

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

Responses

Response samples

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

webdav

WebDAV operations

Get a list of items from a WebDAV server

Required Permission: "webdav_read"

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 (possible values are 'image' and 'video')

Responses

Response samples

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

Upload a file to a WebDAV server

Required Permission: "webdav_write"

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

publishing

Publishing operations

Get the list of packages in the publishing queue

Required permission "get_publishing_queue"

query Parameters
siteId
required
string

site ID

environment
string

filter by publishing environment

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"

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"

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"

query Parameters
siteId
required
string

site ID

Responses

Response samples

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

Clear publishing lock for site

Required permission "publish_clear_lock"

Request Body schema: application/json

clear publishing lock request body

siteId
required
string

site ID

Responses

Request samples

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

Response samples

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

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

Required permission "Publish"

Request Body schema: application/json

publish all request body

siteId
required
string

site ID

publishingTarget
string

the publishing target (staging or live). If not specified, live is assumed

Responses

Request samples

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

Response samples

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

security

Security operations

Encrypt a text value

Required permission "encryption_tool"

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"
}

dashboard

Dashboard operations

Get content dashboard

Required permission "get_dashboard" ("site member")

query Parameters
siteId
required
string

site ID

sortBy
string

order result by column List of columns:

  • label - label or internalName - user friendly name of item
  • path - path of an item item
  • modifier - user that last modified item
  • modifiedDate - data and time of last modification of an item
  • contentType - content type of an item
order
string <ASC, DESC>

order of sorted data (ASC or DESC)

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

filters.path
string

filter items by path regular expression

filters.modifier
string

filter items by username that modified content

filters.modifiedDateFrom
string <datetime>

filter items by modified date setting lower boundary for date range

filters.modifiedDateTo
string <datetime>

filter items by modified date setting upper boundary for date range

filters.contentType
string

filter items by contentTypes

filters.state
integer <int64>

filter items by state (bitmap state values)

Responses

Response samples

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

Get publishing dashboard

Required permission "get_dashboard" ("site member")

query Parameters
siteId
required
string

site ID

sortBy
string

order result by column List of columns:

  • label - label or internalName - user friendly name of item
  • path - path of an item item
  • publisher - user that published item
  • publishedDate - data and time when item was published
  • environment - environment where item was published
  • content type - content type of an item
order
string <ASC, DESC>

order of sorted data (ASC or DESC)

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

filters.path
string

filter items by path regular expression

filters.publisher
string

filter items by username that published content

filters.publishedDateFrom
string <datetime>

filter items by published date setting lower boundary for date range

filters.publishedDateTo
string <datetime>

filter items by published date setting upper boundary for date range

filters.environment
string

filter items by environment where published

filters.contentType
string

filter items by contentTypes

filters.state
integer <int64>

filter items by state (bitmap state values)

Responses

Response samples

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

Get audit dashboard

Required permission "get_dashboard" ("site member")

query Parameters
siteId
required
string

site ID

sortBy
string

order result by column List of columns:

  • site - site of the audit item
  • actor - user that executed action
  • operation - operation that was audited
  • operationTimestamp - timestamp when operation was executed
  • target - target upon which operation was executed
order
string <ASC, DESC>

order of sorted data (ASC or DESC)

offset
integer

offset of the first result item, default 0

limit
integer

number of results to return, default 10

filters.actor
string

filter items by username

filters.operations
Array of strings

filter items by operations

filters.operationTimestampFrom
string <datetime>

filter items by operations timestamp setting lower boundary for date range

filters.operationTimestampTo
string <datetime>

filter items by operations timestamp setting upper boundary for date range

filters.target
string

filter items by target

Responses

Response samples

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

translation

Translation operations

Get items for translation

Required permission "get_items_for_translation"

query Parameters
siteId
required
string

site ID

path
Array of strings

filter results by path regexes

locale
Array of strings

filter results by locales

markedForTranslation
boolean

Include only items marked for translation and exclude everything else (default true)

notTranslated
boolean

Include only items that have not been translated yet (default true)

translationOutOfDate
boolean

Include items with translation out of date, otherwise exclude them (default true)

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,
  • "items": [
    ]
}

Get transaltion item(s) detail

Required permission "get_translation_item_detail"

query Parameters
siteId
required
string

site ID

id
required
Array of strings

Id(s) of item(s) to retrieve

Responses

Response samples

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

Get transaltion item(s) detail

Required permission "get_translation_item_detail"

query Parameters
siteId
required
string

site ID

path
required
Array of strings

Path(s) to item(s) to retrieve

Responses

Response samples

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

Get list of target translation locales

Required permission "get_translation_target_locales"

query Parameters
siteId
required
string

site ID

path
required
string

item path

Responses

Response samples

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

Mark item to be translated to specific locales

Required permission "mark_for_translation"

Request Body schema: application/json

Item and list of locales to translate to

siteId
required
string

site ID

id
Array of strings

id(s) of the item(s)

locales
required
Array of strings

locale codes

Responses

Request samples

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

Response samples

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

Mark item to be translated to specific locales

Required permission "mark_for_translation"

Request Body schema: application/json

Item and list of locales to translate to

siteId
required
string

site ID

path
required
Array of strings

path(s) of the item(s)

locales
required
Array of strings

locale codes

Responses

Request samples

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

Response samples

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

workflow

Workflow operations