Skip to main content
Sitecore Documentation
  • Learn
  • Downloads
  • Changelog
  • Roadmap
PersonalizeCloud Portal
Sitecore Personalize developer documentation
  • Developing with Sitecore Personalize
  1. Sitecore Personalize developer documentation
  1. Sitecore Personalize developer documentation

Template REST API

The Template REST API enables you to perform CRUD operations on web templates and decision templates. Offers and offer templates are not available in Sitecore Personalize REST APIs.

Use the following attributes for templates:

AttributeTypeDescriptionExample(s)
namestringThe name of the template."Alert bar template"
friendlyIdstringThe unique ID of the template.

Only lowercase alphanumeric characters and underscores are allowed.
"alert_bar_template_1"
typestring enum (uppercase)The type of the template.Must be one of:

  • "WEB"
  • "DECISION"
  • "CONDITION"
  • "JS_MODULE"
statusstring enum (uppercase)The current status of the template.Must be one of:

  • "DRAFT"
  • "PUBLISHED"
descriptionstringThe description of the connection."Alert bar web template"
renderbooleanDetermines whether to render a preview of the web template in the Sitecore Personalize app.

Only set this to true if you're confident that your web template can render.

Do not set this to true for more sophisticated web templates that use handlebars loops.
true, false
defaultTemplatebooleanDetermines whether this is a default template.

When you create a template, you must set this value to false.
false
customTemplatebooleanDetermines whether this is a custom template.

When you create a template, you must set this value to true.
true
templateElements

optional
JSON array of JSON objectsCustom HTML, CSS, JavaScript, and FreeMarker codes that define the template.

The codes can contain template parameters, for example, [[ProductType | string]]. Template parameters are replaced with template variable values, for example, sneakers, when the template is rendered.
"mys3cr3tstr1ingforauth1!x"
archivedbooleanThe archive status of the flow definition.true, false
revisionsJSON array of JSON objectsAn array of revisions of the flow definition."mys3cr3tstr1ingforauth1!x"
revisionintegerThe sequential number of the template revision.2

The optional templateElements array of objects lets you include HTML, CSS, JavaScript, and FreeMarker codes in your templates. For the objects in templateElements, use the following attributes:

AttributeTypeDescriptionExample(s)
idstring enum (lowercase)The type of code that you include in the template attribute.

For example, to include CSS code in the template, set this value to "css", then specify the custom CSS code in the template attribute.
Must be one of:

  • "html"
  • "css"
  • "js"
  • "freemarker"
templatestringStringified HTML, CSS, JavaScript, or FreeMarker code.

For FreeMarker code, you must at a minimum include an opening and a closing curly bracket {}.
  • HTML: "<div id=\"test\">My test div</div>"
  • CSS: "#test {text-transform: uppercase}"
  • JavaScript: "insertHTMLBefore(\"body\");"
  • FreeMarker: "{}"

Here's an example of the templateElements array of objects:

"templateElements": [
  {
    "id": "html",
    "template": "<div id=\"test\">My test div</div>"
  },
  {
    "id": "css",
    "template": "#test {text-transform: uppercase}"
  },
  {
    "id": "js",
    "template": "insertHTMLBefore(\"body\");\n\nconst testDiv = document.querySelector(\"#test\");\ntestDiv.insertAdjacentHTML(\"afterbegin\", \"<p>Hello from JavaScript</p>\")"
  },
  {
    "id": "freemarker",
    "template": "{}"
  }
]
If you have suggestions for improving this article, let us know!

Documentation Assistant

This assistant uses AI to generate responses based on Sitecore documentation. While it has access to official sources, answers may be incomplete or inaccurate and should not be considered official advice or support.
Powered by
k
kapa.ai
Protected by reCAPTCHA

© Copyright 2026, Sitecore A/S or a Sitecore affiliated company.
All rights reserved.

Privacy policySitecore Trust CenterTerms of use