Documentation for Heartcore Content Management APIs
This is the management API for creating, updating and deleting content, media, languages, relations, members and member groups. It also allows you to retrieve content drafts as well as Content Types, Media Types and Member Types.
Common for the Content Management API is that you must be authenticated and authorized when performing any action against the endpoints listed below. This means that you must supply a Bearer Token via an Authorization header or an API Key via an Authorization or Api-Key header.
Member endpoints for retrieving, creating, updating and deleting. We also expose endpoints for adding a member to member group and removing a member group from a member.
Authentication is required for this API. You must supply a Bearer Token via an Authorization header or an API Key via an Authorization or Api-Key header.
Errors
If an error occours you will receive a HTTP status code along with an API error code and an error message in the response body.
Status Code
Error Code
Message
400
BadRequest
Body cannot be empty.
401
Unauthorized
Authorization has been denied for this request.
403
Forbidden
You are not authorized to access the given resource.
404
NotFound
Language with id '{id}' could not be found.
409
LanguageForCultureAlreadyExist
The language '{isoCode}' already exists.
422
ValidationFailed
Validation error occured when trying to save or update the language.
500
InternalServerError
Internal server error.
JSON example:
{
"error": {
"code": "Unauthorized",
"message": "Authorization has been denied for this request."
}
}
Get languages
Gets all languages available for content creation.
URL: /language
Method: GET
Permissions required : Access to Settings section of the Umbraco Backoffice
Authentication is required for this API. This means that you must supply a Bearer Token via an Authorization header. Alternatively, you can supply an API Key via an Authorization or Api-Key header.
Permissions
In addition to the specific permissions listed under each endpoint, all requests requires:
Access to the Content Section of the Umbraco Backoffice and
That the content being accessed is beneath the users start node configured in Umbraco
Errors
If an error occours you will receive a HTTP status code along with an API error code and an error message in the response body.
Status Code
Error Code
Message
400
BadRequest
Body cannot be empty.
401
Unauthorized
Authorization has been denied for this request.
403
Forbidden
You are not authorized to access the given resource.
404
NotFound
Content with id '{id}' could not be found.
422
ValidationFailed
Validation error occured when trying to save or update the content item.
500
InternalServerError
Internal server error.
JSON example:
{
"error": {
"code": "Forbidden",
"message": "Authorization has been denied for this request."
}
}
Get root content
Get all content at the root of the tree, which the authorized user has access to according to the 'Start node'-permissions.
Get a list of children (content items) by parent GUID ID. Includes all language variations per content item.
URL: /content/{id}/children
Method: GET
Query Strings
?page={integer=1}
?pageSize={integer=10}
Permissions required : Browse Node
Success Response
Code: 200
Content Example:
{
"_totalItems": 3,
"_totalPages": 1,
"_page": 1,
"_pageSize": 10,
"_links": {
"self": {
"href": "https://api.umbraco.io/content/8007e923-e62a-4ac1-a33f-caf3052582f4/children?page=1"
},
"content": [
{
"href": "https://api.umbraco.io/content/e0c5f0e5-c1f0-4422-9ac0-6dbb536e8eb5"
},
{
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7"
},
{
"href": "https://api.umbraco.io/content/af3e08fc-fb90-4c78-b11c-c1a0cf43bd31"
}
]
},
"_embedded": {
"content": [
{
"_currentVersionState": {
"$invariant": "PUBLISHED"
},
"name": {
"$invariant": "This will be great"
},
"_updateDate": {
"$invariant": "2019-10-07T11:52:31.143Z"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:52:31.143Z",
"_id": "e0c5f0e5-c1f0-4422-9ac0-6dbb536e8eb5",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/e0c5f0e5-c1f0-4422-9ac0-6dbb536e8eb5"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/e0c5f0e5-c1f0-4422-9ac0-6dbb536e8eb5/children"
},
"publish": {
"href": "https://api.umbraco.io/content/e0c5f0e5-c1f0-4422-9ac0-6dbb536e8eb5/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/e0c5f0e5-c1f0-4422-9ac0-6dbb536e8eb5/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "This will be great"
},
"categories": {
"$invariant": [
"great",
"umbraco"
]
},
"excerpt": {
"$invariant": "Proin eget tortor risus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Vivamus magna justo, lacinia eget consectetur sed"
},
"bodyText": {
"$invariant": null
}
},
{
"_currentVersionState": {
"$invariant": "PUBLISHED"
},
"name": {
"$invariant": "Another one"
},
"_updateDate": {
"$invariant": "2019-10-07T11:53:09.653Z"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:53:09.653Z",
"_id": "041067a0-74f5-4d03-92af-40c3c0aa13e7",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/children"
},
"publish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "Another one"
},
"categories": {
"$invariant": [
"cg16",
"codegarden",
"umbraco"
]
},
"excerpt": {
"$invariant": "Donec sollicitudin molestie malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. Sed porttitor lectus nibh."
},
"bodyText": {
"$invariant": "<p>Donec sollicitudin molestie malesuada. Proin eget tortor risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.</p>\n<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Sed porttitor lectus nibh.</p>\n<p>Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada. Sed porttitor lectus nibh. Nulla quis lorem ut libero malesuada feugiat.</p>"
}
},
{
"_currentVersionState": {
"$invariant": "PUBLISHED"
},
"name": {
"$invariant": "My Blog Post"
},
"_updateDate": {
"$invariant": "2019-10-07T11:54:00.657Z"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:54:00.657Z",
"_id": "af3e08fc-fb90-4c78-b11c-c1a0cf43bd31",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/af3e08fc-fb90-4c78-b11c-c1a0cf43bd31"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/af3e08fc-fb90-4c78-b11c-c1a0cf43bd31/children"
},
"publish": {
"href": "https://api.umbraco.io/content/af3e08fc-fb90-4c78-b11c-c1a0cf43bd31/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/af3e08fc-fb90-4c78-b11c-c1a0cf43bd31/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "My Blog Post"
},
"categories": {
"$invariant": [
"demo",
"umbraco",
"starterkit",
"lorem ipsum"
]
},
"excerpt": {
"$invariant": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla quis lorem ut libero malesuada feugiat. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada."
},
"bodyText": {
"$invariant": "<div class=\"anyipsum-output\">\n<p>Bacon ipsum dolor amet alcatra pig cow sirloin. Jerky pig kielbasa, pork chop beef spare ribs sirloin. Ham hock sausage biltong meatball pastrami capicola boudin alcatra chicken. Salami kielbasa short ribs shoulder brisket tri-tip, cupim meatball pork chop capicola. Kielbasa short ribs strip steak t-bone frankfurter. Pancetta kevin salami, turducken landjaeger sausage pig.</p>\n<p>Sausage tongue doner short ribs tri-tip pork belly. Kielbasa swine bresaola salami pork short ribs ribeye jerky ground round boudin burgdoggen. Beef ribs ribeye flank biltong cupim andouille beef kielbasa meatloaf ham sausage. Pancetta chuck picanha short loin pork t-bone ball tip, boudin buffalo biltong chicken kevin.</p>\n<p>Salami cupim sirloin turducken pancetta ground round spare ribs. Ham hock capicola prosciutto salami meatball alcatra. Ribeye t-bone pancetta burgdoggen, pork chop beef ribs cupim meatball. Tail pork belly leberkas, frankfurter burgdoggen beef ribs bresaola fatback turducken flank picanha filet mignon. Pig bresaola pancetta venison cow.</p>\n<p>Ham drumstick cupim pork belly t-bone shoulder. Prosciutto flank ham filet mignon shank. Fatback shank capicola, buffalo pig bacon kevin corned beef jerky turkey pork belly venison. Pork belly drumstick beef ribs corned beef. Short loin meatloaf capicola spare ribs chuck burgdoggen. Shankle ground round cow, biltong hamburger t-bone leberkas turkey. Swine leberkas kielbasa hamburger sirloin bacon.</p>\n<p>Cow turducken buffalo alcatra filet mignon kevin pastrami tail. Jerky short loin boudin pork chop. Corned beef tri-tip picanha pork pig boudin capicola sirloin flank. Ham hock cupim prosciutto fatback.</p>\n</div>\n<div class=\"anyipsum-form-header\">Does your lorem ipsum text long for something a little meatier? Give our generator a try… it’s tasty!</div>"
}
}
]
}
}
Create content
Create a new content item with one or more language variations.
All newly created content will be DRAFT by default. If you want to publish it you will need to issue a publish request as well.
URL: /content
Method: POST
Permissions required : Create
Request
In this example only one language exists, so the properties are marked with $invariant in the create request. If multiple languages exists the culture for each of the languages would be defined for each of the properties - example: "name": { "en-US": "Another one", "da-DK": "Endnu en" }.
If a property uses a multinode treepicker editor, the value should be a comma-separated list of Umbraco UDI Identifiers. In the example below, the UDI Identifiers are referencing content items. To learn more see the UDI Identifiers documentation.
{
"name": {
"$invariant": "Another one"
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "Another one"
},
"categories": {
"$invariant": [
"cg16",
"codegarden",
"umbraco"
]
},
"excerpt": {
"$invariant": "Donec sollicitudin molestie malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. Sed porttitor lectus nibh."
},
"multinodeTreePicker": {
"$invariant": "umb://document/067c7c926709487ab01be84168b333cf,umb://document/8a4dec90cf394028a743eae0729d47ba,umb://document/5fdd887233394a3492000bbf74e3b005"
},
"bodyText": {
"$invariant": "<p>Donec sollicitudin molestie malesuada. Proin eget tortor risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.</p>\n<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Sed porttitor lectus nibh.</p>\n<p>Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada. Sed porttitor lectus nibh. Nulla quis lorem ut libero malesuada feugiat.</p>"
}
}
Success Response
Code: 201
Content Example:
{
"_currentVersionState": {
"$invariant": "DRAFT"
},
"name": {
"$invariant": "Another one"
},
"_updateDate": {
"$invariant": "2019-10-10T11:19:04.3988745+00:00"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:53:09.653Z",
"_id": "041067a0-74f5-4d03-92af-40c3c0aa13e7",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/children"
},
"publish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "Another one"
},
"categories": {
"$invariant": [
"cg16",
"codegarden",
"umbraco"
]
},
"excerpt": {
"$invariant": "Donec sollicitudin molestie malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. Sed porttitor lectus nibh."
},
"bodyText": {
"$invariant": "<p>Donec sollicitudin molestie malesuada. Proin eget tortor risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.</p>\n<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Sed porttitor lectus nibh.</p>\n<p>Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada. Sed porttitor lectus nibh. Nulla quis lorem ut libero malesuada feugiat.</p>"
}
}
Create content with files
Create a new content item with one or more language variations and files.
When content contains an upload field it is possible to send a file along with the request to create new content. This is done by sending a multi-part request with the JSON body and the file.
If the content item doesn't include files then you can send a standard reqeust with a JSON payload to create a new content item.
All newly created content will be DRAFT by default. If you want to publish it you will need to issue a publish request as well.
The request must contain a field named content that contains the content JSON.
For the files being uploaded the field names must be in the format propertyName.culture. An example could be when the content has an upload property with the name fileUpload and the file is being uploaded to the en-US lanugage. In that case the field name should be fileUpload.en-US.
The property must also be includud in the content JSON and the value shoud be the filename.
Updates an existing content item that has one or more language variations.
When content contains an upload field it is possible to send a file along with the request to update content. This is done by sending a multi-part request with the json body and the file, see Create content with files for an example. If the content item doesn't include files then you can send a standard reqeust with a JSON payload to update the content item.
URL: /content/{id}
Method: PUT
Permissions required : Update
Request
In this example only one language exists, so the properties are marked with $invariant. If multiple languages existed the culture for each of the languages would be defined for each of the properties. Ie.: "name": { "en-US": "Another one", "da-DK": "Endnu en" }.
If a property uses a multinode treepicker editor, the value should be a comma-separated list of Umbraco UDI Identifiers. In the example below, the UDI Identifiers are referencing content items. To learn more see the UDI Identifiers documentation.
Publish specific content item with all language variations or for a specific language.
URL: /content/{id}/publish
Method: PUT
Query Strings
?culture={string=en-US}
Permissions required : Publish
Success Response
Code: 200
Content Example:
{
"_currentVersionState": {
"$invariant": "PUBLISHED"
},
"name": {
"$invariant": "Another one"
},
"_updateDate": {
"$invariant": "2019-10-10T11:19:04.3988745+00:00"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:53:09.653Z",
"_id": "041067a0-74f5-4d03-92af-40c3c0aa13e7",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/children"
},
"publish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "Another one"
},
"categories": {
"$invariant": [
"cg16",
"codegarden",
"umbraco"
]
},
"excerpt": {
"$invariant": "Donec sollicitudin molestie malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. Sed porttitor lectus nibh."
},
"bodyText": {
"$invariant": "<p>Donec sollicitudin molestie malesuada. Proin eget tortor risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.</p>\n<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Sed porttitor lectus nibh.</p>\n<p>Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada. Sed porttitor lectus nibh. Nulla quis lorem ut libero malesuada feugiat.</p>"
}
}
Unpublish content
Unpublish specific content item with all language variations or for a specific language.
URL: /content/{id}/unpublish
Method: PUT
Query Strings
?culture={string=en-US}
Permissions required : Unpublish
Success Response
Code: 200
Content Example:
{
"_currentVersionState": {
"$invariant": "DRAFT"
},
"name": {
"$invariant": "Another one"
},
"_updateDate": {
"$invariant": "2019-10-10T11:15:38.5964706+00:00"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:53:09.653Z",
"_id": "041067a0-74f5-4d03-92af-40c3c0aa13e7",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/children"
},
"publish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "Another one"
},
"categories": {
"$invariant": [
"cg16",
"codegarden",
"umbraco"
]
},
"excerpt": {
"$invariant": "Donec sollicitudin molestie malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. Sed porttitor lectus nibh."
},
"bodyText": {
"$invariant": "<p>Donec sollicitudin molestie malesuada. Proin eget tortor risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.</p>\n<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Sed porttitor lectus nibh.</p>\n<p>Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada. Sed porttitor lectus nibh. Nulla quis lorem ut libero malesuada feugiat.</p>"
}
}
Delete content
Delete a specific content item with all its language variations.
{
"_currentVersionState": {
"$invariant": "PUBLISHED"
},
"name": {
"$invariant": "Another one"
},
"_updateDate": {
"$invariant": "2019-10-07T11:53:09.653Z"
},
"_hasChildren": false,
"_level": 3,
"_createDate": "2019-10-07T11:53:09.653Z",
"_id": "041067a0-74f5-4d03-92af-40c3c0aa13e7",
"_deleteDate": "2019-10-10T11:19:53.6828938Z",
"_links": {
"self": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7"
},
"root": {
"href": "https://api.umbraco.io/content"
},
"children": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/children"
},
"publish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/publish"
},
"unpublish": {
"href": "https://api.umbraco.io/content/041067a0-74f5-4d03-92af-40c3c0aa13e7/unpublish"
},
"contenttype": {
"href": "https://api.umbraco.io/content/type/blogpost"
}
},
"contentTypeAlias": "blogpost",
"parentId": "8007e923-e62a-4ac1-a33f-caf3052582f4",
"sortOrder": 0,
"seoMetaDescription": {
"$invariant": ""
},
"keywords": {
"$invariant": []
},
"umbNaviHide": {
"$invariant": "0"
},
"pageTitle": {
"$invariant": "Another one"
},
"categories": {
"$invariant": [
"cg16",
"codegarden",
"umbraco"
]
},
"excerpt": {
"$invariant": "Donec sollicitudin molestie malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. Sed porttitor lectus nibh."
},
"bodyText": {
"$invariant": "<p>Donec sollicitudin molestie malesuada. Proin eget tortor risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.</p>\n<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Sed porttitor lectus nibh.</p>\n<p>Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Donec rutrum congue leo eget malesuada. Sed porttitor lectus nibh. Nulla quis lorem ut libero malesuada feugiat.</p>"
}
}
Content Types
BASE URL: https://api.umbraco.io
Table of Contents
Common Headers
Authentication
Authentication is required for this API. You must supply a Bearer Token via an Authorization header or an API Key through an Authorization or Api-Key header.
Errors
If an error occours you will receive a HTTP status code along with an API error code and an error message in the response body.
JSON example:
Get all Content Types
Get a list of all available Content Types.
URL: /content/type
Method: GET
Permissions required : Access to Settings section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Get by alias
Get a specific Content Type by its alias.
URL: /content/type/{alias}
Method: GET
Permissions required : Access to Settings section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Loading...
Media Types
BASE URL: https://api.umbraco.io
Table of Contents
Common Headers
Authentication
Auth is required for this API meaning that you must supply a Bearer Token via an Authorization header or an API Key via an Authorization or Api-Key header.
Errors
If an error occours you will receive a HTTP status code along with an API error code and an error message in the response body.
JSON example:
Get all Media Types
Get a list of all available Media Types.
URL: /media/type
Method: GET
Permissions required : Access to Settings section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Get by alias
Get a specific Media Type by its alias.
URL: /media/type/{alias}
Method: GET
Permissions required : Access to Settings section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Members
BASE URL: https://api.umbraco.io
Table of Contents
Common Headers
Authentication
Authentication is required for this API. You must supply a Bearer Token via an Authorization header or an API Key through an Authorization or Api-Key header.
Errors
If an error occours you will receive a HTTP status code along with an API error code and an error message in the response body.
JSON example:
Get by username
Get a specific member by their username.
URL: /member/{username}
Method: GET
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Create member
Create a new member.
To set a password when creating a member a password field must be included in the posted data. If the password field is omitted no password will be set.
URL: /member/
Method: POST
Permissions required : Access to Member section of the Umbraco Backoffice
Request
Success Response
Code: 201
Content Example:
Update member
Update an existing member.
A member can be unlocked by setting isLockedOut to false in the request. Note that a member cannot be locked by setting the value to true; it will be ignored if the user is not already locked out.
URL: /member/{username}
Method: PUT
Permissions required : Access to Member section of the Umbraco Backoffice
Request
Success Response
Code: 200
Content Example:
Delete member
Delete an existing member by their username.
URL: /member/{username}
Method: DELETE
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Change member password
Change a members password.
URL: /member/{username}/password
Method: POST
Permissions required : Access to Member section of the Umbraco Backoffice
Request
Success Response
Code: 200
Content Example:
Get a reset member password token
Get a reset password token.
URL: /member/{username}/password/reset-token
Method: GET
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Reset member password
Reset a members password.
URL: /member/{username}/password/reset
Method: POST
Permissions required : Access to Member section of the Umbraco Backoffice
Request
Success Response
Code: 200
Content Example:
Add member to member group
Add an existing member to an existing member group.
URL: /member/{username}/groups/{groupName}
Method: PUT
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Remove member from member group
Remove a specific member from a specific member group.
URL: /member/{username}/groups/{groupName}
Method: DELETE
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Member Groups
BASE URL: https://api.umbraco.io
Table of Contents
Common Headers
Authentication
Auth is required for this API meaning that you must supply a Bearer Token via an Authorization header or an API Key via an Authorization or Api-Key header.
Errors
If an error occours you will receive a HTTP status code along with an API error code and an error message in the response body.
JSON example:
Get all
Get all Member Groups.
URL: /member/group
Method: GET
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Get by name
Get a specific Member Group by its name.
URL: /member/group/{name}
Method: GET
Permissions required : Access to Member section of the Umbraco Backoffice
Success Response
Code: 200
Content Example:
Create member group
Create a new Member Group.
URL: /member/group
Method: POST
Permissions required : Access to Member section of the Umbraco Backoffice
Request
Success Response
Code: 201
Content Example:
Delete member group
Delete an existing Member Group.
URL: /member/group/{name}
Method: DELETE
Permissions required : Access to Member section of the Umbraco Backoffice