AuthThe Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.AvailabilityPreviewThis functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply.Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Creates a case template from a YAML definition. You must have the "Manage templates" sub-privilege for the Cases feature of the owning solution. Set dry_run=true to run the full validation (body, YAML definition, name uniqueness, authorization) without creating anything. Requires the Cases feature to be enabled in the space.
The template definition as a YAML string: case defaults (name, severity, category, tags, assignees, connector, settings) and a fields array of inline field definitions or $ref entries pointing into the owner's field library. Stored field values appear on cases under extended_fields keys shaped <field_name>_as_<storage_type>. Observable extraction (settings.extractObservables) is available only for Security templates. For Stack and Observability templates, setting it to true returns a 400 error. An update that keeps an already stored true for the same owner is accepted.
descriptionstring · max length: 1000
A description of the template.
isEnabledboolean · default: true
Disabled templates are hidden from the case creation flow.
namestring · min length: 1 · max length: 50
The template identity name, unique per owner (case-insensitive). May be omitted when the YAML definition provides a case-default title (name:), which is then used as the identity name.
ownerenumrequired
The application that owns the cases: Stack Management, Observability, or Elastic Security.
Values:casesobservabilitysecuritySolution
tagsstring[] · max items: 200
The words and phrases that help categorize templates. It can be an empty array.
The date the template was soft-deleted, or null if active.
descriptionstring · max length: 30000
A human-readable description of the template.
fieldCountinteger
The number of fields defined in the template.
fieldDefinitionsobject[]
Metadata about each field defined in the template.
controlstring · max length: 50required
labelstring · max length: 256required
namestring · max length: 256required
typestring · max length: 50required
isDefaultboolean
Whether this is the default template for its owner.
isEnabledboolean
Whether the template is enabled.
isLatestbooleanrequired
Whether this is the latest version of the template.
lastUsedAtstring · format: date-time
The date the template was last used to create a case.
latestVersionintegerrequired
The latest version number of this template.
namestring · max length: 100required
The display name of the template.
ownerstring · max length: 50required
The owning solution (e.g. cases, observability, securitySolution).
tagsstring[] · max items: 200
The words and phrases that help categorize templates. It can be an empty array.
templateIdstring · max length: 36required
The unique identifier of the template, shared across all versions.
templateVersionintegerrequired
The version number of this template revision.
usageCountinteger
The number of times this template has been used to create a case.
Returned instead of the template when the request was sent with dry_run=true.
validenumrequired
Always true — validation failures return a 4xx error instead.
Values:true
The request body, YAML definition, or template name is invalid, or a resource limit was exceeded (max 200 templates per owner, max 200 fields per template).
application/json
errorstring
messagestring
statusCodeinteger
Authorization information is missing or invalid.
application/json
errorstring
messagestring
statusCodeinteger
The user does not have the manage templates privilege for the owner.
application/json
errorstring
messagestring
statusCodeinteger
A template with the same name already exists for the owner.