Managing documents using REST
The REST service allows you to manipulate the data of documents on Kentico websites. Send requests using the POST, PUT or DELETE HTTP method to the appropriate URL — append the resource paths described below to the base URL of your REST service.
The base URL of the Kentico REST service is <site domain name>/rest. For example, if your site is running at http://localhost/Kentico, use http://localhost/Kentico/rest as the base URL of the service.
Creating documents
HTTP method: POST
Resource format:
- /content/currentsite/<culture>/document/<alias path> - creates a new document in the given culture for the site running on the domain in the base URL.
- /content/site/<site name>/<culture>/document/<alias path> - creates a new document in the given culture on the specified site.
Use the alias path to identify the parent document under which you want to create the new document.
Set the name and other fields of the new document in the data of the POST request. Both XML and JSON formats are supported for the data.
Important:
- When creating new documents, always set the NodeClassID field. To find the NodeClassID value for a document type, get a document of the given type using the REST service and check the data or view the ClassID column in the CMS_Class database table.
- The request data must contain values for all fields that are set as required for the given document type.
- The service automatically sets the system fields of the new document (such as the ID and timestamp fields).
- Creating multiple documents in a single request is not supported. You need to send a separate POST request for each document.
Creating language versions of documents
You can use POST requests to create new language versions of existing documents:
- Use the culture code in the resource path to set the desired language.
- Identify the document using the alias path.
- Specify the NodeID of the existing document in the request data. Do NOT manually set a DocumentID for the new language version.
- Set any other required data for the document language version.
Examples
Creates a New service document (CMS.MenuItem type) under the Services document
XML |
JSON |
URL: ~/rest/content/currentsite/en-us/document/Services Data:
|
URL: ~/rest/content/currentsite/en-us/document/Services?format=json Data:
|
Creates a News article document (CMS.News type) under the News document
XML |
JSON |
URL: ~/rest/content/currentsite/en-us/document/News Data:
|
URL: ~/rest/content/currentsite/en-us/document/News?format=json** Data:
|
Creates a French version of the existing Services document on the sample Corporate site
XML |
JSON |
URL: ~/rest/content/site/CorporateSite/fr-fr/document/Services Data:
|
URL: ~/rest/content/site/CorporateSite/fr-fr/document/Services?format=json** Data:
|
Updating existing documents
HTTP method: PUT
Updating document data
Resource format:
- /content/currentsite/<culture>/document/<alias path> - updates the data of an existing document on the site running on the domain in the base URL.
- /content/site/<site name>/<culture>/document/<alias path> - updates the data of an existing document on the specified site.
Use the alias path to identify the document that you want to update. Updating multiple documents in a single request is not supported. You need to send a separate PUT request for each document.
Update the values of the document’s fields using the data of the PUT request. Both XML and JSON formats are supported for the data.
Updating document names
Many document types have a unique field that serves as the source for the document name (instead of the default DocumentName field). When updating the names of such document types, always set the new value for both the DocumentName field and the dedicated document type name field to ensure consistency.
Examples:
Updates the name of the Services document on the sample Corporate site
XML |
JSON |
URL: ~/rest/content/site/CorporateSite/en-us/document/Services Data:
|
URL: ~/rest/content/site/CorporateSite/en-us/document/Services?format=json Data:
|
Updates the title, release date and summary of a news article on the sample Corporate site
XML |
JSON |
URL: ~/rest/content/site/CorporateSite/en-us/document/News/New-Consulting-Services Data:
|
URL: ~/rest/content/site/CorporateSite/en-us/document/News/New-Consulting-Services?format=json Data:
|
Workflow actions
You can also use PUT requests to move documents through the workflow life cycle, or check documents in and out when using content locking.
Resource format:
- /content/currentsite/<culture>/<workflow action>/<alias path> - performs the given workflow action for the specified document on the site running on the domain in the base URL.
- /content/site/<site name>/<culture>/<workflow action>/<alias path> - performs the given workflow action for the given document on the specified site.
Workflow action |
Description |
publish |
Publishes the document. |
checkout |
Performs check-out for the document. The document is checked out under the user account specified by the REST request’s authentication information. |
checkin |
Performs check-in for the document. |
archive |
Archives the document. |
movetonextstep |
Moves the document to the next workflow step. |
movetopreviousstep |
Moves the document to the previous workflow step. |
Use the alias path to identify the document for which you want to perform the workflow action. Do not submit any data when sending workflow action requests.
URL example: ~/rest/content/currentsite/en-us/checkout/Home
Deleting documents
HTTP method: DELETE
Resource format:
- /content/currentsite/<culture>/document/<alias path> - deletes the given language version of the document for the site running on the domain in the base URL.
- /content/site/<site name>/<culture>/document/<alias path> - deletes the given language version of the document on the specified site.
Use the alias path to identify the document that you want to delete. Deleting multiple documents in a single request is not supported. You need to send a separate DELETE request for each document.
Document deletion parameters
When deleting documents via REST, you can append the following query string parameters to the request URL:
Parameter |
Value (default bold) |
Description |
deleteallcultures |
true/false |
Indicates if the request also deletes all language versions of the specified document. To delete all language versions of a document, append ?deleteallcultures=true to the request URL. |
destroyhistory |
true/false |
Indicates if the request also deletes the document’s version history. To delete the version history together with the document, append ?destroyhistory=true to the request URL. |
deleteproduct |
true/false |
Indicates if the request also deletes the e-commerce product associated with the specified product document. To delete e-commerce products along with documents, append ?deleteproduct=true to the request URL. |