OpenMetadata Events API
The `Events` are changes to metadata and are sent when entities are created, modified, or updated. External systems can subscribe to events using event subscription API over Webhooks, Slack, or Microsoft Teams.
The `Events` are changes to metadata and are sent when entities are created, modified, or updated. External systems can subscribe to events using event subscription API over Webhooks, Slack, or Microsoft Teams.
openapi: 3.0.1
info:
title: OpenMetadata APIs Agent Executions Events 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: Events
description: The `Events` are changes to metadata and are sent when entities are created, modified, or updated. External systems can subscribe to events using event subscription API over Webhooks, Slack, or Microsoft Teams.
paths:
/v1/events:
get:
tags:
- Events
summary: Get change events
description: Get a list of change events matching event types, entity type, from a given date
operationId: listChangeEvents
parameters:
- name: entityCreated
in: query
description: List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned
schema:
type: string
example: table,dashboard,...
- name: entityUpdated
in: query
description: List of comma separated entities requested for `entityUpdated` event. When set to `*` all entities will be returned
schema:
type: string
example: table,dashboard,...
- name: entityRestored
in: query
description: List of comma separated entities requested for `entityRestored` event. When set to `*` all entities will be returned
schema:
type: string
example: table,dashboard,...
- name: entityDeleted
in: query
description: List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned
schema:
type: string
example: table,dashboard,...
- name: timestamp
in: query
description: Events starting from this unix timestamp in milliseconds
required: true
schema:
type: integer
format: int64
example: 1426349294842
responses:
'200':
description: Entity events
content:
application/json:
schema:
$ref: '#/components/schemas/EventList'
'404':
description: Entity for instance {id} is not found
/v1/events/subscriptions/{id}/processedEvents:
get:
tags:
- Events
summary: Check If the Publisher Processed All Events
description: Return a boolean 'true' or 'false' to indicate if the publisher processed all events
operationId: checkIfThePublisherProcessedALlEvents
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of Event Subscription versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/events/subscriptions:
get:
tags:
- Events
summary: List all available Event Subscriptions
description: Get a list of All available Event Subscriptions
operationId: listEventSubscriptions
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,filteringRules
- name: limit
in: query
description: 'Limit the number event subscriptions returned. (1 to 1000000, default = 10) '
schema:
maximum: 1000000
minimum: 0
type: integer
format: int32
default: 10
- name: alertType
in: query
description: alertType filter. Notification / Observability
schema:
type: string
- name: notificationTemplate
in: query
description: Filter subscriptions by notification template ID. Returns only subscriptions using the specified template.
schema:
type: string
format: uuid
- name: before
in: query
description: Returns list of event subscriptions before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of event subscriptions after this cursor
schema:
type: string
responses:
'200':
description: List of Event Subscriptions
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscriptionList'
put:
tags:
- Events
summary: Updated an existing or create a new Event Subscription
description: Updated an existing or create a new Event Subscription
operationId: createOrUpdateEventSubscription
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEventSubscription'
responses:
'200':
description: create Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEventSubscription'
'400':
description: Bad request
post:
tags:
- Events
summary: Create a new Event Subscription
description: Create a new Event Subscription
operationId: createEventSubscription
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEventSubscription'
responses:
'200':
description: Event Subscription Created
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEventSubscription'
'400':
description: Bad request
/v1/events/subscriptions/{id}:
get:
tags:
- Events
summary: Get a event Subscription by ID
description: Get a event Subscription by given Id
operationId: getEventSubscriptionByID
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,filteringRules
responses:
'200':
description: Entity events
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'404':
description: Entity for instance {id} is not found
delete:
tags:
- Events
summary: Delete an Event Subscription by Id
description: Delete an Event Subscription
operationId: deleteEventSubscription
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Entity events
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'404':
description: Entity for instance {id} is not found
patch:
tags:
- Events
summary: Update an Event Subscriptions
description: Update an existing Event Subscriptions using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchEventSubscription_1
parameters:
- name: id
in: path
description: Id of the event Subscription
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:remove, path:/a},{op:add, path: /b, value: val}]'
responses:
default:
description: default response
content:
application/json: {}
/v1/events/subscriptions/async/{id}:
delete:
tags:
- Events
summary: Asynchronously delete an Event Subscription by Id
description: Asynchronously delete an Event Subscription
operationId: deleteEventSubscriptionAsync
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Entity events
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'404':
description: Entity for instance {id} is not found
/v1/events/subscriptions/name/{name}:
delete:
tags:
- Events
summary: Delete an Event Subscription by name
description: Delete an Event Subscription by given `name`.
operationId: deleteEventSubscriptionByName
parameters:
- name: name
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
responses:
'200':
description: OK
'404':
description: Entity for instance {name} is not found
/v1/events/subscriptions/id/{eventSubscriptionId}/destinations:
get:
tags:
- Events
summary: Get the destinations for a specific Event Subscription
description: Retrieve the status of all destinations associated with the given Event Subscription ID
operationId: getAllDestinationForEventSubscription
parameters:
- name: eventSubscriptionId
in: path
description: ID of the Event Subscription
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Returns the destinations for the Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionDestination'
'404':
description: Event Subscription for instance {eventSubscriptionId} is not found
/v1/events/subscriptions/name/{eventSubscriptionName}/destinations:
get:
tags:
- Events
summary: Get the destinations for a specific Event Subscription by its name
description: Retrieve the status of all destinations associated with the given Event Subscription's fully qualified name (FQN)
operationId: getAllDestinationForEventSubscriptionByName
parameters:
- name: eventSubscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
responses:
'200':
description: Returns the destinations for the Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionDestination'
'404':
description: Event Subscription with the name {fqn} is not found
/v1/events/subscriptions/listAllFailedEvents:
get:
tags:
- Events
summary: Get all failed events
description: Retrieve all failed events, optionally filtered by source, and apply a limit.
operationId: getAllFailedEvents
parameters:
- name: limit
in: query
description: Maximum number of failed events to retrieve
schema:
minimum: 0
type: integer
format: int64
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
- name: source
in: query
description: Source of the failed events
schema:
type: string
responses:
'200':
description: Failed events retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'500':
description: Internal server error
/v1/events/subscriptions/id/{subscriptionId}/diagnosticInfo:
get:
tags:
- Events
summary: Get event subscription diagnostic info
description: Retrieve diagnostic information for a given event subscription ID, including current and latest offsets, unprocessed events count, and more.
operationId: getEventSubscriptionDiagnosticInfoById
parameters:
- name: limit
in: query
description: Maximum number of unprocessed events returned
schema:
minimum: 0
type: integer
format: int32
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
- name: subscriptionId
in: path
description: UUID of the Event Subscription
required: true
schema:
type: string
format: uuid
- name: listCountOnly
in: query
description: Return only count if true
schema:
type: boolean
default: false
responses:
'200':
description: Event subscription diagnostic info retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscriptionDiagnosticInfo'
'404':
description: Event subscription not found
'500':
description: Internal server error
/v1/events/subscriptions/name/{subscriptionName}/diagnosticInfo:
get:
tags:
- Events
summary: Get event subscription diagnostic info by name
description: Retrieve diagnostic information for a given event subscription name, including current and latest offsets, unprocessed events count, and more.
operationId: getEventSubscriptionDiagnosticInfoByName
parameters:
- name: limit
in: query
description: Maximum number of unprocessed events returned
schema:
minimum: 0
type: integer
format: int32
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
- name: subscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
- name: listCountOnly
in: query
description: Return only count if true
schema:
type: boolean
default: false
responses:
'200':
description: Event subscription diagnostic info retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscriptionDiagnosticInfo'
'404':
description: Event subscription not found
'500':
description: Internal server error
/v1/events/subscriptions/id/{subscriptionId}/eventsRecord:
get:
tags:
- Events
summary: Get event subscription events record
description: Retrieve the total count, pending count, failed count, and successful count of events for a given event subscription ID.
operationId: getEventSubscriptionEventsRecordById
parameters:
- name: subscriptionId
in: path
description: UUID of the Event Subscription
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Event subscription events record retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/EventsRecord'
'404':
description: Event subscription not found
'500':
description: Internal server error
/v1/events/subscriptions/name/{subscriptionName}/eventsRecord:
get:
tags:
- Events
summary: Get event subscription events record by name
description: Retrieve the total count, pending count, failed count, and successful count of events for a given event subscription name.
operationId: getEventSubscriptionEventsRecordByName
parameters:
- name: subscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
responses:
'200':
description: Event subscription events record retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/EventsRecord'
'404':
description: Event subscription not found
'500':
description: Internal server error
/v1/events/subscriptions/{eventSubscriptionId}/status/{destinationId}:
get:
tags:
- Events
summary: Get Event Subscription status by Id
description: Get a event Subscription status by given Name
operationId: getEventSubscriptionStatusById
parameters:
- name: eventSubscriptionId
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
format: uuid
- name: destinationId
in: path
description: Destination Id
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Return the current status of the Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionStatus'
'404':
description: Entity for instance {id} is not found
/v1/events/subscriptions/name/{eventSubscriptionName}/status/{destinationId}:
get:
tags:
- Events
summary: Get Event Subscription status
description: Get a event Subscription status by given Name
operationId: getEventSubscriptionStatus
parameters:
- name: eventSubscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
- name: destinationId
in: path
description: Destination Id
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Return the current status of the Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionStatus'
'404':
description: Entity for instance {id} is not found
/v1/events/subscriptions/{id}/versions/{version}:
get:
tags:
- Events
summary: Get a version of the Event Subscription
description: Get a version of the Event Subscription by given `Id`
operationId: getSpecificEventSubscriptionVersion
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: Event Subscription version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: Get specific version of Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'404':
description: Event Subscription for instance {id} and version {version} is not found
/v1/events/subscriptions/id/{id}/listEvents:
get:
tags:
- Events
summary: Retrieve events based on various filters
description: Retrieve failed, successfully sent, or unprocessed change events, identified by alert ID, with an optional limit. If status is not provided, retrieves data from all statuses in ascending timestamp.
operationId: getEvents
parameters:
- name: status
in: query
description: Status of events to retrieve (failed, successful)
schema:
type: string
enum:
- failed
- successful
- name: id
in: path
description: ID of the alert or destination
required: true
schema:
type: string
format: uuid
- name: limit
in: query
description: Maximum number of events to retrieve
schema:
minimum: 0
type: integer
format: int64
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
responses:
'200':
description: Events retrieved successfully
'404':
description: Entity not found
'400':
description: Invalid request parameters
'500':
description: Internal server error
/v1/events/subscriptions/name/{eventSubscriptionName}:
get:
tags:
- Events
summary: Get an Event Subscription by name
description: Get an Event Subscription by name.
operationId: getEventSubscriptionByName
parameters:
- name: eventSubscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,filteringRules
responses:
'200':
description: Event Subscription with request name is returned
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'404':
description: Event Subscription for instance {eventSubscriptionName} is not found
/v1/events/subscriptions/id/{id}/failedEvents:
get:
tags:
- Events
summary: Get failed events for a subscription by id
description: Retrieve failed events for a given subscription id.
operationId: getFailedEventsBySubscriptionId
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
- name: limit
in: query
description: Maximum number of failed events to retrieve
schema:
minimum: 0
type: integer
format: int64
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
- name: source
in: query
description: Source of the failed events
schema:
type: string
responses:
'200':
description: Failed events retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: Event subscription not found
'500':
description: Internal server error
/v1/events/subscriptions/name/{eventSubscriptionName}/failedEvents:
get:
tags:
- Events
summary: Get failed events for a subscription by name
description: Retrieve failed events for a given subscription name.
operationId: getFailedEventsBySubscriptionName
parameters:
- name: eventSubscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
- name: limit
in: query
description: Maximum number of failed events to retrieve
schema:
minimum: 0
type: integer
format: int64
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
- name: source
in: query
description: Source of the failed events
schema:
type: string
responses:
'200':
description: Failed events retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: Event subscription not found
'500':
description: Internal server error
/v1/events/subscriptions/id/{id}/listSuccessfullySentChangeEvents:
get:
tags:
- Events
summary: Get successfully sent change events for an alert
description: Retrieve successfully sent change events for a specific alert, identified by its ID, with an optional limit.
operationId: getSuccessfullySentChangeEventsForAlert
parameters:
- name: id
in: path
description: ID of the alert to retrieve change events for
required: true
schema:
type: string
format: uuid
- name: limit
in: query
description: Maximum number of change events to retrieve
schema:
minimum: 0
type: integer
format: int64
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
responses:
'200':
description: Successfully sent change events retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: Alert not found
'500':
description: Internal server error
/v1/events/subscriptions/name/{eventSubscriptionName}/listSuccessfullySentChangeEvents:
get:
tags:
- Events
summary: Get successfully sent change events for an alert by name
description: Retrieve successfully sent change events for a specific alert, identified by its name, with an optional limit.
operationId: getSuccessfullySentChangeEventsForAlertByName
parameters:
- name: eventSubscriptionName
in: path
description: Name of the alert to retrieve change events for
required: true
schema:
type: string
- name: limit
in: query
description: Maximum number of change events to retrieve
schema:
minimum: 0
type: integer
format: int64
default: 15
- name: paginationOffset
in: query
description: Offset for pagination (starting point for records)
schema:
type: integer
format: int64
default: 0
responses:
'200':
description: Successfully sent change events retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: Alert not found
'500':
description: Internal server error
/v1/events/subscriptions/{alertType}/resources:
get:
tags:
- Events
summary: Get list of Event Subscriptions Resources used in filtering Event Subscription
description: Get list of EventSubscription functions used in filtering conditions in Event Subscription
operationId: listEventSubscriptionResources
parameters:
- name: alertType
in: path
description: AlertType
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResultListFilterResourceDescriptor'
/v1/events/subscriptions/{id}/versions:
get:
tags:
- Events
summary: List Event Subscription versions
description: Get a list of all the versions of an Event Subscription identified by `Id`
operationId: listAllEventSubscriptionVersion
parameters:
- name: id
in: path
description: Id of the Event Subscription
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of Event Subscription versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/events/subscriptions/name/{fqn}:
patch:
tags:
- Events
summary: Update an Event Subscriptions by name.
description: Update an existing Event Subscriptions using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchEventSubscription
parameters:
- name: fqn
in: path
description: Name of the event Subscription
required: true
schema:
type: string
requestBody:
description: JsonPatch with array of operations
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/JsonPatch'
example: '[{op:remove, path:/a},{op:add, path: /b, value: val}]'
responses:
default:
description: default response
content:
application/json: {}
/v1/events/subscriptions/testDestination:
post:
tags:
- Events
summary: Send a test message alert to external destinations.
description: Send a test message alert to external destinations of the alert.
operationId: testDestination
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscriptionDestinationTestRequest'
responses:
'200':
description: Test message sent successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
/v1/events/subscriptions/name/{eventSubscriptionName}/syncOffset:
put:
tags:
- Events
summary: Sync Offset for a specific Event Subscription by its name
description: Sync Offset for a specific Event Subscription by its name
operationId: syncOffsetForEventSubscriptionByName
parameters:
- name: eventSubscriptionName
in: path
description: Name of the Event Subscription
required: true
schema:
type: string
responses:
'200':
description: Returns the destinations for the Event Subscription
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionDestination'
'404':
description: Event Subscription with the name {fqn} is not found
components:
schemas:
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'
ResultListFilterResourceDescriptor:
required:
- data
type: object
prop
# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-events-api-openapi.yml