OpenMetadata Notification Templates API
Notification templates for customizing event notifications
Notification templates for customizing event notifications
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/openmetadata-notification-templates-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: OpenMetadata APIs Agent Executions Notification Templates API
description: Common types and API definition for OpenMetadata
contact:
name: OpenMetadata
url: https://open-metadata.org
email: openmetadata-dev@googlegroups.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: '1.13'
servers:
- url: /api
description: Current Host
- url: http://localhost:8585/api
description: Endpoint URL
security:
- BearerAuth: []
tags:
- name: Notification Templates
description: Notification templates for customizing event notifications
paths:
/v1/notificationTemplates:
get:
tags:
- Notification Templates
summary: List notification templates
description: Get a list of notification templates
operationId: listNotificationTemplates
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
- name: provider
in: query
description: Filter templates by provider type (SYSTEM or USER)
schema:
type: string
enum:
- system
- user
- automation
- name: limit
in: query
description: Limit the number of results. (1 to 1000000, default = 10)
schema:
maximum: 1000000
minimum: 0
type: integer
format: int32
default: 10
- name: before
in: query
description: Returns list of entities before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of entities after this cursor
schema:
type: string
- name: include
in: query
description: Include all, deleted, or non-deleted entities.
schema:
type: string
default: non-deleted
enum:
- all
- deleted
- non-deleted
responses:
'200':
description: List of notification templates
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateList'
put:
tags:
- Notification Templates
summary: Create or update a notification template
description: Create a notification template, if it does not exist or update an existing notification template.
operationId: createOrUpdateNotificationTemplate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateNotificationTemplate'
responses:
'200':
description: The notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'400':
description: Bad request
'403':
description: Forbidden - Requires appropriate permissions for USER or SYSTEM templates
post:
tags:
- Notification Templates
summary: Create a notification template
description: Create a new notification template
operationId: createNotificationTemplate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateNotificationTemplate'
responses:
'200':
description: The notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'400':
description: Bad request
/v1/notificationTemplates/name/{fqn}:
get:
tags:
- Notification Templates
summary: Get a notification template by fully qualified name
description: Get a notification template by `fullyQualifiedName`.
operationId: getNotificationTemplateByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of the notification template
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
- name: include
in: query
description: Include all, deleted, or non-deleted entities.
schema:
type: string
default: non-deleted
enum:
- all
- deleted
- non-deleted
- name: includeRelations
in: query
description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
schema:
type: string
example: owners:non-deleted,followers:all
responses:
'200':
description: The notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'404':
description: Notification template for instance {fqn} is not found
delete:
tags:
- Notification Templates
summary: Delete a notification template by fully qualified name
description: Delete a notification template by `fullyQualifiedName`. System templates cannot be deleted.
operationId: deleteNotificationTemplateByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of the notification template
required: true
schema:
type: string
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
responses:
'200':
description: OK
'400':
description: Bad request - System templates cannot be deleted
'404':
description: Notification template for instance {fqn} is not found
patch:
tags:
- Notification Templates
summary: Update a notification template by name
description: Update an existing notification template using JsonPatch.
operationId: patchNotificationTemplateByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of the notification template
required: true
schema:
type: string
requestBody:
description: JsonPatch with array of operations
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/JsonPatch'
example:
- op: replace
path: /description
value: new description
responses:
'200':
description: Successfully updated the notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'400':
description: Bad request
'403':
description: Forbidden - Requires appropriate permissions for USER or SYSTEM templates
'404':
description: Notification template not found
/v1/notificationTemplates/{id}:
get:
tags:
- Notification Templates
summary: Get a notification template by Id
description: Get a notification template by `Id`.
operationId: getNotificationTemplateById
parameters:
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
- name: include
in: query
description: Include all, deleted, or non-deleted entities.
schema:
type: string
default: non-deleted
enum:
- all
- deleted
- non-deleted
- name: includeRelations
in: query
description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
schema:
type: string
example: owners:non-deleted,followers:all
responses:
'200':
description: The notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'404':
description: Notification template for instance {id} is not found
delete:
tags:
- Notification Templates
summary: Delete a notification template by Id
description: Delete a notification template by `Id`. System templates cannot be deleted.
operationId: deleteNotificationTemplate
parameters:
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
responses:
'200':
description: OK
'400':
description: Bad request - System templates cannot be deleted
'404':
description: Notification template for instance {id} is not found
patch:
tags:
- Notification Templates
summary: Update a notification template
description: Update an existing notification template using JsonPatch.
operationId: patchNotificationTemplate
parameters:
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
requestBody:
description: JsonPatch with array of operations
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/JsonPatch'
example:
- op: replace
path: /description
value: new description
responses:
'200':
description: Successfully updated the notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'400':
description: Bad request
'403':
description: Forbidden - Requires appropriate permissions for USER or SYSTEM templates
'404':
description: Notification template not found
/v1/notificationTemplates/async/{id}:
delete:
tags:
- Notification Templates
summary: Asynchronously delete a notification template by Id
description: Asynchronously delete a notification template by `Id`.
operationId: deleteNotificationTemplateAsync
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: Notification template for instance {id} is not found
/v1/notificationTemplates/helpers:
get:
tags:
- Notification Templates
summary: Get available Handlebars helpers
description: Returns a list of all available Handlebars helpers with their usage information. Requires VIEW_BASIC permission for notification templates.
operationId: getHandlebarsHelpers
responses:
'200':
description: List of Handlebars helpers
content:
application/json:
schema:
$ref: '#/components/schemas/HandlebarsHelperMetadata'
/v1/notificationTemplates/{id}/versions/{version}:
get:
tags:
- Notification Templates
summary: Get a version of the notification template
description: Get a version of the notification template by given `Id`
operationId: getSpecificNotificationTemplateVersion
parameters:
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: Notification template version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: notification template
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
'404':
description: Notification template for instance {id} and version {version} is not found
/v1/notificationTemplates/history:
get:
tags:
- Notification Templates
summary: List all entity versions within a time range
description: 'Get a paginated list of all entity versions within a given time range specified by `startTs` and `endTs` in milliseconds since epoch. '
operationId: listAllEntityVersionsByTimestamp_28
parameters:
- name: startTs
in: query
description: Start timestamp in milliseconds since epoch
required: true
schema:
type: integer
format: int64
- name: endTs
in: query
description: End timestamp in milliseconds since epoch
required: true
schema:
type: integer
format: int64
- name: limit
in: query
description: Limit the number of entity returned (1 to 1000000, default = 10)
schema:
maximum: 500
minimum: 1
type: integer
format: int32
default: 10
- name: before
in: query
description: Returns list of entity versions before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of entity versions after this cursor
schema:
type: string
responses:
'200':
description: List of all versions
content:
application/json:
schema:
$ref: '#/components/schemas/ResultList'
/v1/notificationTemplates/{id}/versions:
get:
tags:
- Notification Templates
summary: List notification template versions
description: Get a list of all the versions of a notification template identified by `Id`
operationId: listAllNotificationTemplateVersions
parameters:
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of notification template versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/notificationTemplates/render:
post:
tags:
- Notification Templates
summary: Render notification template with mock data
description: 'Generates mock ChangeEvent data for the specified resource and eventType, then renders the template. Returns the rendered subject and body for preview. Does not send to any destination. Requires any of: CREATE, EDIT_ALL, EDIT_USER_NOTIFICATION_TEMPLATE.'
operationId: renderNotificationTemplate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateRenderRequest'
responses:
'200':
description: Rendering result with validation and render outputs
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateRenderResponse'
'400':
description: Bad request
/v1/notificationTemplates/name/{fqn}/reset:
put:
tags:
- Notification Templates
summary: Reset a notification template to its default state by fully qualified name
description: Reset a SYSTEM notification template to its original default state from seed data. Only SYSTEM templates can be reset. This operation requires EDIT permissions.
operationId: resetNotificationTemplateByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of the notification template to reset
required: true
schema:
type: string
responses:
'200':
description: Template successfully reset to default
'400':
description: Bad request - Template cannot be reset (not a SYSTEM template)
'403':
description: Forbidden - proper EDIT permission required
'404':
description: Notification template for instance {fqn} is not found
/v1/notificationTemplates/{id}/reset:
put:
tags:
- Notification Templates
summary: Reset a notification template to its default state by Id
description: Reset a SYSTEM notification template to its original default state from seed data. Only SYSTEM templates can be reset. This operation requires EDIT permissions.
operationId: resetNotificationTemplateById
parameters:
- name: id
in: path
description: Id of the notification template
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Template successfully reset to default
'400':
description: Bad request - Template cannot be reset (not a SYSTEM template)
'403':
description: Forbidden - proper EDIT permission required
'404':
description: Notification template for instance {id} is not found
/v1/notificationTemplates/restore:
put:
tags:
- Notification Templates
summary: Restore a soft deleted notification template
description: Restore a soft deleted notification template.
operationId: restore_20
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreEntity'
responses:
'200':
description: Successfully restored the notification template
/v1/notificationTemplates/send:
post:
tags:
- Notification Templates
summary: Validate and send notification template to external destinations
description: 'Validates template syntax, generates mock ChangeEvent data, and sends to specified external destinations. Returns validation status only. Delivery errors are logged server-side. Only external destinations (Email, Slack, Teams, GChat, Webhook) are supported. Requires any of: CREATE, EDIT_ALL, EDIT_USER_NOTIFICATION_TEMPLATE.'
operationId: sendNotificationTemplateTest
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateSendRequest'
responses:
'200':
description: Validation result
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateValidationResponse'
'400':
description: Bad request or validation failure
/v1/notificationTemplates/validate:
post:
tags:
- Notification Templates
summary: Validate notification template syntax
description: 'Validates only the Handlebars syntax of template subject and body without generating mock data or sending. Requires any of: CREATE, EDIT_ALL, EDIT_USER_NOTIFICATION_TEMPLATE.'
operationId: validateNotificationTemplate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateValidationRequest'
responses:
'200':
description: Validation result
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateValidationResponse'
'400':
description: Bad request
components:
schemas:
EntityHistory:
required:
- entityType
- versions
type: object
properties:
entityType:
type: string
versions:
type: array
items:
type: object
AccessDetails:
required:
- timestamp
type: object
properties:
timestamp:
type: integer
format: int64
accessedBy:
$ref: '#/components/schemas/EntityReference'
accessedByAProcess:
type: string
UsageDetails:
required:
- dailyStats
- date
type: object
properties:
dailyStats:
$ref: '#/components/schemas/UsageStats'
weeklyStats:
$ref: '#/components/schemas/UsageStats'
monthlyStats:
$ref: '#/components/schemas/UsageStats'
date:
type: string
JsonPatch:
type: object
NotificationTemplateValidationRequest:
required:
- templateBody
- templateSubject
type: object
properties:
templateBody:
maxLength: 65536
minLength: 1
type: string
templateSubject:
maxLength: 256
minLength: 1
type: string
CreateNotificationTemplate:
required:
- name
- templateBody
- templateSubject
type: object
properties:
name:
maxLength: 256
minLength: 1
pattern: ^((?!::).)*$
type: string
displayName:
type: string
description:
type: string
templateSubject:
maxLength: 255
minLength: 1
type: string
templateBody:
maxLength: 65536
minLength: 1
type: string
owners:
type: array
items:
$ref: '#/components/schemas/EntityReference'
domains:
type: array
items:
type: string
extension:
type: object
tags:
type: array
items:
$ref: '#/components/schemas/TagLabel'
reviewers:
type: array
items:
$ref: '#/components/schemas/EntityReference'
dataProducts:
type: array
items:
type: string
lifeCycle:
$ref: '#/components/schemas/LifeCycle'
NotificationTemplateList:
required:
- data
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NotificationTemplate'
paging:
$ref: '#/components/schemas/Paging'
errors:
type: array
items:
$ref: '#/components/schemas/EntityError'
warningsCount:
type: integer
format: int32
warnings:
type: array
items:
$ref: '#/components/schemas/EntityError'
NotificationTemplateValidationResponse:
required:
- isValid
type: object
properties:
isValid:
type: boolean
subjectError:
type: string
bodyError:
type: string
AssetCertification:
required:
- appliedDate
- expiryDate
- tagLabel
type: object
properties:
tagLabel:
$ref: '#/components/schemas/TagLabel'
appliedDate:
type: integer
format: int64
expiryDate:
type: integer
format: int64
NotificationTemplateRenderRequest:
required:
- resource
- templateBody
- templateSubject
type: object
properties:
templateSubject:
maxLength: 255
minLength: 1
type: string
templateBody:
maxLength: 65536
minLength: 1
type: string
resource:
maxLength: 128
minLength: 1
type: string
eventType:
type: string
enum:
- entityCreated
- entityUpdated
- entityFieldsChanged
- entityNoChange
- entitySoftDeleted
- entityDeleted
- entityRestored
- threadCreated
- threadUpdated
- postCreated
- postUpdated
- taskResolved
- taskClosed
- logicalTestCaseAdded
- suggestionCreated
- suggestionUpdated
- suggestionAccepted
- suggestionRejected
- suggestionDeleted
- userLogin
- userLogout
PatternMatch:
required:
- name
- score
type: object
properties:
name:
type: string
regex:
type: string
score:
type: number
format: double
TagLabelRecognizerMetadata:
required:
- recognizerId
- recognizerName
- score
type: object
properties:
recognizerId:
type: string
format: uuid
recognizerName:
type: string
score:
type: number
format: double
target:
type: string
enum:
- content
- column_name
patterns:
type: array
items:
$ref: '#/components/schemas/PatternMatch'
UsageStats:
required:
- count
type: object
properties:
count:
minimum: 0
type: integer
format: int32
percentileRank:
type: number
format: double
Style:
type: object
properties:
color:
type: string
iconURL:
type: string
coverImage:
$ref: '#/components/schemas/CoverImage'
NotificationTemplateRenderResponse:
required:
- validation
type: object
properties:
validation:
$ref: '#/components/schemas/NotificationTemplateValidationResponse'
render:
$ref: '#/components/schemas/TemplateRenderResult'
Votes:
type: object
properties:
upVotes:
type: integer
format: int32
downVotes:
type: integer
format: int32
upVoters:
type: array
items:
$ref: '#/components/schemas/EntityReference'
downVoters:
type: array
items:
$ref: '#/components/schemas/EntityReference'
LifeCycle:
type: object
properties:
created:
$ref: '#/components/schemas/AccessDetails'
updated:
$ref: '#/components/schemas/AccessDetails'
accessed:
$ref: '#/components/schemas/AccessDetails'
Paging:
required:
- total
type: object
properties:
before:
type: string
after:
type: string
offset:
type: integer
format: int32
limit:
type: integer
format: int32
total:
type: integer
format: int32
EntityReference:
required:
- id
- type
type: object
properties:
id:
type: string
format: uuid
type:
type: string
name:
type: string
fullyQualifiedName:
type: string
description:
type: string
displayName:
type: string
deleted:
type: boolean
inherited:
type: boolean
href:
type: string
format: uri
FieldChange:
type: object
properties:
name:
type: string
oldValue:
type: object
newValue:
type: object
NotificationTemplateSendRequest:
required:
- destinations
- renderRequest
type: object
properties:
renderRequest:
$ref: '#/components/schemas/NotificationTemplateRenderRequest'
destinations:
maxItems: 2147483647
minItems: 1
type: array
items:
$ref: '#/components/schemas/SubscriptionDestination'
ChangeSummaryMap:
type: object
TemplateRenderResult:
required:
- body
- subject
type: object
properties:
subject:
type: string
body:
type: string
EntityError:
type: object
properties:
message:
type: string
entity:
type: object
ResultList:
required:
- data
type: object
properties:
data:
type: array
items:
type: object
paging:
$ref: '#/components/schemas/Paging'
errors:
type: array
items:
$ref: '#/components/schemas/EntityError'
warningsCount:
type: integer
format: int32
warnings:
type: array
items:
$ref: '#/components/schemas/EntityError'
SubscriptionDestination:
required:
- category
- type
type: object
properties:
id:
type: string
format: uuid
category:
type: string
enum:
- Users
- Teams
- Admins
- Assignees
- Owners
- Mentions
- Followers
- External
type:
type: string
enum:
- Webhook
- Slack
- MsTeams
- GChat
- Email
- ActivityFeed
- GovernanceWorkflowChangeEvent
statusDetails:
type: object
timeout:
type: integer
format: int32
readTimeout:
type: integer
format: int32
enabled:
type: boolean
config:
type: object
notifyDownstream:
type: boolean
downstreamDepth:
minimum: 1
type: integer
format: int32
ChangeDescription:
type: object
properties:
fieldsAdded:
type: array
items:
$ref: '#/components/schemas/FieldChange'
fieldsUpdated:
type: array
items:
$ref: '#/components/schemas/FieldChange'
fieldsDeleted:
type: array
items:
$ref: '#/components/schemas/FieldChange'
previousVersion:
type: number
format: double
changeSummary:
$ref: '#/components/schemas/ChangeSummaryMap'
RestoreEntity:
required:
- id
type: object
properties:
id:
type: string
format: uuid
NotificationTemplate:
required:
- id
- name
- templateBody
- templateSubject
type: object
properties:
id:
type: string
format: uuid
name:
maxLength: 256
minLength: 1
pattern: ^((?!::).)*$
type: string
displayName:
type: string
fullyQualifiedName:
maxLength: 3072
minLength: 1
type: string
description:
type: string
version:
type: number
format: double
updatedAt:
type: integer
format: int64
updatedBy:
type: string
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-notification-templates-api-openapi.yml