Skip to main content

Dynamic Content - Management APIs (1.0.0)

Download OpenAPI specification:Download

Introduction

The Dynamic Content Management API helps you integrate your back end systems with Dynamic Content.

The API is designed for building back-office applications and you can use it for webhook integrations, content automation apps, or to integrate with your existing back end services.

To use the API, you'll need a client ID and secret. The authorization section below explains how to use the client ID and secret to obtain an access token that must be included with each request.

Authentication

oauth2

Dynamic Content uses OAuth2 to authorize access to the Dynamic Content management API.

To use the API you will need an API key and secret. These credentials will be provided to you by Amplience at the beginning of your project, or you can request them from Amplience support. Your API key will define the resources to which you have access.

Your API key and secret are used to obtain an access token from the Amplience authorization service. This token must be included in the authorization header of all requests to the Dynamic Content management API and is set to expire after a set time period, generally 300 seconds.

Getting an access token

To get an authorization token, send a POST request to the Amplience authorization server at https://auth.amplience.net as follows.

Request

POST  https://auth.amplience.net/oauth/token

Headers

Header Description
Content-Type application/x-www-form-urlencoded

Parameters

The parameters should be URL encoded and included in the body of the request:

client_id={yourclientid}&client_secret={yoursecret}&grant_type=client_credentials

Replace {yourclientid} and {yoursecret} with your client id and secret.

Parameter Description
client_id The client id (API key) provided to you by Amplience
client_secret The client secret provided to you by Amplience
grant_type Set this to client_credentials to specify that the authorization token should be generated based on the client ID and secret

Response

Status codes

Status code Description
200 OK. Credentials are valid.
400 Bad Request. client id or secret are not valid.

Response body

If the clientID and secret are valid, the response body will be returned as in the example below.

Note that the example access_token has been truncated.

{
  "access_token": "eyJraWQiOiJhbXBsaWVuY2UtdG9rZW4tc2lnbmluZy1rZXkiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJhbXBsaWVuY2UuY29tIiwiZXhwIjoxNTUzODY4NjIyLCJqdGkiOiJMT2pvZ1dtMFM3TkRNT2VsTk96cWVnIiwiaWF0IjoxNTUzODY3MzYyLCJzd…",
  "session_expires_in": 0,
  "expires_in": 300
}

You will need to save the access token and include it in requests to the API. If the token has expired, request another token from the authorization service.

The Dynamic Content management SDK contains code to help you manage the access token.

Including the token in an API request

To make a request to the Dynamic Content management API, for example to list all the hubs you have access to you would send a request such as:

GET https://api.amplience.net/v2/content/hubs

In the request header you must set the Authorization format to "Bearer" and include the access token:

Authorization : Bearer {access_token}

Replace {access_token} with the access token returned by the authorization service.

If the access token is valid, then the request is processed and the response is returned.

Usage

Routing

Resources can usually be retrieved using a /resource-types/:id endpoint. Collection resources will always be pluralised, regardless of how they are accessed. In cases where resources are nested under a parent resource, and this context is necessary for the request, this information is included in the routing. For example, while a Content Repository can be retrieved by id using GET /content-repositories/:id, to create a new Content Repository it is necessary to supply the ID of the parent Hub, so the route would take the form POST /hubs/:hubId/content-repositories.

HAL

Resources are returned in the HAL format, which provides a representation of HATEOAS information in JSON. This allows for discoverability of endpoints from responses, as a response for a resource will contain links to related resources and actions. Links are contained within a _links object, and are keyed by name. In some cases, such as resource listing or search results, linked resources are included in the response inside an _embedded object, allowing multiple resource to be returned within the same response body.

Status Codes

Response codes for the API are described in the table below.

Status Code Table

Status Code Reason Phrase Purpose
200 OK Successful retrieval or update of a resource or list of resources
201 Created Successful creation of a resource
202 Accepted A background task has been initiated, but is still processing
204 No Content Indicates the following:
* Success with deleting a resource
* Success with granting or revoking permissions
* Success with nothing to report
400 Bad Request Non-specific error with request
401 Unauthorized No valid token was supplied in the request, or the token could not be decoded
403 Forbidden The user lacks either the required functional or ACL permissions to make this request
404 Not Found The requested resource does not exist, or the user does not have access to it
405 Method Not Allowed The requested HTTP method is not permitted for this resource type
406 Not Acceptable The requested resource is not available in the format requested by the user agent
409 Conflict The requested change conflicts with the current state of the resource
415 Unsupported Media Type The format of the resource supplied by the user agent is not supported by the server
500 Internal Server Error Non specific error occurred on the server

Error Response Format

If an error occurs, the response body contains a JSON object containing an errors array. This will contain one or more error objects, containing a message field describing the error, and context specific metadata relating to this instance of the error.

HTTP/1.1 409 Conflict
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 145

{
  "errors" : [ {
    "entity" : "Hub",
    "property" : "name",
    "invalidValue" : "anya-finn",
    "message" : "name must be unique"
  } ]
}

Guidance on using HTTP PATCH

When updating a resource, the PATCH method is used. When making a PATCH request, any fields specified in the request will overwrite their associated values in the stored resource, but omitted fields will remain unchanged. This is in contrast to the PUT method, which would set omitted fields to null, and is not supported in this API. When making a PATCH request to a resource containing nested JSON objects, it is important to note that child objects are replaced completely, and do not inherit the PATCH functionality of the root object.

For example, given a stored resource in the format:

{
  "foo": {
    "bar": "abc",
    "baz": "xyz"
  },
  "bar": "123"
}

When the following request body is used in a PATCH request:

{
  "foo": {
    "bar": "def"
  }
}

The resource would be transformed to the following:

{
  "foo": {
    "bar": "def"
  },
  "bar": "123"
}

Payload Considerations

When submitting a JSON payload to the API, the first complete JSON object in the body will be accepted, and any additional information will be discarded. For example:

{
  "foo": {
    "bar": "def"
  },
  "unknownProperty": "will be ignored"
}

In the above example, there is an extra closing brace and additional characters that follow a valid JSON object. Any extra input characters like this will be ignored by the API.

Administration

Administration allows you to add or revoke permissions for users and manage access to resources.

List Administrative Operations

Lists the available administrative operations.

Responses

Response samples

Content type
application/json

Manage Access to Resources

With the ability to manage access you can control which users have which permissions to the resources you administer.

Authorizations:
oauth2

Responses

Response samples

Content type
application/json
{}

List Operations on a resource

Given the id of a resource for which you are an administrator, you can see the various operations that you can perform. Simply follow the appropriate link for the resource passing in the id.

Resource Type Required Functional Permissions Required ACLs
hubs CONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:HUB:MANAGE_ACCESS Hub - READ``Hub - MANAGE_ACCESS
content-repositories CONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:REPOSITORY:MANAGE_ACCESS Hub - READ ContentRepository - MANAGE_ACCESS
Authorizations:
oauth2
path Parameters
resource
required
string
Enum: "hubs" "content-repositories"
Example: hubs

Resource Type

resourceId
required
string
Example: 00112233445566778899aabb

Resource ID

Responses

Response samples

Content type
application/json

List members on a resource

The memebrs link will list the memebrs that have access to a particular resource. This includes the member's id (sid) and the list of permissions they have.

Resource Type Required Functional Permissions Required ACLs
hubs CONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:HUB:MANAGE_ACCESS Hub - READ Hub - MANAGE_ACCESS
content-repositories CONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:REPOSITORY:MANAGE_ACCESS Hub - READ ContentRepository - MANAGE_ACCESS
Authorizations:
oauth2
path Parameters
resource
required
string
Enum: "hubs" "content-repositories"
Example: hubs

Resource Type

resourceId
required
string
Example: 00112233445566778899aabb

Resource ID

Responses

Response samples

Content type
application/json
Example
{}

Get a member by id

Given a resource and a member id you can navigate directly to a specific member by following the "member" link from the resource.

Resource Type Required Functional Permissions Required ACLs
hubs CONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:HUB:MANAGE_ACCESS Hub - READ Hub - MANAGE_ACCESS
content-repositories CONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:REPOSITORY:MANAGE_ACCESS Hub - READ ContentRepository - MANAGE_ACCESS
Authorizations:
oauth2
path Parameters
resource
required
string
Enum: "hubs" "content-repositories"
Example: hubs

Resource Type

resourceId
required
string
Example: 00112233445566778899aabb

Resource ID

sid
required
string
Example: alice

Member ID

Responses

Response samples

Content type
application/json

Revoking permissions

Revoke access to a specific resource by deleting a members permission.
From a member, follow the "revoke-permission" link passing in the permission to delete.
You can specify one or multiple permissions. Multiple permissions are comma separated.

Resource TypeRequired Functional PermissionsRequired ACLs
hubsCONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:HUB:MANAGE_ACCESSHub - READ
Hub - MANAGE_ACCESS
content-repositoriesCONTENT:FUNCTIONAL:ADMIN:MANAGE_ACCESS CONTENT:FUNCTIONAL:REPOSITORY:MANAGE_ACCESSHub - READ
ContentRepository - MANAGE_ACCESS

Authorizations:
oauth2
path Parameters
resource
required
string
Enum: "hubs" "content-repositories"
Example: hubs

Resource Type

resourceId
required
string
Example: 00112233445566778899aabb

Resource ID

sid
required
string
Example: alice

Member ID

permissions
required
string
Example: READ,EDIT

Permission(s) to revoke (comma separated list)

Responses

Manage Modules on Resources

Modules offer additional functionality which is not enabled by default. With the ability to manage modules you can control which modules are enabled on the resources you administer.

Authorizations:
oauth2

Responses

Response samples

Content type
application/json

List Module Operations on a Hub

Given the id of a hub for which you are an administrator, you can see the various module management operations that you can perform. Simply follow the appropriate link for the resource passing in the id.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Responses

Response samples

Enable the Search Index module on a hub

Enable the Search Indexes module (Algolia Search) on the specified hub. Simply follow the appropriate link for the resource passing in the id.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Responses

Response samples

Content type
application/json
{}

Enable the Content Delivery 2 module on a hub

Enable the Content Delivery 2 module on the specified hub. Simply follow the appropriate link for the resource passing in the id.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Responses

Response samples

Content type
application/json
{}

Content Items

Text Search Query Syntax

A simple query syntax is provided to allow full text search on content items. Several characters have special meaning and are reserved:

Table 2. Reserved Search Characters

Description Symbol
Negation Operator -
Field Search Operator :
Quote (for exact search) "
Comma (list multiple search terms) ,

Please note that the text search is case insensitive, and will only display content items within the hub. See the following examples for an explanation of the query syntax:

Table 3. Text Search Examples

Query Meaning
apple Find all content items containing the word "apple"
apple orange Find all content items containing the words "apple" AND "orange"
apple,orange Find all content items containing either "apple" OR "orange"
apple -orange Find all content items that contain the word "apple" but NOT "orange"
-apple-orange Find all content items that don’t contain "apple-orange" (hyphens in the middle of a word are not treated as negation)
label:apple Find all content items that contain the word "apple" within the "label" field
"apple:orange" Find all content items containing "apple:orange" (quotes must be used to search for a colon character)
apple label:orange Find all content items containing the word "apple" anywhere within them, AND the word "orange" in the label field

Update Multiple Content Items

Update Multiple Content Items

Authorizations:
oauth2
Request Body schema: application/json

Update Multiple Content Items

Array ([ 1 .. 100 ] items)
object

Body

label
string

Label

version
number >= 1

Version

folderId
string

Folder ID

assignees
string

Assignee

id
string <uuid>

ID

Responses

Request samples

Content type
application/json
[]

Response samples

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

Get Content Item

Get a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Update Content Item

Update a Content Item. Please note that deliveryKey can only be set when Content Delivery 2 is enabled.

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Updated Content Item

Supports one or multiple Content Items

object
label
string non-empty

Label

folderId
string

Folder ID

assignees
Array of arrays

Assignees

locale
string

Locale

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Archive Content Item

Archive a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Version to archive

version
required
integer

Version to archive

Responses

Request samples

Content type
application/json
{
  • "version": 1
}

Response samples

Content type
application/json
{}

Get Content Item Associations

Get Content Item Associations

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Assigning a Delivery Key

Assign a delivery key to a content item or slot and replace any existing key. The delivery key must meet the validation rules and be unique within the hub.

The current version of the content item must be included in the request payload. If the version specified is not the current one, then a 400 error will be returned in the response.

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Assign Content Item Delivery Key request

deliveryKey
required
string (DeliveryKey) [ 1 .. 150 ] characters ^(?!.*[/]{2})[A-Za-z0-9-_]+[A-Za-z0-9-_/]*(?<...

Delivery key

version
required
number (Version) >= 1

Version

Responses

Request samples

Content type
application/json
{
  • "deliveryKey": "promo-page/main-banner",
  • "version": 1
}

Response samples

Content type
application/json
{}

List Content Item History

List Content Item History

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Localize Content Item

Localize a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json
locales
required
Array of arrays

List of locales

version
required
integer

Content item version number

Responses

Request samples

Content type
application/json
{
  • "locales": [
    ],
  • "version": 1
}

Response samples

Content type
application/json
{}

Finding Content by Epoch

Find content items that are candidates for being published at a point in time.

Authorizations:
oauth2
query Parameters
epoch
number
Example: epoch=1546300800

Epoch Time

time
number
Example: time=2019-01-01T00:00:00.000Z

Time

Responses

Response samples

Content type
application/json
{}

Publish Content Item

Publish a Content Item

The response Location header is the a URL of the created Publishing Job

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Restore Content by Content Version Number

Restore Content by Content Version Number

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Restore Content by Content Version Number request body

version
required
number

Version

restoreVersion
required
number

Restore Version

Responses

Request samples

Content type
application/json
{
  • "version": 2,
  • "restoreVersion": 1
}

Response samples

Content type
application/json
{}

Unarchive Content Item

Unarchive a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Version to unarchive

version
required
integer

Version to unarchive

Responses

Request samples

Content type
application/json
{
  • "version": 1
}

Response samples

Content type
application/json
{}

Unpublish Content Item

Unpublish a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

List Content Item Versions

List Content Item Versions

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Finding Content by Content Version Number

Finding Content by Content Version Number

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

query Parameters
version
number
Example: version=1

Version

Responses

Response samples

Content type
application/json
{}

List Content Item History for a Version

List Content Item History for a Version

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

version
required
string
Example: 1

Version

Responses

Response samples

Content type
application/json
{}

Assigning a Workflow State

Assigning a Workflow State to a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Version to unarchive

version
required
integer

Version to unarchive

state
required
string

Workflow State ID

Responses

Request samples

Content type
application/json
{
  • "version": 1,
  • "state": "00112233445566778899aabb"
}

Response samples

Content type
application/json
{}

Getting Linked Child Content Items

Get Linked Child Content Items

Authorizations:
oauth2
query Parameters
id
required
string
Example: id=00112233-4455-6677-8899-aabbccddeeff

Id

Responses

Response samples

Content type
application/json
{}

Getting Linked Parent Content Items

Get Linked Parent Content Items

Authorizations:
oauth2
query Parameters
id
required
string
Example: id=00112233-4455-6677-8899-aabbccddeeff

Id

Responses

Response samples

Content type
application/json
{}

List Content Items

This lists all of the Content Items within this Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

query Parameters
projection
string
Value: "projection"
Example: projection=basic

"basic" - omits the body property from the return Content Items

page
integer

Page number

folderId
string
Example: folderId=00112233445566778899aabb

Folder ID

status
string

Status

excludeHierarchicalChildren
boolean
Example: excludeHierarchicalChildren=true

Exclude hierarchical child items

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create Content Item

Create a Content Item. Please note that deliveryKey can only be set when Content Delivery 2 is enabled. Copying a content item will not copy the deliveryKey.

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Content Item

required
object
label
required
string non-empty

Label

folderId
string

Folder ID

assignees
Array of arrays

Assignees

locale
string

Locale

object

Responses

Request samples

Content type
application/json
Example
{
  • "body": {},
  • "label": "Banner Ad Homepage",
  • "folderId": "00112233445566778899aabb",
  • "locale": "en",
  • "assignees": [
    ]
}

Response samples

Content type
application/json
{}

Copy Content Item

Copy a Content Item. Please note that deliveryKey can only be set when Content Delivery 2 is enabled. Copying a content item will not copy the deliveryKey.

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

sourceContentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Source Content Item ID (used to copy an existing Content Item)

Request Body schema: application/json

Content Item

required
object
label
required
string non-empty

Label

folderId
string

Folder ID

assignees
Array of arrays

Assignees

locale
string

Locale

object

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Faceting Content Items with Search by Text

Facet content items and search by text. See Text Search Query Syntax for a summary of the query syntax.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
sort
string
Example: sort=createdDate

Sort

createdDate.dir
string
Enum: "asc" "desc"
Example: createdDate.dir=desc

Direction of sort

Request Body schema: application/json

Facet Content Items

required
Array of objects
returnEntities
boolean

Return Entities

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Filtering Content Items by Collection Keys

Filter content items using Collection Keys.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json

Filter Content Items

collectionKey
required
string

collectionKey

object
object

Responses

Request samples

Content type
application/json
{
  • "collectionKey": "hubName:527c95fd10c77e96b5164633b445271ffc0392031b6c99448cbaec579767b76b",
  • "sortBy": {
    },
  • "page": {
    }
}

Response samples

Content type
application/json
{}

Search Content Items by Text

Text is the default search field. See Text Search Query Syntax for a summary of the query syntax.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
query
required
string
Example: query=uniondusk

Query

Responses

Response samples

Content type
application/json
{}

Finding Content Items by Delivery Keys

Find content items using the Delivery Key.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
key
required
string
Example: key=promo-page/main-banner

The delivery key

Responses

Response samples

Content type
application/json
{}

Content Repositories

Get Content Repository

Get a new Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Responses

Response samples

Content type
application/json
{}

Update Content Repository

Update the Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Updated Content Repository

name
string non-empty

Name

label
string non-empty

Name

Responses

Request samples

Content type
application/json
{
  • "name": "inspiration",
  • "label": "inspiration"
}

Response samples

Content type
application/json
{}

List Content Items

This lists all of the Content Items within this Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

query Parameters
projection
string
Value: "projection"
Example: projection=basic

"basic" - omits the body property from the return Content Items

page
integer

Page number

folderId
string
Example: folderId=00112233445566778899aabb

Folder ID

status
string

Status

excludeHierarchicalChildren
boolean
Example: excludeHierarchicalChildren=true

Exclude hierarchical child items

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Assign Content Type to Content Repository

Assign Content Type to a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Content Type ID to assign to the Content Reposiroty

contentTypeId
required
string

Content Type ID

Responses

Request samples

Content type
application/json
{
  • "contentTypeId": "00112233445566778899aabb"
}

Response samples

Content type
application/json
{}

Remove Content Type from Content Repository

Remove a Content Type from a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

contentTypeId
required
string
Example: 00112233445566778899aabb

Content Type ID

Responses

Response samples

Content type
application/json
{}

Assign a feature

Assign a feature to a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

query Parameters
feature
required
string
Example: feature=slots

Feature

Responses

Remove a feature

Remove a feature from a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

query Parameters
feature
required
string
Example: feature=slots

Feature

Responses

Share a Content Repository

Share a Content Repository with another user

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Share request

user
required
string

User ID

additionalPermissions
required
Array of strings
Items Enum: "READ" "EDIT" "DELETE" "SHARE"

Additional Permissions

Responses

Request samples

Content type
application/json
{
  • "user": "string",
  • "additionalPermissions": [
    ]
}

Create Content Repository

Create a new Content Repository

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json

Content Repository

name
required
string non-empty

Name

label
required
string non-empty

Name

Responses

Request samples

Content type
application/json
{
  • "name": "inspiration",
  • "label": "inspiration"
}

Response samples

Content type
application/json
{}

List Content Repositories

List Content Repositories for a Hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=label,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Find by feature

Find all the Content Repositories that contain a feature

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
feature
required
string
Example: feature=slots

Feature

page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=label,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Content Types

Assign Content Type to Content Repository

Assign Content Type to a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Content Type ID to assign to the Content Reposiroty

contentTypeId
required
string

Content Type ID

Responses

Request samples

Content type
application/json
{
  • "contentTypeId": "00112233445566778899aabb"
}

Response samples

Content type
application/json
{}

Remove Content Type from Content Repository

Remove a Content Type from a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

contentTypeId
required
string
Example: 00112233445566778899aabb

Content Type ID

Responses

Response samples

Content type
application/json
{}

Get Content Type

Get the request Content Type

Authorizations:
oauth2
path Parameters
contentTypeId
required
string
Example: 00112233445566778899aabb

Content Type ID

Responses

Response samples

Content type
application/json
{}

Update Content Type

Update the Content Type

Authorizations:
oauth2
path Parameters
contentTypeId
required
string
Example: 00112233445566778899aabb

Content Type ID

Request Body schema: application/json

Updated Content Type

object
label
string non-empty

Label

Array of objects

Icons

Array of objects

Visualizations

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Archive Content Type

Archive a Content Type

Authorizations:
oauth2
path Parameters
contentTypeId
required
string
Example: 00112233445566778899aabb

Content Type ID

Responses

Response samples

Content type
application/json
{}

Unarchive Content Type

Unarchive a Content Type

Authorizations:
oauth2
path Parameters
contentTypeId
required
string
Example: 00112233445566778899aabb

Content Type ID

Responses

Response samples

Content type
application/json
{}

Create Content Type

Create a new Content Type

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json

Content Type

required
object
label
required
string non-empty

Label

Array of objects

Icons

Array of objects

Visualizations

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

List Content Types

List Content Types for a Hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=contentTypeUri,asc

Sort paramter

status
string
Example: status=ACTIVE,ARCHIVED

Comma seperated list of statuses

Responses

Response samples

Content type
application/json
{}

Editions

Get Edition

Get Edition

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Response samples

Content type
application/json
{}

Update Edition

Update Edition

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Request Body schema: application/json
name
string [ 1 .. 120 ] characters

Edition Name

comment
string <= 250 characters

Edition Comment

activeEndDate
boolean

Active End Date

Responses

Request samples

Content type
application/json
{
  • "name": "Edition",
  • "comment": "This is an Edition comment",
  • "activeEndDate": false
}

Response samples

Content type
application/json
{}

Delete Edition

Delete Edition

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Archive Edition

Archiving an edition is irreversible, you cannot unarchive.

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Response samples

Content type
application/json
{}

Get Edition Conflicts

Get Edition Conflicts

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Response samples

Content type
application/json
{}

Resolve Edition Conflicts

Resolve Edition Conflicts

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Request Body schema: application/json
comment
string

Comment

lastModifiedDate
string <date-time>

Last Modified Date

required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "comment": "Comment",
  • "lastModifiedDate": "2019-01-01T00:00:00.000Z",
  • "resolutions": [
    ]
}

Get Edition Conflict by Id and Version

Get Edition Conflict by Id and Version

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

query Parameters
version
required
number
Example: version=1

Version

id
required
string
Example: id=00112233445566778899aabb

Id

Responses

Response samples

Content type
application/json
{}

Create Edition Content

Create Edition Content

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Response samples

Content type
application/json
{}

List Edition Contents

List Edition Contents

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

query Parameters
page
integer
Example: page=1

page to retrieve

size
integer
Example: size=20

page size to retrieve

Responses

Response samples

Content type
application/json
{}

Get Edition Content

Get Edition Content

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

editionContentId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Edition Content ID

Responses

Response samples

Content type
application/json
{}

Delete Edition Content

Delete Edition Content

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

editionContentId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Edition Content ID

Responses

Associate Edition Content

Associate Snapshot to Edition Content

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

editionContentId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Edition Content ID

Request Body schema: application/json

Associating Snapshots to Edition Content

object
object
object
id
string
contentType
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Create Edition Preview

If an Edition has been Previewed or is Scheduled then you can retrieve the Snapshot to be used with the Preview application or in Time Machine.

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Request Body schema: application/json
lastModifiedDate
string <date-time>

Last Modified Date

type
string

Type

Responses

Request samples

Content type
application/json
{
  • "lastModifiedDate": "2019-01-01T00:00:00.000Z",
  • "type": "QUICKPREVIEW"
}

Response samples

Content type
application/json
{}

Get Edition Preview

If an Edition has been Previewed or is Scheduled then you can retrieve the Snapshot to be used with the Preview application or in Time Machine.

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Response samples

Content type
application/json
{}

Delete Edition Preview

If an Edition has been Previewed it can be deleted, if the Edition is Scheduled then it cannot be deleted.

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Schedule Edition

In order to schedule an Edition, the Edition must be in the DRAFT state, all Edition Slots must be in the 'VALID' state if there are any, the Edition must have at least one Slot or Content Snapshot, and there must be no conflicts in the Edition. This will then trigger the publishing job to take place on the start date of the Edition.

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Request Body schema: application/json
lastModifiedDate
string <date-time>

Last Modified Date

Responses

Request samples

Content type
application/json
{
  • "lastModifiedDate": "2019-01-01T00:00:00.000Z"
}

Unschedule Edition

If the Edition has been scheduled it is possible to cancel the publishing job by unscheduling the edition.

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Get Edition Slot Collisions

Get Edition Slot Collisions

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

Responses

Response samples

Content type
application/json
{}

Assign Edition Slots

Assign Edition Slots

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

query Parameters
sourceEditionSlotId
string
Example: sourceEditionSlotId=00112233445566778899aabb

Source Edition Slot ID used to copy Edition Slot to Edition

Request Body schema: application/json

Associate Slots to Editions

Array
slot
string

ID

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
Example
{}

Get Edition Slots

Get Edition Slots

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

query Parameters
page
integer
Example: page=1

page to retrieve

size
integer
Example: size=20

page size to retrieve

includedSlots
string
Example: includedSlots=00112233-4455-6677-8899-aabbccddeeff

Retrieving Slots associated to an Edition filtered by content item

Responses

Response samples

Content type
application/json
{}

Get Edition Slot

Get Edition Slot

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

slotId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Slot ID

Responses

Response samples

Content type
application/json
{}

Delete Edition Slot

Delete Edition Slot

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

slotId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Slot ID

Responses

Create Edition Slot Content

Create Edition Slot Content

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

slotId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Slot ID

Request Body schema: application/json

Associating Snapshots to Slots

object
label
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Find By Date Range

Find Editions using a Date Range

Authorizations:
oauth2
query Parameters
hubId
required
string
Example: hubId=00112233445566778899aabb

Hub ID

rangeStart
string <date-time>
Example: rangeStart=2019-01-01T00:00:00.000Z

The start date to search from

rangeEnd
string <date-time>
Example: rangeEnd=2019-01-01T00:00:00.000Z

The end date to search to

projection
string
Value: "withEvent"

Include child Editions

bounded
integer
Example: bounded=1

Find events that have either started or ended within the date range

size
integer
Example: size=10

Set the number of results per page

page
integer

Page number

sort
string
Example: sort=createdDate,asc

Sort parameter

Responses

Response samples

Content type
application/json
Example
{}

Find By Event

Find Event by Id

Authorizations:
oauth2
query Parameters
eventId
required
string
Example: eventId=00112233445566778899aabb

Event Id

Responses

Response samples

Content type
application/json
{}

Create Edition

Authorizations:
oauth2
path Parameters
editionId
required
string
Example: 00112233445566778899aabb

Edition Id

query Parameters
sourceEditionId
string
Example: sourceEditionId=00112233445566778899aabb

Duplicate an Edition by providing an Edition Id

projection
string
Value: "withEvent"

Include parent event for edition

Request Body schema: application/json
name
required
string [ 1 .. 120 ] characters

Edition Name

comment
string <= 250 characters

Edition Comment

activeEndDate
boolean

Active End Date

Responses

Request samples

Content type
application/json
{
  • "name": "Edition",
  • "comment": "This is an Edition comment",
  • "activeEndDate": false
}

Response samples

Content type
application/json
{}

List Editions

Authorizations:
oauth2
query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

Responses

Response samples

Content type
application/json
{}

Search Editions

Authorizations:
oauth2
path Parameters
eventId
required
string
Example: 00112233445566778899aabb

Event Id

Responses

Response samples

Events

Get an Event

Get an Event by ID

Authorizations:
oauth2
path Parameters
eventId
required
string
Example: 00112233445566778899aabb

Event ID

query Parameters
projection
string
Value: "withEditions"

Include related Editions

Responses

Response samples

Content type
application/json
Example

Delete an Event

Delete an Event by ID

Authorizations:
oauth2
path Parameters
eventId
required
string
Example: 00112233445566778899aabb

Event ID

Responses

Update an Event

Update an Event by ID

Authorizations:
oauth2
path Parameters
eventId
required
string
Example: 00112233445566778899aabb

Event ID

Request Body schema: application/json
name
string <= 120 characters

Name

comment
string <= 250 characters

Comment

start
string <date-time>

The Event start date

end
string <date-time>

The Event end date

brief
string <uri> <= 2000 characters

Brief - external URI that related to this Event

locales
Array of strings <locale>

Locales

Responses

Request samples

Content type
application/json
{
  • "name": "Event",
  • "comment": "This is an example Event",
  • "start": "2019-01-01T00:00:00.000Z",
  • "end": "2019-01-01T00:00:00.000Z",
  • "locales": [
    ]
}

Response samples

Content type
application/json
{}

Archive Events

Archiving an event is irreversible, you cannot unarchive. Archiving an event will also archive all editions contained within the event.

Authorizations:
oauth2
path Parameters
eventId
required
string
Example: 00112233445566778899aabb

Event ID

Responses

Response samples

Content type
application/json
{}

Search Events by date

List all of the Events for a given date

Authorizations:
oauth2
query Parameters
hubId
required
string
Example: hubId=00112233445566778899aabb

Hub ID

rangeStart
required
string <date-time>
Example: rangeStart=2019-01-01T00:00:00.000Z

The start date to search from

rangeEnd
string <date-time>
Example: rangeEnd=2019-01-01T00:00:00.000Z

The end date to search to

projection
string
Value: "withEditions"

Include child Editions

bounded
integer
Example: bounded=1

Find events that have either started or ended within the date range

size
integer
Example: size=10

Set the number of results per page

Responses

Response samples

Content type
application/json
Example
{}

Search Events by date range and Slots

List all of the Events for a given date range and slot ID

Authorizations:
oauth2
query Parameters
hubId
required
string
Example: hubId=00112233445566778899aabb

Hub ID

rangeStart
required
string <date-time>
Example: rangeStart=2019-01-01T00:00:00.000Z

The start date to search from

rangeEnd
string <date-time>
Example: rangeEnd=2019-01-01T00:00:00.000Z

The end date to search to

projection
string
Value: "withEditions"

Include child Editions

bounded
integer
Example: bounded=1

Find events that have either started or ended within the date range

slots
required
string
Example: slots=00112233-4455-6677-8899-aabbccddeeff

Slot ID

locales
string
Example: locales=en-GB

Locale to match

size
integer
Example: size=10

Set the number of results per page

Responses

Response samples

Content type
application/json
Example
{}

List Events

List all of the Events created for a hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Responses

Response samples

Content type
application/json
{}

Create a new Event

Create a new Event for a particular Hub.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
name
required
string <= 120 characters

Name

comment
string <= 250 characters

Comment

start
required
string <date-time>

The Event start date

end
required
string <date-time>

The Event end date

brief
string <uri> <= 2000 characters

Brief - external URI that related to this Event

locales
Array of strings <locale>

Locales

Responses

Request samples

Content type
application/json
{
  • "name": "Event",
  • "comment": "This is an example Event",
  • "start": "2019-01-01T00:00:00.000Z",
  • "end": "2019-01-01T00:00:00.000Z",
  • "locales": [
    ]
}

Response samples

Content type
application/json
{}

Extensions

Get Extension

Return the extension with the specified ID.

Authorizations:
oauth2
path Parameters
extensionId
required
string
Example: 00112233445566778899aabb

Extension ID

Responses

Response samples

Content type
application/json
{}

Patch Extension

Patch an Extension

Authorizations:
oauth2
path Parameters
extensionId
required
string
Example: 00112233445566778899aabb

Extension ID

Request Body schema: application/json
name
required
string

System name

label
required
string

User friendly name

description
string

Description

url
required
string

Url

height
integer

Height of the extension

enabledForAllContentTypes
boolean
Default: true

Sets whether the extension is globally enabled or intended for a specific content type

category
required
string
Value: "CONTENT_FIELD"

Type of extension

Array of objects

Array of config parameters

Array of objects

Array of snippets

settings
string

The settings parameter is used to store undefined extension settings such as security rule.

Responses

Request samples

Content type
application/json
{
  • "name": "Extension-01",
  • "label": "Extension-01 first-draft",
  • "description": "This is a description of an extension.",
  • "height": 400,
  • "enabledForAllContentTypes": false,
  • "category": "CONTENT_FIELD",
  • "parameters": [
    ],
  • "snippets": [
    ],
  • "settings": "{\"API\":{\"READ\":true,\"EDIT\":true},\"SANDBOX\":{\"SAME_ORIGIN\":false,\"MODALS\":true,\"NAVIGATION\":true,\"POPUPS\":false,\"DOWNLOADS\":false,\"FORMS\":true}}"
}

Response samples

Content type
application/json
{}

Delete Extension

Delete an Extension

Authorizations:
oauth2
path Parameters
extensionId
required
string
Example: 00112233445566778899aabb

Extension ID

Responses

List Extensions

List all of the extension created for a hub.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create Extension

Create a new Extension.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
name
required
string

System name

label
required
string

User friendly name

description
string

Description

url
required
string

Url

height
integer

Height of the extension

enabledForAllContentTypes
boolean
Default: true

Sets whether the extension is globally enabled or intended for a specific content type

category
required
string
Value: "CONTENT_FIELD"

Type of extension

Array of objects

Array of config parameters

Array of objects

Array of snippets

settings
string

The settings parameter is used to store undefined extension settings such as security rule.

Responses

Request samples

Content type
application/json
{
  • "name": "Extension-01",
  • "label": "Extension-01 first-draft",
  • "description": "This is a description of an extension.",
  • "height": 400,
  • "enabledForAllContentTypes": false,
  • "category": "CONTENT_FIELD",
  • "parameters": [
    ],
  • "snippets": [
    ],
  • "settings": "{\"API\":{\"READ\":true,\"EDIT\":true},\"SANDBOX\":{\"SAME_ORIGIN\":false,\"MODALS\":true,\"NAVIGATION\":true,\"POPUPS\":false,\"DOWNLOADS\":false,\"FORMS\":true}}"
}

Response samples

Content type
application/json
{}

Get Extension by name

Return the extension with the specified name, in current hub.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

name
required
string
Example: sample-name

Extension name

Responses

Response samples

Content type
application/json
{}

Folders

Folders are used to organise items in a hierarchical structure. Currently only enabled for organising content items within a content repository.

Create Folder

Folders are used to organise items in a hierarchical structure. Currently only enabled for organising content items within a content repository.

To create a new folder follow the "create-folder" link from a content repository.

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Content Repository Folder

name
required
string non-empty

Folder name

Responses

Request samples

Content type
application/json
{
  • "name": "New folder"
}

Response samples

List Folders

List all of the top-level Folders for a Content Repository

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

Responses

Response samples

Content type
application/json

Create Folder

Update a folder

Authorizations:
oauth2
path Parameters
folderId
required
string
Example: 00112233445566778899aabb

Folder ID

Request Body schema: application/json

Updated Folder

name
string non-empty

Folder name

Responses

Request samples

Content type
application/json
{
  • "name": "New folder"
}

Response samples

Get Folder

Get a folder

Authorizations:
oauth2
path Parameters
folderId
required
string
Example: 00112233445566778899aabb

Folder ID

Responses

Response samples

Delete Folder

Delete a folder

Authorizations:
oauth2
path Parameters
folderId
required
string
Example: 00112233445566778899aabb

Folder ID

Responses

Create Sub-Folder

Create a new sub-folder.

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Folder

name
required
string non-empty

Folder name

Responses

Request samples

Content type
application/json
{
  • "name": "New folder"
}

Response samples

List Sub-folders

List the sub-folders of a folder

Authorizations:
oauth2
path Parameters
folderId
required
string
Example: 00112233445566778899aabb

Folder ID

Responses

Response samples

Content type
application/json

Hubs

Hubs are containers for multiple repositories including media, content, content types.

List Hubs

Authorizations:
oauth2
query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

Responses

Response samples

Content type
application/json
{}

Create Hub

A Hub is a container for multiple repositories including media, content, content types.

Authorizations:
oauth2
Request Body schema: application/json

Hub

name
required
string non-empty

Hub name

label
required
string non-empty

Hub label

description
any

Hub description

plan
string or null (HubPlan)
Value: "DEVELOPER"

Hub Plan

algoliaSearch
string
Value: "ENABLED"

Algolia Search enabled flag

cdv2
string
Value: "ENABLED"

CD2 enabled flag

organizationId
string [ 1 .. 50 ] characters

Organization ID

object (HubSettings)

Hub settings

Responses

Request samples

Content type
application/json
{
  • "name": "anya-finn",
  • "label": "Anya Finn",
  • "description": "Content for anyafinn.com",
  • "plan": "DEVELOPER",
  • "algoliaSearch": "ENABLED",
  • "cdv2": "ENABLED",
  • "organizationId": "org_cDQVi4ww5y6cMPtN",
  • "settings": {
    }
}

Response samples

Content type
application/json
{}

Get Hub

Hub is the root resource in Dynamic Content, all other resources can be accessed from a Hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Responses

Response samples

Content type
application/json
{}

Update Hub

Hub is the root resource in Dynamic Content, all other resources can be accessed from a Hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
name
string non-empty

Hub name

label
string non-empty

Hub label

description
any

Hub description

plan
string or null (HubPlan)
Value: "DEVELOPER"

Hub Plan

algoliaSearch
string
Value: "ENABLED"

Algolia Search enabled flag

cdv2
string
Value: "ENABLED"

CD2 enabled flag

organizationId
string [ 1 .. 50 ] characters

Organization ID

object (HubSettings)

Hub settings

Responses

Request samples

Content type
application/json
{
  • "name": "anya-finn",
  • "label": "Anya Finn",
  • "description": "Content for anyafinn.com",
  • "plan": "DEVELOPER",
  • "algoliaSearch": "ENABLED",
  • "cdv2": "ENABLED",
  • "organizationId": "org_cDQVi4ww5y6cMPtN",
  • "settings": {
    }
}

Response samples

Content type
application/json
{}

Get Hub Asset Management Settings

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Responses

Response samples

Content type
application/json

Update Hub Asset Management Settings

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
enabled
boolean
clientConfig
string
Enum: "HUB" "USER"

Responses

Request samples

Content type
application/json
{
  • "enabled": false,
  • "clientConfig": "HUB"
}

Response samples

Content type
application/json

Post Bulk Apply Locale Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
object

Responses

Request samples

Content type
application/json
{
  • "selection": [
    ],
  • "localization": {
    }
}

Response samples

Content type
application/json
{}

Get Bulk Apply Locale Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

bulkJobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Post Bulk Archive Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
Array
contentItemId
string

ID of content item

version
integer

Version of content item to archive

Responses

Request samples

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

Response samples

Content type
application/json
{}

Get Bulk Archive Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

jobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Post Bulk Assign Users Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
Array
contentItemId
string

ID of content item

assignees
Array of strings

Array of users to assign to content item

Responses

Request samples

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

Response samples

Content type
application/json
{}

Get Bulk Assign Users Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

jobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Post Bulk Copy Item Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
Array
contentItemId
required
string

Source Content Item ID (used to copy an existing Content Item)

version
required
integer

Version of content item to archive

contentRepositoryId
required
string

ID of content repo

folderId
string

ID of the content folder

name
required
string
label
required
string

Responses

Request samples

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

Response samples

Content type
application/json
{}

Get Bulk Copy Item Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

jobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Post Bulk Publish Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
Array
contentItemId
string

ID of content item

version
integer

Version of content item to publish

Responses

Request samples

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

Response samples

Content type
application/json
{}

Get Bulk Publish Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

bulkJobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Post Bulk Unarchive Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
Array
contentItemId
string

ID of content item

version
integer

Version of content item to Unarchive

Responses

Request samples

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

Response samples

Content type
application/json
{}

Get Bulk Unarchive Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

jobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Post Bulk Update Workflow Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array of objects
object

Responses

Request samples

Content type
application/json
{
  • "selection": [
    ],
  • "workflow": {
    }
}

Response samples

Content type
application/json
{}

Get Bulk Update Workflow Job

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

bulkJobId
required
string
Example: 00112233445566778899bbcc

Bulk Job Id

Responses

Response samples

Content type
application/json
{}

Update Hub Plan

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
plan
string or null (HubPlan)
Value: "DEVELOPER"

Hub Plan

Responses

Request samples

Content type
application/json
{
  • "plan": "DEVELOPER"
}

Update Hub Settings

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
object
Array of objects
object
Array of objects
object (HubSettingsVirtualStagingEnvironment)
object (HubSettingsVirtualStagingEnvironment)
object

Responses

Request samples

Content type
application/json
{
  • "publishing": {
    },
  • "devices": [
    ],
  • "localization": {
    },
  • "applications": [],
  • "previewVirtualStagingEnvironment": {
    },
  • "virtualStagingEnvironment": {
    },
  • "assetManagement": {
    }
}

Share Hub

Hub is the root resource in Dynamic Content, all other resources can be accessed from a Hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
user
required
string

User Id

additionalPermissions
required
Array of strings
Items Enum: "READ" "EDIT" "DELETE" "SHARE"

Permissions to share

Responses

Request samples

Content type
application/json
{
  • "user": "00112233-4455-6677-8899-aabbccddeeff",
  • "additionalPermissions": [
    ]
}

Localization

Assigning locales to Content Items

Assign a locale to a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Assign Content Item Locale request

locale
required
string

Locale

version
required
number >= 1

Version

Responses

Request samples

Content type
application/json
{
  • "locale": "en-GB",
  • "version": 1
}

Response samples

Content type
application/json
{}

Listing the Localizations of a Content Item

Once a Content Item has been localized into one or more desired locales, you will be able to see the list of all localizations by following the "localizations" HAL link.

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Assigning locales to Content Repository

In order to organise your localized content into separate repositories you can assign a set locales to a Content Repository. You may want to do this in order to give different teams different permissions to create or edit content based on locale.

Assigning locales to a Content Repository has 2 effects. Firstly, you will only be able to assign locales to Content Items which match those assigned to the repository. Secondly, when localizing a content graph, the newly created Content Items will be created in the appropriate Content Repository which match the desired locale.

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Updating item locales request

itemLocales
required
Array of strings

Item locales

Responses

Request samples

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

Response samples

Content type
application/json
{}

Updating a Content Repository localization group

The following API allows you to make 2 or more Content Repositories part of the same "group". The new repository will leave it’s current group and join the group of the target repository. To do this, follow the "join-localization-group" HAL link from the target repository and specify the new repository in the body.

For example, lets say you have 3 Content Repositories, Repo1 has no locales assigned, Repo2 and Repo3 are both members of the same group and are assigned locales ["en-GB", "en-US"] and ["fr-FR"] respectively. The following example shows localizing en-GB content into fr-FR. A1 signifies that item A exists in Repo1.

    A1                   A1              A'1
   /  \                 /  \             / \
  B2   C1      ==>     B2   C1         B'3  C'1
 /    /  \            /    /  \        /    / \
D2   E2   F2         D2   E2   F2    D'3  E'3  F'3
Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Request Body schema: application/json

Updating item locales request

newRepositoryId
required
string

New Content Repository ID

Responses

Request samples

Content type
application/json
{
  • "newRepositoryId": "00112233445566778899aabb"
}

Response samples

Content type
application/json
{}

Get Content Repository localization group locales

List of all supported item locales in a Content Repository localization group. This request can be made using the ID of any repository in the localization group.

Authorizations:
oauth2
path Parameters
contentRepositoryId
required
string
Example: 00112233445566778899aabb

Content Repository ID

Responses

Response samples

Content type
application/json

Localization Jobs

Content item localization is performed asynchronously - the request to localize a content item graph creates a Localization Job which will be completed at some point in the future. It is possible to track the status of these jobs.

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Integrations

List Available Integrations

List all of the Integrations created for a hub (dependent on functional permissions)

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=label&sort=asc

Sort paramter

Responses

Response samples

Publishing Jobs

Get a Publishing Job

Get a Publishing Job

Authorizations:
oauth2
path Parameters
publishingJobId
required
string

Publishing Job ID

Responses

Response samples

Content type
application/json
{}

Cancelling a Publishing Job

Canelling a Publishing Job

Authorizations:
oauth2
path Parameters
publishingJobId
required
string
Example: 00112233445566778899aabb

Publishing Job ID

Request Body schema: application/json
state
required
string

Assign state to "CANCELLED"

Responses

Request samples

Content type
application/json
{
  • "state": "CANCELLED"
}

Response samples

Content type
application/json
{}

List all publishing jobs for a Snapshot

Get a list of all Publishing Jobs for a Snapshot

Authorizations:
oauth2
path Parameters
snapshotId
required
string

Snapshot ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create Publishing-Job for Snapshot

Create a Publishing Job for a Snapshot

Authorizations:
oauth2
path Parameters
snapshotId
required
string
Example: 00112233445566778899aabb

Snapshot ID

Request Body schema: application/json
scheduledDate
required
string

Scheduled date & time for Publishing Job

Responses

Request samples

Content type
application/json
{
  • "scheduledDate": "2018-01-01T00:00:00Z"
}

Response samples

Content type
application/json
{}

Salesforce Commerce Cloud (SFCC)

List SFCC Integrations

List all of the SFCC Integrations

Authorizations:
oauth2
query Parameters
hubId
required
string
Example: hubId=00112233445566778899aabb

Hub ID

cursor
string

Cursor specific to a page

size
integer
Example: size=20

Page size

sort
string
Example: sort=label&sort=asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create SFCC Integration

Create a SFCC Integration

Authorizations:
oauth2
Request Body schema: application/json
label
string
required
object

Credentials for integrating with SFCC

required
object

Credentials for integrating with DC

required
object

Details to use when communicating with SFCC

object
required
object

Used for setting up content previews

object

Filtering settings defining which content items are sent to SFCC

localeMappings
object

Locales to use when creating SFCC content, any valid locale can be used

Responses

Request samples

Content type
application/json
{
  • "hubId": null,
  • "label": "Salesforce Commerce Cloud",
  • "sfcc-credentials": {
    },
  • "dc-credentials": {
    },
  • "sfcc-api": {},
  • "contentSlots": {
    },
  • "rendering": {
    },
  • "contentAssets": {
    },
  • "localeMappings": {
    }
}

Response samples

Content type
application/json
{}

Get a SFCC Integration

Get a specific SFCC Integration

Authorizations:
oauth2
path Parameters
integrationId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Integration ID

Responses

Response samples

Content type
application/json
{}

Update SFCC Integration

Update an SFCC Integration

Authorizations:
oauth2
Request Body schema: application/json
label
string
object

Credentials for integrating with SFCC

object

Credentials for integrating with DC

object

Details to use when communicating with SFCC

object
object

Used for setting up content previews

object

Filtering settings defining which content items are sent to SFCC

localeMappings
object

Locales to use when creating SFCC content, any valid locale can be used

Responses

Request samples

Content type
application/json
{
  • "label": "Salesforce Commerce Cloud",
  • "sfcc-credentials": {
    },
  • "dc-credentials": {
    },
  • "sfcc-api": {},
  • "contentSlots": {
    },
  • "rendering": {
    },
  • "contentAssets": {
    },
  • "localeMappings": {
    }
}

Response samples

Content type
application/json
{}

Delete SFCC Integration

Delete an SFCC Integration

Authorizations:
oauth2

Responses

Salesforce Marketing Cloud (SFMC)

List SFMC Integrations

List all of the SFMC Integrations

Authorizations:
oauth2
query Parameters
hubId
required
string
Example: hubId=00112233445566778899aabb

Hub ID

cursor
string

Cursor specific to a page

size
integer
Example: size=20

Page size

sort
string
Example: sort=label&sort=asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create SFMC Integration

Create a SFMC Integration

Authorizations:
oauth2
Request Body schema: application/json
label
required
string <= 120 characters
active
required
boolean
required
object

Credentials for integrating with SFMC

required
object

Credentials for integrating with DC

required
object

Used for setting up content previews

required
object

Settings to use when creating SFMC content

Responses

Request samples

Content type
application/json
{
  • "hubId": null,
  • "label": "Salesforce Marketing Cloud",
  • "active": true,
  • "sfmc-credentials": {
    },
  • "dc-credentials": {
    },
  • "rendering": {
    },
  • "contentAssets": {
    }
}

Response samples

Content type
application/json
{}

Get a SFMC Integration

Get a specific SFMC Integration

Authorizations:
oauth2
path Parameters
integrationId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Integration ID

Responses

Response samples

Content type
application/json
{}

Update SFMC Integration

Update an SFMC Integration

Authorizations:
oauth2
Request Body schema: application/json
label
string <= 120 characters
active
boolean
object

Credentials for integrating with SFMC

object

Credentials for integrating with DC

object

Used for setting up content previews

object

Settings to use when creating SFMC content

Responses

Request samples

Content type
application/json
{
  • "label": "Salesforce Marketing Cloud",
  • "active": true,
  • "sfmc-credentials": {
    },
  • "dc-credentials": {
    },
  • "rendering": {
    },
  • "contentAssets": {
    }
}

Response samples

Content type
application/json
{}

Delete SFMC Integration

Delete an SFMC Integration

Authorizations:
oauth2

Responses

Search Indexes

Dynamic Content search is powered by Algolia. Algolia search indexes can be created to index data for one or more assigned content types. Content can then be queried from your frontend using Algolia's search APIs and SDKs.

List Indexes

List Algolia search indexes for a given hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
parentId
string
Example: parentId=20

Filter by the parentId.

An empty string will return all primary indexes.

projection
string
Value: "withSettings"

Project addition values in list response

  • "withSettings" - includes the settings for each index
size
integer
Example: size=20

Set the number of results per page

page
integer

Page number

sort
string
Example: sort=label,asc

Sort parameter

status
string
Example: status=ACTIVE,ARCHIVED

Comma seperated list of statuses

Responses

Response samples

Content type
application/json
{}

Create an Index

Create a new Algolia search index

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
suffix
required
string [ 3 .. 63 ] characters /^((?![/~,\\`&|;$\*]).)*$/

Index suffix

label
required
string [ 3 .. 63 ] characters

User defined index label

type
required
string
Enum: "PRODUCTION" "STAGING"

Type of index

required
Array of objects (AlgoliaSearchIndexAssignedContentType)

Assigned Content Types

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get an Index

Get an Algolia search index for a given hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Responses

Response samples

Content type
application/json
{}

Update an Index

Update an active Algolia search index.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Request Body schema: application/json
label
string [ 3 .. 63 ] characters

User defined index label

Responses

Request samples

Content type
application/json
{
  • "label": "My Index"
}

Response samples

Content type
application/json
{}

Delete an Index

Delete an Algolia search index for a given hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Responses

Archive an Algolia Search Index

Archive an Algolia Search Index

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Responses

Response samples

Content type
application/json
{}

List Assigned Content Types

List all content types assigned to a search index. Each content type should have an associated webhook, which updates the index with content item data.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
size
integer
Example: size=20

Set the number of results per page

page
integer

Page number

sort
string
Example: sort=createdDate,asc

Sort parameter

Responses

Response samples

Content type
application/json
{}

Create an Assigned Content Type

Assign content type to a search index. Assigning a content type will create an associated webhook, which updates the index with content item data.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Request Body schema: application/json
contentTypeUri
required
string (ContentType)

Registered Content Type Schema

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{}

Get Assigned Content Type

Get an assigned content type for a search index. A content type should have an associated webhook, which updates the index with content item data.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

contentTypeId
required
string
Example: 00112233445566778899aabb

Assigned Content Type ID

Responses

Response samples

Content type
application/json
{}

Delete an Assigned Content Type

Delete an assigned content type for a search index.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

contentTypeId
required
string
Example: 00112233445566778899aabb

Assigned Content Type ID

Responses

Recreate Assigned Content Type Webhook

Recreate the webhook for this assigned content type

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

contentTypeId
required
string
Example: 00112233445566778899aabb

Assigned Content Type ID

query Parameters
type
required
string
Enum: "active" "archived"
Example: type=00112233445566778899aabb

Type of webhook to create

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Clear an Index

Remove all objects from an Algolia search index

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Get an API key

Get Algolia search API key for a given index/hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

keyId
required
string
Example: 00112233445566778899aabb

Key ID

Responses

Response samples

Content type
application/json
{}

Delete an Index Object

Delete an object from a search index

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

objectId
required
string
Example: 00112233445566778899aabb

Object ID

Responses

Get Search Index Settings

Get Algolia search index settings

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Responses

Update Search Index Settings

Update settings on an active Algolia search index.

For a complete list of index settings visit the Algolia settings documentation.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
forwardToReplicas
boolean
Example: forwardToReplicas=true

Forward to replicas

Request Body schema: application/json
replicas
Array of strings

Index replicas that are managed by Dynamic Content should follow the naming convention <hubName>.<replicaName> - e.g. anyafinn.womens-clothing-replica

Responses

Request samples

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

Get Search Index Statistics

Get Algolia search index statistics

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Responses

Response samples

Content type
application/json
{}

Unarchive an Algolia Search Index

Unarchive an Algolia Search Index

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

Responses

Response samples

Content type
application/json
{}

Search Indexes - Analytics

Get rate of no results for an index

Returns the rate at which searches did not return any results. A value is returned for the whole range. Values per days are also returned. Additionally, the search count and the count of searches without results, used to compute the rates, are returned as well.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)
includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

Responses

Get count of searches for an index

Returns the number of searches across the given time range. A value is returned for the whole range. Additionally, values for each day are returned.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)
includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

Responses

Get top searches with no results

Returns top searches that did not return any results. Limited to the 1000 most frequent.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

limit
number >= 0
Example: limit=10

How many items to fetch.

offset
number >= 0
Example: offset=0

From which position to start retrieving results.

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)
includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

Responses

Response samples

Content type
application/json

Get top filters no result search

Returns top filters that did not return any results for given search. Limited to the top 1000.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
search
required
string
Example: search=q0

The query term. Must match the exact user input

startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

limit
number >= 0
Example: limit=10

How many items to fetch.

offset
number >= 0
Example: offset=0

From which position to start retrieving results.

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)
includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

Responses

Response samples

Content type
application/json
{}

Get top hits for an index

If search is supplied, the top hits for the given search.

If search is omitted, the overall top hits will be returned for this index.

Limited to the 1000 most frequent ones.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
search
string
Example: search=term

Get top hits for a given search. Must match the exact user input.

startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

limit
number >= 0
Example: limit=10

How many items to fetch.

offset
number >= 0
Example: offset=0

From which position to start retrieving results.

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)
includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

Responses

Response samples

Get top searches for an index

Returns top searches. Limited to the 1000 most frequent ones. For each search, also returns the average number of hits returned.

If clickAnalytics=true, then for each search, also returns:

  • the click through rate,
  • the conversion rate,
  • the average click position.

You can also order the results using orderBy and direction.

Distinguishing no data vs 0% CTR, 0% CR, no average

  • You have click analytics enabled but no queries were received with clickAnalytics=true
    • in that case CTR, CR and average will be null.
  • You have click analytics enabled, we received queries with clickAnalytics=true
  • CTR and CR are 0 until we receive click/conversion events
  • average will stay null until we receive a click event
Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
clickAnalytics
boolean
Default: false

If true, then for each search, also returns:

  • the click through rate,
  • the conversion rate,
  • the average click position.
orderBy
string

You can reorder the results by passing one of the following:

  • searchCount
  • clickThroughRate
  • conversionRate
  • averageClickPosition
direction
string
Enum: "asc" "desc"
Example: direction=desc

Change the order of the results

startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

limit
number >= 0
Example: limit=10

How many items to fetch.

offset
number >= 0
Example: offset=0

From which position to start retrieving results.

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)
includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

Responses

Response samples

Content type
application/json
Example
{}

Get count of users

Returns count of distinct user across the given time range.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

indexId
required
string
Example: 00112233445566778899aabb

Index ID

query Parameters
startDate
string <date>
Example: startDate=2020-07-16

The lower bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to 7 days ago, 00:00:00am, UTC

endDate
string <date>
Example: endDate=2020-07-23

The upper bound timestamp (a date, a string like “2006-01-02”) of the period to analyze. Defaults to Today, 23:59:59pm, UTC

includeReplicas
boolean
Default: false
Example: includeReplicas=true

Include replica data in the results (Can only be used in conjunction with primary indexes).

tags
string
Example: tags=platform:ios

Filter metrics on the provided tags. Each tag must correspond to an analyticsTags set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it should be URL encoded. E.g:

  • “lang:fr OR lang:en”
  • “platform:ios AND lang:en”
  • “(lang:fr OR lang:en) AND platform:android”
  • “device:mobile%20phone” (note the URL encoded)

Responses

Slots

"Slots" are content-items which are stored in separate repositories from other content-items. Their role is to be placeholders for snapshots.

Example Slot Content Type

{
  "$schema" : "http://bigcontent.io/cms/schema/v1/schema#",
  "id" : "http://deliver.bigcontent.io/schema/simple-slot-type.json",
  "title" : "slot",
  "description" : "Slot Container",
  "type":"object",
  "properties": {
    "slot": {
      "title": "simple slot container",
      "allOf":[
        {"$ref": "http://bigcontent.io/cms/schema/v1/core#/definitions/content-link" },
        {
          "properties": {
            "contentType": { "enum": [ "http://deliver.bigcontent.io/schema/nested/nested-type.json" ] }
          }
        }
      ]
    }
  }
}

You will need to register a content type capable of holding nested content in order to create a slot.

Pre-requsites

Creating a Slot Repository

A Slot Repository is just a Content Repository with the "slots" feature. See adding features to repositories for more information

Creating a Slot

A Slot is a Content Item in a Slot Repository. Please refer to creating a content item for more information.

Associating Slots to Editions

Once you have a Slot Repository with some Slots you can then associate them with an Edition in order make them available for publishing.

  • Multiple Slots can be associated to an Edition, up to 200
  • A Slot can be associated with multiple Editions
  • A Slot can only be associated to an Edition once

When you associate Slots to an Edition, the slotsRemaining property on the Edition will decrease. If you attempt to associate more Slots than there are remaining on the Edition, the operation will fail.

Please refer to the Assign Edition Slots section for an example request.

Retrieving Slots associated to an Edition

Please refer to the Retrieving Edition Slots section for an example request.

Retrieving Slots associated to an Edition filter by content item

To filter by content item, we supply the includedSlots query parameter. Please refer to the Get Edition Slots section for an example request.

Retrieving an single Slot associated to an Edition

Please refer to the Get Edition Slot section for an example request.

Removing the association between a Slot and an Edition

Please refer to the Delete Edition Slot section for an example request.

Associating Snapshots to Slots

A slot is a placeholder for one or more snapshots. In order to associate those snapshots to this slot you will need to post the resulting content-item to the slot url.

Notice that in the below request, body.slot.id is the path to a snapshot. Not a content item.

The body.slot.id can also be set to null when the user hasn't currently assigned all of the fields. The service will accept this data, however the valid field will be set to false.

Please refer to the Create Edition Slot Content section for an example request.

Snapshots

A Snapshot is an immutable representation of a content item with all of its descendants (including their versions) at a given point in time.

List Snapshots

List all of the snapshots created for a hub. The list can be filtered by user or system created snapshots.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

type
string
Enum: "user" "system" "generated"
Example: type=user

Type filter

Responses

Response samples

Content type
application/json
{}

Create Snapshot

Create a new Snapshot for a particular Content-Item.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
comment
required
string non-empty

Comment

createdFrom
required
string
Enum: "content-item" "edition"

Indicates if this Snapshot was created by an Edition or a Content-Item

type
required
string
Enum: "USER" "SYSTEM"

Indicates the type of Snapshot (USER or SYSTEM)

contentRoot
required
any

ID of the root Content-Item

Responses

Request samples

Content type
application/json
{
  • "comment": "This is a example snapshot.",
  • "createdFrom": "content-item",
  • "type": "USER",
  • "contentRoot": "00112233-4455-6677-8899-aabbccddeeff"
}

Response samples

Content type
application/json
{}

Create Batch of Snapshot

Create new Snapshots for a batch of Content Items.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
Array
comment
required
string non-empty

Comment

createdFrom
required
string
Enum: "content-item" "edition"

Indicates if this Snapshot was created by an Edition or a Content-Item

type
required
string
Enum: "USER" "SYSTEM"

Indicates the type of Snapshot (USER or SYSTEM)

contentRoot
required
any

ID of the root Content-Item

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{}

Get Snapshot

Return the snapshot with the specified ID.

Authorizations:
oauth2
path Parameters
snapshotId
required
string
Example: 00112233445566778899aabb

Snapshot ID

Responses

Response samples

Content type
application/json
{}

List all publishing jobs for a Snapshot

Get a list of all Publishing Jobs for a Snapshot

Authorizations:
oauth2
path Parameters
snapshotId
required
string

Snapshot ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create Publishing-Job for Snapshot

Create a Publishing Job for a Snapshot

Authorizations:
oauth2
path Parameters
snapshotId
required
string
Example: 00112233445566778899aabb

Snapshot ID

Request Body schema: application/json
scheduledDate
required
string

Scheduled date & time for Publishing Job

Responses

Request samples

Content type
application/json
{
  • "scheduledDate": "2018-01-01T00:00:00Z"
}

Response samples

Content type
application/json
{}

Snapshot Facets

Add a search facet to a snapshot.

Authorizations:
oauth2
query Parameters
hubId
required
string
Example: hubId=00112233445566778899aabb

Hub ID

page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate,asc

Sort

Request Body schema: application/json
required
Array of objects

Fields to facet by

returnEntities
required
boolean

Return entities in the response

Responses

Request samples

Content type
application/json
Example
{
  • "fields": [
    ],
  • "returnEntities": false
}

Response samples

Content type
application/json
Example
{}

Webhooks

List Webhooks for a Hub

List all of the Webhooks created for a hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate&sort=asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Create Webhooks

Create a new Webhook for a Hub

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
label
required
string

Label for the Webhook

events
required
Array of strings (WebhookEvents) non-empty
Items Enum: "dynamic-content.snapshot.published" "dynamic-content.edition.scheduled" "dynamic-content.edition.unscheduled" "dynamic-content.edition.published" "dynamic-content.content-item.created" "dynamic-content.content-item.updated" "dynamic-content.content-item.assigned" "dynamic-content.content-item.workflow.updated"

List of events to register the Webhook against

handlers
required
Array of strings (WebhookHandlers) non-empty

List of URLs to receive the Webhook

active
required
boolean

Indicates if the Webhook should be fired

Array of objects

List of notifications

secret
required
string (WebhookSecret)

Shared secret between the handler and DC

Array of objects (WebhookHeaders)

List of additional headers

Array of objects (WebhookFilter) [ 0 .. 10 ] items
method
required
string (WebhookMethod)
Enum: "POST" "PUT" "PATCH" "DELETE"

Webhook HTTP method

object (WebhookCustomPayload)

Custom Payload

Responses

Request samples

Content type
application/json
{
  • "label": "Snapshot Updated Webhook",
  • "events": [
    ],
  • "active": true,
  • "notifications": [
    ],
  • "secret": "my-subscription-secret",
  • "headers": [
    ],
  • "filters": [
    ],
  • "method": "POST",
  • "customPayload": {
    }
}

Response samples

Content type
application/json
{}

Get a Webhook

Get a specified webhook

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

Responses

Response samples

Content type
application/json
{}

Update a Webhook

Update a specified webhook

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

Request Body schema: application/json
label
string

Label for the Webhook

events
Array of strings (WebhookEvents) non-empty
Items Enum: "dynamic-content.snapshot.published" "dynamic-content.edition.scheduled" "dynamic-content.edition.unscheduled" "dynamic-content.edition.published" "dynamic-content.content-item.created" "dynamic-content.content-item.updated" "dynamic-content.content-item.assigned" "dynamic-content.content-item.workflow.updated"

List of events to register the Webhook against

handlers
Array of strings (WebhookHandlers) non-empty

List of URLs to receive the Webhook

active
boolean

Indicates if the Webhook should be fired

Array of objects

List of notifications

secret
string (WebhookSecret)

Shared secret between the handler and DC

Array of objects (WebhookHeaders)

List of additional headers

Array of objects (WebhookFilter) [ 0 .. 10 ] items
method
string (WebhookMethod)
Enum: "POST" "PUT" "PATCH" "DELETE"

Webhook HTTP method

object (WebhookCustomPayload)

Custom Payload

Responses

Request samples

Content type
application/json
{
  • "label": "Snapshot Updated Webhook",
  • "events": [
    ],
  • "active": true,
  • "notifications": [
    ],
  • "secret": "my-subscription-secret",
  • "headers": [
    ],
  • "filters": [
    ],
  • "method": "POST",
  • "customPayload": {
    }
}

Response samples

Content type
application/json
{}

Delete a Webhook

Delete a specified webhook

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

Responses

List Requests for a Webhook

List all of the requests created for a webhook

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

Responses

Response samples

Content type
application/json
{}

Get a Webhook Request

Get a single webhook request

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

requestId
required
string
Example: 00112233445566778899aabb

Webhook Request ID

Responses

Response samples

Content type
application/json
{}

Preview Webhook Request

You can test your unsaved Webhook Subscription against an already sent Webhook Request

path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

requestId
required
string
Example: 00112233445566778899aabb

Webhook Request ID

Request Body schema: application/json

Unsaved Webhook Subscription

url
required
string (WebhookHandler)

Webhook handler URL

method
required
string (WebhookMethod)
Enum: "POST" "PUT" "PATCH" "DELETE"

Webhook HTTP method

secret
required
string (WebhookSecret)

Shared secret between the handler and DC

Array of objects (WebhookFilters) [ 0 .. 10 ] items
Array of objects (WebhookHeaders)

List of additional headers

object (WebhookCustomPayload)

Custom Payload

Responses

Request samples

Content type
application/json
{
  • "method": "POST",
  • "secret": "my-subscription-secret",
  • "filters": [
    ],
  • "headers": [
    ],
  • "customPayload": {
    }
}

Response samples

Content type
application/json
{
  • "previewState": "SUCCESS",
  • "request": {
    },
  • "evaluatedFilters": {
    },
  • "customPayload": {
    },
}

Resend a Webhook Request

Only available for Webhook Requests that have a requestState that is either "SUCCESS", "FAILED" or "PROCESSING_FAILED"

path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

webhookId
required
string
Example: 00112233445566778899aabb

Webhook ID

requestId
required
string
Example: 00112233445566778899aabb

Webhook Request ID

Request Body schema: application/json

Resend Webhook Request (empty object)

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{}

Workflows

It is possible to define a list of workflow states on a hub which will allow users to implement one or more rudimentary workflows. Each content item within the hub can have its status set to one of the workflow states defined within the hub.

In the interest of flexibility, the transitions between states are not validated. In other words, it is possible to transition a content item from any state into any other state.

For more information on adding a workflow to a content item see Assigning a workflow

Assigning a Workflow State

Assigning a Workflow State to a Content Item

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Request Body schema: application/json

Version to unarchive

version
required
integer

Version to unarchive

state
required
string

Workflow State ID

Responses

Request samples

Content type
application/json
{
  • "version": 1,
  • "state": "00112233445566778899aabb"
}

Response samples

Content type
application/json
{}

Create Workflow State

You may create up to 100 workflow states per hub.

The color property is an RGB value representing the color which should be used to display the workflow state within Dynamic Content.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

Request Body schema: application/json
label
required
string non-empty

Label

color
required
string/rgb\(\d{1,3},\d{1,3},\d{1,3}\)/

Color

Responses

Request samples

Content type
application/json
{
  • "label": "In Progress",
  • "color": "rgb(255,0,0)"
}

Response samples

Content type
application/json
{}

List Workflow States

List all of the workflow stats for a hub.

Authorizations:
oauth2
path Parameters
hubId
required
string
Example: 00112233445566778899aabb

Hub ID

query Parameters
page
integer

Page number

size
integer
Example: size=20

Page size

sort
string
Example: sort=createdDate&sort=asc

Sort paramter

Responses

Response samples

Content type
application/json
{}

Get Workflow State

Returns the workflow state with the specified ID.

Authorizations:
oauth2
path Parameters
workflowStateId
required
string
Example: 00112233445566778899aabb

Workflow State ID

Responses

Response samples

Content type
application/json
{}

Update Workflow State

Update the workflow state

Authorizations:
oauth2
path Parameters
workflowStateId
required
string
Example: 00112233445566778899aabb

Workflow State ID

Request Body schema: application/json
label
string non-empty

Label

color
string/rgb\(\d{1,3},\d{1,3},\d{1,3}\)/

Color

Responses

Request samples

Content type
application/json
{
  • "label": "Updated State",
  • "color": "rgb(255,255,255)"
}

Response samples

Content type
application/json
{}

Hierarchies Publish

Publish hierarchy nodes

To publish a hierarchy tree, you need to specify the root node and set getDescendants to true.

To publish a hierarchy branch, you need to specify the parent node and set getDesendants to true.

To publish a hierarchy node without any children and set getDescendants to false.

To publish multiple nodes individually supply their IDs, you cannot publish multiple nodes with getDescendants set to true.

Authorizations:
oauth2
Request Body schema: application/json
Array
hierarchyNodeIds
Array of arrays

ID's

getDescendants
boolean

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Hierarchies Snapshot

Snapshot hierarchy nodes

To snapshot a hierarchy tree, you need to specify the root node and set getDescendants to true.

To snapshot a hierarchy branch, you need to specify the parent node and set getDesendants to true.

To snapshot a hierarchy node without any children and set getDescendants to false.

To snapshot multiple nodes individually supply their IDs, you cannot snapshot multiple nodes with getDescendants set to true.

Authorizations:
oauth2
Request Body schema: application/json
hierarchyNodeIds
Array of arrays

ID's

getDescendants
boolean
type
string
Enum: "USER" "SYSTEM"

Indicates the type of Snapshot (USER or SYSTEM)

comment
string [ 1 .. 250 ] characters

Comment

Responses

Request samples

Content type
application/json
{
  • "hierarchyNodeIds": [
    ],
  • "getDescendants": false,
  • "type": "USER",
  • "comment": "This is a example snapshot."
}

Response samples

Content type
application/json
{}

Hierarchy Node

Get Child Hierarchy Nodes

Get a List of Child Hierarchy Nodes

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Get Parent Hierarchy Nodes

Get a List of Parent Hierarchy Nodes

Authorizations:
oauth2
path Parameters
contentItemId
required
string
Example: 00112233-4455-6677-8899-aabbccddeeff

Content Item ID

Responses

Response samples

Content type
application/json
{}

Locale Labels

Read Local Labels

Get a list of locals and labels

Authorizations:
oauth2

Responses

Response samples

Content type
application/json

Manage Locale Labels

Authorizations:
oauth2
Request Body schema: application/json

Hub

Array of objects (LocaleLabels)

An Array of objects containing a Locale and Label property

Array
locale
required
string non-empty

locale

label
required
string <= 12 characters

label

Responses

Request samples

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

Response samples

Content type
application/json