Introduction

The Content Management API (CMA) is a part of the Penzle platform that enables developers to manage and deliver content to their applications and websites. The CMA provides an HTTP-based API that can be used to create, read, update, and delete content in a Penzle project. The API allows developers to access their content in a structured and organized manner, making it easy to retrieve and display the content in their applications.

The API also provides tools and features that enable developers to manage their content securely and efficiently, including versioning, webhooks, and access control. With the Penzle CMA, developers can integrate their content into any platform, regardless of the programming language or framework used.

An overview of the API

The Content Management API (CMA) is a RESTful API that follows the architectural constraints of the Representational State Transfer (REST) architectural style. The API allows you to create, retrieve, update, and delete content stored in Penzle using standard HTTP requests, such as GET, POST, PUT, and DELETE.

The base URL for the CMA is:

https://api.penzle.com

Authentication

To manage content stored in Penzle, authentication of your API requests is required. This is achieved by adding an API key to your requests that specifies your Penzle account and the particular project you would like to access. 

Content Management API (CMA) Key: This key is used to manage and manipulate content within your Penzle account.

More details about Penzle authentication can be found in our reference guide.

Entries

Entries are the basic building blocks of Penzle's content model and represent individual pieces of content in your project.

An entry can be anything from a blog post to a product description and include various fields, such as text, images, and numbers. Entries can have link fields that point to other entries or assets. You can learn more about links in our concept guide.

Entry

An Entry in Penzle represents a single piece of content in your project.

Create a new entry

POST /api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/entries

This endpoint allows you to create a new entry in a specified content type within your Penzle project. The endpoint takes as input a JSON object that defines the fields and values for the new entry.

It is important to note that creating an entry may result in content validation errors if the provided data does not match the defined fields for the specified content type. It is recommended to handle these errors appropriately in your code and validate the input data before making the API request.

Parameters

project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

language
string Nullable
The language code of the entry.
name
string Required
The name of the entry.
template
string Required
The data template that is associated with the entry.
parentId
string Nullable
The unique identifier of the parent entry, if applicable.
fields
object Nullable
The fields and their values that define the content of the entry.
base
array of objects Nullable
Data templates from inherited content models, if applicable.
slug
string Nullable
The URL-friendly identifier of the entry.

Responses

Delete a single entry

DELETE api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/entries/{ENTRY_ID}

This endpoint for deleting an entry allows you to delete a specific entry from your project by making a DELETE request. The endpoint requires the entry_id of the entry you want to delete. 

Parameters

id
string Required
The unique entry id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

Responses

Update a single entry

PUT api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/entries/{ENTRY_ID}

This endpoint allows you to modify an existing entry in your project by making a PUT request.

It is important to note that you can update a corresponding slug, so make sure to handle any potential impacts to your content URLs if you use slugs in your project.

Parameters

id
string($uuid) Required
A unique entry id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

language
string Nullable
The language code of the entry.
name
string Required
The name of the entry.
template
string Required
The data template that is associated with the entry.
parentId
string Nullable
The unique identifier of the parent entry, if applicable.
fields
object Nullable
The fields and their values that define the content of the entry.
base
array of objects Nullable
Data templates from inherited content models, if applicable.
slug
string Nullable
The URL-friendly identifier of the entry.

Responses

Assets

Assets in Penzle represent binary files that are stored in your project.

Assets can be of any file type, including images, videos, audio, and documents, and are commonly linked to entries to display media in your content. Each Asset can be localized by providing separate files for different locales. If an Asset is not localized, it will be available as a single file under the default locale.

Asset

An Asset in Penzle represents a single piece of the media item in your project.

Delete a single asset

DELETE api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/assets/{ASSET_ID}

This endpoint for deleting an asset allows you to delete a specific asset from your project by making a DELETE request. The endpoint requires the asset_id of the entry you want to delete. 

The deleted asset will be moved to the recycle bin, and it will be possible to restore it. 

Parameters

id
string Required
The unique asset id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

Responses

Upload a single asset

POST api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/assets/folder/{ASSET_ID}/file

You can upload a single asset by using the multipart/form-data file format to enter the asset's id. 

Parameters

id
string Required
The unique asset id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

parentId
string($uuid)
Parent folder id.
payload
string($binary)
description
string
Asset description.
language
string
Language code of the asset.

Responses

Update a single asset file content

PUT api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/assets/folder/{ASSET_ID}/file

This endpoint allows you to update the properties of an existing asset in your project. This endpoint requires you to provide the unique identifier of the asset you wish to update, along with the updated values for the asset's properties such as ParentId, Payload, Description, and Language.

Parameters

id
string Required
The unique asset id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

parentId
string($uuid)
Parent folder id.
payload
string($binary)
description
string
Asset description.
language
string
Language code of the asset.

Responses

Update a single asset parent folder

PUT api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/assets/folder/{ASSET_ID}

This endpoint allows you to change the parent folder of a specific asset. This can be useful if you want to reorganize your assets within your project's environment.

To update the parent folder, you need to provide the ID of the asset and the ID of the new parent folder. It is important to note that changing the parent folder of an asset will not change the asset's ID or other properties, only its location within the environment.

Parameters

id
string Required
The unique asset id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

id
string($uuid)
The folder id.
name
string
The folder asset name.
language
string
Language code of the asset.

Responses

Update assets parent folder

PUT api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/assets/move

This endpoint allows you to move multiple assets to a new parent folder. You can specify the assets to be moved by providing their unique IDs and the target parent folder ID. This operation can be useful for organizing your assets into different folders for better management.

Parameters

project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

itemIds
array($uuid)
List of ids.
folderId
string
Target parent folder Id.

Responses

Download a single asset

GET api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/assets/file/{ASSET_ID}/download

This endpoint allows you to retrieve a specific asset from your environment by its ID. This endpoint returns the binary data of the asset in the response body, which you can then save to your local machine. 

Parameters

id
string($uuid) Required
The unique asset id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

Responses

Forms

The Forms module in Penzle is a powerful tool for collecting data from users through online forms. It allows you to create custom forms, manage submissions, and view collected data, all within the Penzle platform.

Whether you need to gather feedback, conduct surveys, or collect information for lead generation, the Forms module has covered you.

Create a new form

POST api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/forms

This endpoint allows you to create a new form entry in a specified form type within your Penzle project. The endpoint takes as input a JSON object that defines the fields and values for the new form entry.

It is important to note that creating a form entry may result in form validation errors if the provided data does not match the defined fields for the specified content type. It is recommended to handle these errors appropriately in your code and validate the input data before making the API request.

Parameters

project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

language
string Nullable
The language code of the form entry.
name
string Required
The name of the form entry.
form
string Required
The type that is associated with the form entry.
fields
object Nullable
The fields and their values that define the content of the form entry.

Responses

Delete an existing form

DELETE api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/forms/{FORM_ID}

This endpoint for deleting an entry allows you to delete a specific form entry from your project by making a DELETE request. The endpoint requires the form_id of the form entry you want to delete. 

Parameters

id
string Required
The unique entry id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

Responses

Update an existing form

PUT api/project/{PROJECT_CODE_NAME}/environment/{ENVIRONMENT_CODE_NAME}/forms/{FORM_ID}

This endpoint allows you to modify an existing form entry in your project by making a PUT request.

 

Parameters

id
string($uuid) Required
A unique form entry id.
project
string Required
A unique identifier of your project.
environment string Required
A unique identifier of the environment within the project.

REQUEST BODY SCHEMA: application/json

language
string Nullable
The language code of the form entry.
name
string Required
The name of the form entry.
fields
object Nullable
The fields and their values that define the content of the form entry.

Responses

Users

The Users API allows you to manage the users within your project.

You can use this API to create, retrieve, update, and delete users, as well as to retrieve a list of all users in your project. The API also provides functionality for managing the roles and permissions of users, including granting and revoking access to specific resources.

With this API, you have the flexibility to manage user access and permissions for your project in a programmatic way, enabling you to automate user management tasks and integrate them with other systems.

User

A user is an individual who has registered on a system or platform to access its features and services.

Get permissions for a single user

GET api/users/{USER_ID}/permissions

This endpoint allows you to retrieve the permissions assigned to a specific user within your project. This endpoint returns information about the user's access level and the specific actions they are allowed to perform.

The user's unique identifier is used to make the API request and retrieve the relevant information. This endpoint is useful for managing user access and ensuring that users have the correct permissions for their roles within the project.

Parameters

id
string($uuid) Required
The user's unique identification

Responses

array
Returns permission collection for a specific user by unique identification.

 

Get roles for a single user

GET api/users/{USER_ID}/roles

This endpoint returns a list of roles assigned to a specific user. This endpoint is useful for retrieving information about the permissions and access of a single user.

Parameters

id
string($uuid) Required
The user's unique identification
page
integer($int32) Nullable
The page number of the response. Started from index 1.
pageSize
integer($int32) Nullable
The specific project you are working on.

Responses

RESPONSE SCHEMA: application/json

pageIndex
integer
The current page index of the paginated response.
pageSize
integer
The number of items to be returned per page.
totalCount
integer
The total number of items in the result set.
totalPages
integer
The total number of pages in the result set.
items
array of objects
An array of objects representing the roles.
hasPreviousPage
boolean
Indicates whether there is a previous page in the result set.
hasNextPage
boolean
Indicates whether there is a next page in the result set.

The items property of the response contains an array of objects representing the roles. Each role object has the following properties:

id
string
The unique identifier of the role.
name
string
The name of the role.
description
string
The description of the role.
enabled
boolean
Indicates whether the role is enabled or disabled.

Get a single user

GET api/users/{USER_ID}

This endpoint allows you to retrieve detailed information about a specific user. This endpoint is useful for viewing and managing user information, as well as for auditing and security purposes.

Parameters

id
string($uuid) Required
The user's unique identification

Responses

RESPONSE SCHEMA: application/json

id
string
The user ID.
userName
string
The username of the user.
email
string
The email address of the user.
phoneNumber
string
The phone number of the user.
firstName
string
The first name of the user.
lastName
string
The last name of the user.
status
bool
The status of the user represents whether the user is enabled or disabled. The default is true.
comment
string
The short comment or note of the user.
clientLanguage
string
The user language code.
defaultContentLanguage
string
The user's default content language. The default is "en-US".
streetAddress
string
The user's street address.
stateOrProvince
string
The user state or province.
country
string
The user country.
city
string
The user city.
office
string
The user office place.
postalCode
string
The user's postal code.
officePhone
string
The user's office phone.

Reset password for a single user

PUT api/users/{USER_EMAIL}/reset-password

This endpoint allows you to reset the password of a specific user within your system. Upon successful execution, the user will get an email with detailed instructions for a password reset. 

Parameters

email
string Required
The user's email address.

Responses

Assign role to a single user

PATCH /api/users/{USER_ID}/roles/{ROLE_NAME}/assign

This endpoint assigns a specific role to a single user in your platform. This endpoint requires a user ID and the role ID to be specified as input parameters.

The role assigned to the user will determine their level of access and privileges within the platform. Using this endpoint, you can grant or revoke access to specific features and functionalities for individual users as needed. This endpoint can be useful for managing user permissions and ensuring proper authorization for different users in your platform.

Parameters

id
string Required
The user ID.
role
string Required
The role name.

Responses

Revoke role for a single user

PATCH /api/users/{USER_ID}/roles/{ROLE_NAME}/revoke

This endpoint allows removing a specific role from a user in the system. After revoking a role, the user will no longer have access to any permissions or privileges associated with that role. This endpoint is useful for fine-tuning a user's access and ensuring that only the necessary roles are assigned to a user's account.

Parameters

id
string Required
The user ID.
role
string Required
The role name.

Responses

Update user

PUT /api/users

This endpoint allows you to modify the details of an existing user in your system. This includes updating the user's personal information, such as their name and email address, and any roles or permissions assigned to the user.

Parameters

REQUEST BODY SCHEMA: application/json

id
string Required
The user ID.
userName
string Required
The username of the user.
email
string Required
The email address of the user.
phoneNumber
string Nullable
The phone number of the user.
firstName
string Required
The first name of the user.
lastName
string Required
The last name of the user.
status
bool Nullable
The status of the user represents whether the user is enabled or disabled. The default is true.
comment
string Nullable
The short comment or note of the user.
clientLanguage
string Nullable
The user language code.
defaultContentLanguage
string Nullable
The user's default content language. The default is "en-US".
streetAddress
string Nullable
The user's street address.
stateOrProvince
string Nullable
The user state or province.
country
string Nullable
The user country.
city
string Nullable
The user city.
office
string Nullable
The user office place.
postalCode
string Nullable
The user's postal code.
officePhone
string Nullable
The user's office phone.

Responses

Create a new user

POST /api/users

This endpoint allows you to create a new user account in your project. After a new user is successfully created, they will receive an email to activate their account. The new user will have no permissions or roles assigned to them until an administrator explicitly grants them.

Parameters

REQUEST BODY SCHEMA: application/json

userName
string Required
The username of the user.
email
string Required
The email address of the user.
phoneNumber
string Nullable
The phone number of the user.
firstName
string Required
The first name of the user.
lastName
string Required
The last name of the user.
status
bool Nullable
The status of the user represents whether the user is enabled or disabled. The default is true.
comment
string Nullable
The short comment or note of the user.
clientLanguage
string Nullable
The user language code.
defaultContentLanguage
string Nullable
The user's default content language. The default is "en-US".
streetAddress
string Nullable
The user's street address.
stateOrProvince
string Nullable
The user state or province.
country
string Nullable
The user country.
city
string Nullable
The user city.
office
string Nullable
The user office place.
postalCode
string Nullable
The user postal code.
officePhone
string Nullable
The user office phone.

Responses

User collection

The User Collection is a comprehensive collection of all the users within a given system. It includes information about each user, such as their name, email address, phone number, and more. The collection also provides methods for managing users, such as creating new users, updating existing users, and deleting users.

Get user collection

GET /api/users

This endpoint retrieves a list of users.

Parameters

keyword
string Nullable
The free-text search term is used to search for users by matching it to their username, email, first name, last name, or phone number.
page
integer($int32) Nullable
The page number of the response. Started from index 1.
pageSize
integer($int32) Nullable
The specific project you are working on.

Responses

RESPONSE SCHEMA: application/json

pageIndex
integer
The current page index of the paginated response.
pageSize
integer
The number of items to be returned per page.
totalCount
integer
The total number of items in the result set.
totalPages
integer
The total number of pages in the result set.
items
array of objects
An array of objects representing the users.
hasPreviousPage
boolean
Indicates whether there is a previous page in the result set.
hasNextPage
boolean
Indicates whether there is a next page in the result set.

The items property of the response contains an array of objects representing the users. Each role object has the following properties:

id
string
The user ID.
userName
string
The username of the user.
email
string
The email address of the user.
phoneNumber
string
The phone number of the user.
firstName
string
The first name of the user.
lastName
string
The last name of the user.
status
bool
The status of the user represents whether the user is enabled or disabled. The default is true.
comment
string
The short comment or note of the user.
clientLanguage
string
The user language code.
defaultContentLanguage
string
The user's default content language. The default is "en-US".
streetAddress
string
The user's street address.
stateOrProvince
string
The user state or province.
country
string
The user country.
city
string
The user city.
office
string
The user office place.
postalCode
string
The user's postal code.
officePhone
string
The user's office phone.

Roles

Roles are a way of grouping together sets of permissions that can be assigned to users. They allow you to manage user access to specific areas of the Penzle platform in a flexible and scalable way.

Role

A role is a collection of permissions that defines what an individual user or group of users is allowed to do within an organization.

Get permission collection for a single role

GET api/roles/{ROLE_ID}/permissions

This endpoint returns a collection of permissions associated with a specific role. It can then be used to determine the actions that a user with that role can perform within the application. The response will contain information about each permission, including the permission's unique identifier and description.

Parameters

id
string($uuid) Required
The user's unique identification

Responses

RESPONSE SCHEMA: application/json

array
Returns permission collection for a specific role by unique identification.

 

Update a single role

PUT api/roles/{ROLE_ID}

Parameters

id
string Required
The role ID.

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the role.
description
string Required
The short description or note of the role.
enabled
string Nullable
The status of the user represents whether the role is enabled or disabled. The default is disabled.

Responses

Delete an existing role

DELETE api/roles/{ROLE_ID}

This endpoint allows you to remove a role from the system. When a role is deleted, all associated permissions and user assignments for that role will be removed as well. Once the role is deleted, it cannot be retrieved or restored. Use this endpoint with caution.

Parameters

id
string Required
The unique role id.

Responses

Create a new role

POST api/roles

This endpoint allows you to create a new role within your system.

Parameters

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the role.
description
string Required
The short description or note of the role.
enabled
string Nullable
The status of the user represents whether the role is enabled or disabled. The default is disabled.

Responses

Get user collection for a single role

GET api/roles/{ROLE_ID}/users

This endpoint returns a collection of users who have been assigned a specific role.

Parameters

id
string($uuid) Required
The role's f unique identification
keyword
string Nullable
The free-text search term is used to search for users by matching it to their username, email, first name, last name, or phone number.
orderBy
string Nullable
The filed name for the sort direction.
direction
string($uuid) Nullable
The sort direction of response like ASC or DESC.
page
integer($int32) Nullable
The page number of the response. Started from index 1.
pageSize
integer($int32) Nullable
The specific project you are working on.

Responses

RESPONSE SCHEMA: application/json

pageIndex
integer
The current page index of the paginated response.
pageSize
integer
The number of items to be returned per page.
totalCount
integer
The total number of items in the result set.
totalPages
integer
The total number of pages in the result set.
items
array of objects
An array of objects representing the users.
hasPreviousPage
boolean
Indicates whether there is a previous page in the result set.
hasNextPage
boolean
Indicates whether there is a next page in the result set.

The items property of the response contains an array of objects representing the users. Each role object has the following properties:

id
string
The user ID.
userName
string
The username of the user.
email
string
The email address of the user.
phoneNumber
string
The phone number of the user.
firstName
string
The first name of the user.
lastName
string
The last name of the user.
status
bool
The status of the user represents whether the user is enabled or disabled. The default is true.
comment
string
The short comment or note of the user.
clientLanguage
string
The user language code.
defaultContentLanguage
string
The user's default content language. The default is "en-US".
streetAddress
string
The user's street address.
stateOrProvince
string
The user state or province.
country
string
The user country.
city
string
The user city.
office
string
The user office place.
postalCode
string
The user's postal code.
officePhone
string
The user's office phone.

Get a single role

GET api/roles/{ROLE_ID}

This endpoint allows you to retrieve information about a specific role in your system.

Parameters

id
string($uuid) Required
The roles' unique identification

Responses

RESPONSE SCHEMA: application/json

id
string
The unique identifier of the role.
name
string
The name of the role.
description
string
The description of the role.
enabled
boolean
Indicates whether the role is enabled or not.

Role collection

The Role collections refer to the set of roles that are created in the system and assigned to users.

Get collection of roles

GET api/roles

This endpoint returns a list of roles available in the system.

Parameters

keyword
string Nullable
The free-text search term is used to search for roles by matching it to their name or description.
orderBy
string Nullable
The filed name for the sort direction.
direction
string($uuid) Nullable
The sort direction of response like ASC or DESC.
page
integer($int32) Nullable
The page number of the response. Started from index 1.
pageSize
integer($int32) Nullable
The specific project you are working on.

Responses

RESPONSE SCHEMA: application/json

pageIndex
integer
The current page index of the paginated response.
pageSize
integer
The number of items to be returned per page.
totalCount
integer
The total number of items in the result set.
totalPages
integer
The total number of pages in the result set.
items
array of objects
An array of objects representing the roles.
hasPreviousPage
boolean
Indicates whether there is a previous page in the result set.
hasNextPage
boolean
Indicates whether there is a next page in the result set.

The items property of the response contains an array of objects representing the roles. Each role object has the following properties:

id
string
The unique identifier of the role.
name
string
The name of the role.
description
string
The description of the role.
enabled
boolean
Indicates whether the role is enabled or not.

API tokens

API tokens are a type of authentication mechanism used to grant access to the content delivery and content management functions of a CMS. CMS API tokens are typically created and managed through an authentication and authorization system, which can provide developers with greater control over who has access to their CMS, and what actions they are allowed to perform.

Content delivery API tokens enable read-only access to the CMS content, while content management API tokens enable read-write access. By using CMS API tokens, developers can create secure, customized workflows for managing and delivering content to their website or application, and can ensure that sensitive data is protected and that only authorized users have access to the CMS.

Revoke token for a project

PATCH /api/security/{PROJECT_ID}/token/{TOKEN_ID}/revoke

This endpoint is used to revoke an API token for a specific project.

Parameters

projectId
string($uuid) Required
The project's unique identification.
tokenId
string($uuid) Required
The token unique identification.

Responses

Update an API token

PATCH api/security/{PROJECT_ID}/token

The Update API Token endpoint allows for modifying an existing API token.

Parameters

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the API token.
description
string Required
A brief description of the API token.
environments
array of strings Required
An array of environment identifiers associated with the API token.

Responses

Create an API token

POST api/security/{PROJECT_ID}/token

This endpoint allows you to generate a new API token for your project. This token can be used to authenticate API requests and grant access to specific project resources.

Parameters

id
string($uuid) Required
The project's unique identification

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the API token.
description
string Required
A brief description of the API token.
projectId
string Required
The unique identifier of the project associated with the API token.
environments
array of strings Required
An array of environment identifiers associated with the API token.
now
string Required
The current date and time in ISO format.
expiredAt
string Required
The date and time when the API token will expire, in ISO format.
scope
object Required
The scope of the API token, including a name and an ID.

Responses

Get token collection

GET api/security/{PROJECT_ID}/token

This endpoint returns a list of API tokens associated with the specified project, identified by its ID.

Parameters

id
string($uuid) Required
The project's unique identification
keyword
string Nullable
The free-text search term is used to search for tokens by matching it to their name or description.
orderBy
string Nullable
The filed name for the sort direction.
direction
string($uuid) Nullable
The sort direction of response like ASC or DESC.
page
integer($int32) Nullable
The page number of the response. Started from index 1.
pageSize
integer($int32) Nullable
The specific project you are working on.

Responses

Environments

Environments can refer to different spaces for content creation, such as development, review, and publishing. Each environment can have its own unique set of content, configurations, and settings, allowing teams to work on and manage content in a controlled and isolated manner before it is published to a production environment.

Environment collection

The Environment collection refers to a group of environments within a project. An environment can be a development, staging, or production environment, and each environment can have its own specific configuration, such as a different set of content models or content.

Get all project environments

GET api/environments

This endpoint returns a collection of all environments for a specific project.

Responses

codeName
string Required
The code name of the environment.
description
string Required
The description of the environment.
projectId
string Required
The unique identifier of the project that the environment belongs to.
basedOnId
string Required
The unique identifier of the environment to base the new environment on.

Environment

The "Environment" refers to a specific instance or version of a project that is isolated from other environments, such as development, staging, and production.

Delete an environment

DELETE api/environments/{ENVIRONMENTS_ID}

This endpoint allows for the deletion of a specific environment within a project. Upon successful execution, the environment will be removed from the project and all its associated data will be deleted. This action is irreversible, so it is important to be cautious when making a request to this endpoint.

Parameters

id
string Required
The unique ID.

Responses

Create a new environment

POST api/environments

The endpoint for creating a new environment allows the user to create a new environment within a project.

Parameters

REQUEST BODY SCHEMA: application/json

codeName
string Required
The code name of the environment.
description
string Required
The description of the environment.
projectId
string Required
The unique identifier of the project that the environment belongs to.
basedOnId
string Required
The unique identifier of the environment to base the new environment on.

Responses

Projects

A project refers to a set of content, data, and functionality that is organized and managed together. It is a unit of work in a content management system (CMS) that is used to store, manage, and organize data, content, and other digital assets.

Project

A project refers to a set of content, data, and functionality that is organized and managed together. It is a unit of work in a content management system (CMS) that is used to store, manage, and organize data, content, and other digital assets.

Get language collection for a single project

GET api/projects/{PROJECT_ID}/languages

This endpoint retrieves a collection of supported languages for a single project.

Parameters

PROJECT_ID
string Required
The unique identifier of the project to retrieve the language collection for.

Responses

name
string
The name of the language.
code
string
The code of the language.

Get a single project

GET /api/projects/{PROJECT_ID}

This endpoint retrieves a single project based on the provided project ID.

Parameters

PROJECT_ID
string Required
The unique identifier of the project to retrieve.

Responses

id
string
The unique identifier of the project.
name
string
The name of the project.
codeName
string
The code name of the project.
description
string
A description of the project.
visitorCultureId
string
The unique identifier of the visitor culture for the project.
defaultContentCultureId
string
The unique identifier of the default content culture for the project.
status
boolean
The status of the project, indicating whether it is active or inactive.

Delete existing culture on a single project

DELETE api/projects/{PROJECT_ID}/culture/{CULTURE_ID}

This endpoint allows you to delete an existing culture on a single project. Once deleted, the culture will no longer be available for use in the project.

Parameters

PROJECT_ID
string Required
The ID of the project in which the culture will be deleted.
CULTURE_ID
string Required
The ID of the culture that will be deleted from the project.

Responses

Update culture on a single project

PUT api/projects/{PROJECT_ID}/culture

This endpoint allows you to update the culture of a single project.

Parameters

PROJECT_ID
string Required
The ID of the project you want to update the culture for.

REQUEST BODY SCHEMA: application/json

cultureId
string Required
The ID of the culture you want to set as the project's culture.
fallbackCultureId
string Required
The ID of the culture you want to set as the project's fallback culture.

Responses

Create culture for a single project

POST api/projects/{PROJECT_ID}/culture

This endpoint allows you to create a new culture for a specific project.

Parameters

PROJECT_ID
string Required
The unique identifier of the project.

REQUEST BODY SCHEMA: application/json

cultureId
string Required
The identifier of the culture being created.
fallbackCultureId
string Required
The identifier of the fallback culture for the new culture.

Responses

Delete an existing project

DELETE /api/projects/{PROJECT_ID}

The endpoint is used to delete an existing project by ID.

Parameters

PROJECT_ID
string Required
The ID of the project to be deleted.

Responses

Update a single project

PUT api/projects/{PROJECT_ID}

This endpoint allows you to update an existing project with the specified ID.

Parameters

PROJECT_ID
string Required
The unique identifier of the project to be updated.

REQUEST BODY SCHEMA: application/json

name
string Nullable
The new name of the project.
codeName
string Nullable
The new code name of the project.
description
string Nullable
The new description of the project.
visitorCultureId
string Nullable
The new visitor culture identifier of the project.
defaultContentCultureId
string Nullable
The new default content culture identifier of the project.
status
boolean Nullable
The new status of the project.

Responses

Create a new project

POST api/projects

This endpoint allows users to create a new project within the system. When a new project is created, the system generates a unique identifier for the project and returns it in the response.

Parameters

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the project.
codeName
string Required
The code name of the project.
description
string Required
The description of the project.
visitorCultureId
string Required
The unique identifier of the visitor culture associated with the project.
defaultContentCultureId
string Required
The unique identifier of the default content culture associated with the project.
status
boolean Required
The status of the project, representing whether it is enabled or disabled.

Responses

Project collection

The Project collection is a set of projects stored in the system.

Get all projects

GET api/projects

This endpoint returns a list of all projects associated with your account, including relevant information such as the project ID, name, code name, description, status, and default environment information.

Parameters

keyword
string
The generic keyword to be used for searching.
pageSize
integer($int32)
The page size of response. Default value id 10.
page
integer($int32) Required
The page number of response. Started from index 1.
orderBy
string
The sort direction of response.
direction
string
The sort direction of response like asc or desc

Responses

id
string
A unique identifier for the project.
name
string
The name of the project.
codeName
string
The code name of the project.
description
string
The description of the project.
status
boolean
The status of the project (active or inactive).
defaultEnvironment
object
The default environment of the project, including:
id string A unique identifier for the environment.
name string The name of the environment.
createdAt string The date and time the environment was created.
basedOn string The environment the current environment is based on.
status integer The status of the environment (active or inactive).
isDefault boolean Whether the environment is the default environment for the project.

SMTP

An SMTP (Simple Mail Transfer Protocol) endpoint that provides a way to manage configuration for SMTP.

Get SMTP settings

GET api/smtp

This endpoint returns the SMTP settings for the system.

Responses

username
string
The username for the SMTP settings.
sender
string
The sender email for the SMTP settings.
senderName
string
The name associated with the sender email for the SMTP settings.
host
string
The host for the SMTP settings.
port
integer
The port number for the SMTP settings.
isSsl
boolean
Indicates if SSL is enabled for the SMTP settings.
isGlobalConfiguration
boolean
Indicates if the SMTP settings are global or specific to the environment.

Update SMTP settings

PUT api/smtp

This endpoint allows you to update the SMTP settings for your account.

Parameters

REQUEST BODY SCHEMA: application/json

username
string Required
The username for the SMTP account.
sender
string Required
The email address to use as the sender of the messages.
senderName
string Required
The name to display as the sender of the messages.
host
string Required
The hostname or IP address of the SMTP server to use for sending messages.
port
integer Required
The port number of the SMTP server to use for sending messages.
isSsl
boolean Required
Indicates whether to use SSL when connecting to the SMTP server.
isGlobalConfiguration
boolean Required
Indicates whether to apply the SMTP configuration globally or only for specific projects and/or environments.

Responses

Tags

Tags are keywords or labels that can be assigned to various resources in your system, such as entries, or assets, to help classify and organize them. 

Delete a single tag

DELETE api/tags/{TAG_ID}

This endpoint allows you to delete a single tag using the tag's ID.

Parameters

id
string Required
The unique identifier of the tag to be deleted.

Responses

Create a new tag

POST api/tags

This endpoint allows you to create a new tag.

Parameters

REQUEST BODY SCHEMA: application/json

value
string Required
The value of the tag you want to create.

Responses

Get tags

GET api/tags

This API endpoint retrieves a collection of tags.

Parameters

keyword
string
The generic keyword to be used for searching.
excludedIds
array[string]
Array of ids you want to filter out of the results.
pageSize
integer ($int32)
The page size of the response. The default value is 10.
page
integer ($int32) Required
The page number of the response. It starts from index 1.
orderBy
string
The sort direction of the response.
direction
string
The sort direction of the response, either "asc" or "desc".

Responses

pageIndex
integer Required
The index of the page in the response.
pageSize
integer Required
The size of the page in the response.
totalCount
integer Required
The total count of items in the response.
totalPages
integer Required
The total number of pages in the response.
items
array Required
The array of items in the response. Each item in the array has the following properties:
id
string Required
The unique id of the item.
name
string Required
The name of the item.

Cultures

Cultures provide a way for software or web applications to access and manipulate culture-related data. This can include information on languages, regions, time zones, date and time formatting, currency, and other cultural settings that impact how content is displayed and interpreted in different contexts.

Get a single culture

GET api/cultures/{CULTURE_ID}

This endpoint is used to retrieve a single culture based on its unique identifier.

Parameters

CULTURE_ID
string Required
The unique identifier of the culture.

Responses

id
string Required
The unique identifier for the culture.
name
string Required
The full name of the culture.
shortName
string Required
The abbreviated name of the culture.
code
string Required
The code for the culture, in the format `{language code}-{country code}`.
dictionary
string Required
The name of the dictionary used by the culture.
isUICulture
boolean Required
Indicates whether the culture is used for the user interface.

Deletes a single culture

DELETE api/cultures/{CULTURE_ID}

This endpoint allows you to delete a single culture.

Parameters

CULTURE_ID
string Required
The unique identifier of the culture you want to delete.

Responses

Update culture

PUT api/cultures/{CULTURE_ID}

This endpoint allows you to update a culture's information.

Parameters

CULTURE_ID
string Required
The unique ID of the culture you want to update.

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the culture.
shortName
string Required
The short name of the culture.
code
string Required
The code of the culture.
dictionary
string Required
The dictionary of the culture.
isUICulture
boolean Required
Indicates if the culture is a user interface culture.

Responses

Create a new culture

POST api/cultures

This endpoint allows you to create a new culture.

Parameters

REQUEST BODY SCHEMA: application/json

name
string Required
The name of the culture.
shortName
string Required
The short name of the culture.
code
string Required
The code of the culture.
dictionary
string Required
The dictionary of the culture.
isUICulture
bool Required
Indicates whether the culture is a UI culture.

Responses

Get all cultures

GET api/cultures

This endpoint returns a list of cultures.

Responses

name
string
The name of the culture.
shortName
string
The short name of the culture.
code
string
The code of the culture.
dictionary
string
The dictionary of the culture.
isUICulture
boolean
Indicates if the culture is a UI culture.
id
string
The unique identifier of the culture.