OpenMetadata Apps API
Apps marketplace holds to application available for Open-metadata
Apps marketplace holds to application available for Open-metadata
openapi: 3.0.1
info:
title: OpenMetadata APIs Agent Executions Apps 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: Apps
description: Apps marketplace holds to application available for Open-metadata
paths:
/v1/apps/marketplace:
get:
tags:
- Apps
summary: List application
description: Get a list of applications. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.
operationId: listApplications
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,tags
- name: limit
in: query
description: Limit the number of installed applications returned. (1 to 1000000, default = 10)
schema:
maximum: 1000000
minimum: 0
type: integer
format: int32
default: 10
- name: before
in: query
description: Returns list of tests before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of tests 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 KPIs
content:
application/json:
schema:
$ref: '#/components/schemas/AppMarketPlaceDefinitionList'
put:
tags:
- Apps
summary: Create Or Update App
description: Create or Update App, it it does not exist or update an existing KPI.
operationId: createOrUpdateApp
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAppMarketPlaceDefinitionReq'
responses:
'200':
description: 'The updated Application Objective '
content:
application/json:
schema:
$ref: '#/components/schemas/App'
post:
tags:
- Apps
summary: Create a Application
description: Create a application
operationId: createApplication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAppMarketPlaceDefinitionReq'
responses:
'200':
description: The Application
content:
application/json:
schema:
$ref: '#/components/schemas/AppMarketPlaceDefinition'
'400':
description: Bad request
/v1/apps/marketplace/name/{name}:
get:
tags:
- Apps
summary: Get a App by name
description: Get a App by `name`.
operationId: getAppByName
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,tags
- 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: The App
content:
application/json:
schema:
$ref: '#/components/schemas/AppMarketPlaceDefinition'
'404':
description: App for instance {name} is not found
delete:
tags:
- Apps
summary: Delete a App by name
description: Delete a App by `name`.
operationId: deleteAppByName
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
responses:
'200':
description: OK
'404':
description: App for instance {name} is not found
/v1/apps/marketplace/{id}:
get:
tags:
- Apps
summary: Get a app by Id
description: Get a app by `Id`.
operationId: get
parameters:
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,tags
- 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: The App
content:
application/json:
schema:
$ref: '#/components/schemas/AppMarketPlaceDefinition'
'404':
description: App for instance {id} is not found
delete:
tags:
- Apps
summary: Delete a App by Id
description: Delete a App by `Id`.
operationId: deleteApp
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: App for instance {id} is not found
patch:
tags:
- Apps
summary: Updates a App
description: Update an existing App using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchApplication_1
parameters:
- name: id
in: path
description: Id of the App
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/apps/marketplace/async/{id}:
delete:
tags:
- Apps
summary: Asynchronously delete a App by Id
description: Asynchronously delete a App by `Id`.
operationId: deleteAppAsync
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: App for instance {id} is not found
/v1/apps/marketplace/{id}/versions/{version}:
get:
tags:
- Apps
summary: Get a version of the App
description: Get a version of the App by given `id`
operationId: getSpecificAppVersion
parameters:
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: KPI version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: App
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'404':
description: App for instance {id} and version {version} is not found
/v1/apps/marketplace/history:
get:
tags:
- Apps
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_7
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/apps/marketplace/{id}/versions:
get:
tags:
- Apps
summary: List Installed Application versions
description: Get a list of all the versions of a application identified by `id`
operationId: listAllInstalledApplications
parameters:
- name: id
in: path
description: Id of the app
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of installed application versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/apps/marketplace/name/{fqn}:
patch:
tags:
- Apps
summary: Updates an App by name.
description: Update an existing App using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchApplication
parameters:
- name: fqn
in: path
description: Name of the App
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/apps/marketplace/restore:
put:
tags:
- Apps
summary: Restore a soft deleted KPI
description: Restore a soft deleted App.
operationId: restore_6
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreEntity'
responses:
'200':
description: 'Successfully restored the App. '
content:
application/json:
schema:
$ref: '#/components/schemas/AppMarketPlaceDefinition'
/v1/apps/configure/{name}:
post:
tags:
- Apps
summary: Configure an Application
description: Schedule a application to be run on demand.
operationId: configureApplication
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
responses:
'200':
description: The Application
content:
application/json:
schema:
$ref: '#/components/schemas/Response'
'404':
description: Application for instance {id} is not found
/v1/apps:
get:
tags:
- Apps
summary: List installed application
description: Get a list of applications. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.
operationId: listInstalledApplications
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners
- name: limit
in: query
description: Limit the number of installed applications returned. (1 to 1000000, default = 10)
schema:
maximum: 1000000
minimum: 0
type: integer
format: int32
default: 10
- name: before
in: query
description: Returns list of tests before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of tests after this cursor
schema:
type: string
- name: agentType
in: query
description: Filter by agent type(s). Can be a single value or comma-separated values
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 Installed Applications
content:
application/json:
schema:
$ref: '#/components/schemas/AppList'
put:
tags:
- Apps
summary: Create Or Update App
description: Create or Update App, it it does not exist or update an existing KPI.
operationId: createOrUpdateApp_1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateApp'
responses:
'200':
description: 'The updated Application Objective '
content:
application/json:
schema:
$ref: '#/components/schemas/App'
post:
tags:
- Apps
summary: Create a Application
description: Create a application
operationId: createApplication_1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateApp'
responses:
'200':
description: The Application
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'400':
description: Bad request
/v1/apps/name/{name}:
get:
tags:
- Apps
summary: Get a App by name
description: Get a App by `name`.
operationId: getAppByName_1
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners
- 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: The App
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'404':
description: App for instance {name} is not found
delete:
tags:
- Apps
summary: Delete a App by name
description: Delete a App by `name`.
operationId: uninstallAppByName
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: System entity {name} of type SystemApp can not be deleted.
'404':
description: App for instance {name} is not found
/v1/apps/{id}:
get:
tags:
- Apps
summary: Get a app by Id
description: Get a app by `Id`.
operationId: get_1
parameters:
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners
- 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: The App
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'404':
description: App for instance {id} is not found
delete:
tags:
- Apps
summary: Delete a App by Id
description: Delete a App by `Id`.
operationId: uninstallAppByName_1
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'400':
description: System entity {name} of type SystemApp can not be deleted.
'404':
description: App for instance {id} is not found
patch:
tags:
- Apps
summary: Updates a App
description: Update an existing App using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchApplication_3
parameters:
- name: id
in: path
description: Id of the App
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/apps/async/{id}:
delete:
tags:
- Apps
summary: Asynchronously delete a App by Id
description: Asynchronously delete a App by `Id`.
operationId: uninstallAppByNameAsync
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'400':
description: System entity {name} of type SystemApp can not be deleted.
'404':
description: App for instance {id} is not found
/v1/apps/deploy/{name}:
post:
tags:
- Apps
summary: Deploy App to Quartz or Ingestion
description: Deploy App to Quartz or Ingestion.
operationId: deployApplicationToQuartzOrIngestion
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
responses:
'200':
description: Application trigger status code
content:
application/json: {}
'404':
description: Application for instance {id} is not found
/v1/apps/name/{name}/logs:
get:
tags:
- Apps
summary: Retrieve all logs from last ingestion pipeline run for the application
description: Get all logs from last ingestion pipeline run by `Id`.
operationId: getLastLogs
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: after
in: query
description: Returns log chunk after this cursor
schema:
type: string
default: ''
- name: runId
in: query
description: Pipeline run ID to fetch logs for a specific run. If not provided, returns logs for the latest run.
schema:
type: string
- name: limit
in: query
description: Maximum number of lines to return (only applies to streamable logs)
schema:
type: integer
format: int64
default: 1000
responses:
'200':
description: JSON object with the task instance name of the ingestion on each key and log in the value
content:
application/json: {}
'404':
description: Logs for instance {id} is not found
/v1/apps/{id}/versions/{version}:
get:
tags:
- Apps
summary: Get a version of the App
description: Get a version of the App by given `id`
operationId: getSpecificAppVersion_1
parameters:
- name: id
in: path
description: Id of the App
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: App version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: App
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'404':
description: App for instance {id} and version {version} is not found
/v1/apps/installed:
get:
tags:
- Apps
summary: List Entity Reference for installed application
description: 'Get a list of applications '
operationId: listInstalledAppsInformation
responses:
'200':
description: List of Installed Applications Entity Reference
content:
application/json:
schema:
$ref: '#/components/schemas/AppRefList'
/v1/apps/name/{name}/extension:
get:
tags:
- Apps
summary: List App Extension data
description: Get a list of applications Extension data. Use cursor-based pagination to limit the number entries in the list using `offset` query params.
operationId: listAppExtension
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: limit
in: query
description: Limit records. (1 to 1000000, default = 10)
schema:
maximum: 1000000
minimum: 0
type: integer
format: int32
default: 10
- name: offset
in: query
description: Offset records. (0 to 1000000, default = 0)
schema:
maximum: 1000000
minimum: 0
type: integer
format: int32
default: 0
- name: startTs
in: query
description: Filter pipeline status after the given start timestamp
schema:
type: number
- name: extensionType
in: query
description: Get the extension type
schema:
type: string
- name: byName
in: query
description: List extensions by name instead of id
schema:
type: boolean
default: false
responses:
'200':
description: List of Installed Applications Runs
content:
application/json:
schema:
$ref: '#/components/schemas/AppExtension'
/v1/apps/name/{name}/status:
get:
tags:
- Apps
summary: List App Run Records
description: Get a list of applications Run Record. Use cursor-based pagination to limit the number entries in the list using `offset` query params.
operationId: listAppRunRecords
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: limit
in: query
description: Limit records. (1 to 1000000, default = 10)
schema:
maximum: 1000
minimum: 0
type: integer
format: int32
default: 10
- name: offset
in: query
description: Offset records. (0 to 1000000, default = 0)
schema:
maximum: 1000
minimum: 0
type: integer
format: int32
default: 0
- name: startTs
in: query
description: Filter pipeline status after the given start timestamp
schema:
type: number
- name: endTs
in: query
description: Filter pipeline status before the given end timestamp
schema:
type: number
responses:
'200':
description: List of Installed Applications Runs
content:
application/json:
schema:
$ref: '#/components/schemas/AppRunList'
/v1/apps/history:
get:
tags:
- Apps
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_8
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/apps/name/{name}/runs/latest:
get:
tags:
- Apps
summary: Get Latest App Run Record
description: Get a latest applications Run Record.
operationId: latestAppRunRecord
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: after
in: query
description: Returns log chunk after this cursor
schema:
type: string
default: ''
responses:
'200':
description: List of Installed Applications Runs
content:
application/json:
schema:
$ref: '#/components/schemas/AppRunRecord'
/v1/apps/name/{name}/live-indexing-queue:
get:
tags:
- Apps
summary: List Search Index Retry Queue
description: Get the current live indexing retry queue entries for the SearchIndexingApplication.
operationId: listSearchIndexRetryQueue
parameters:
- name: name
in: path
description: Name of the App
required: true
schema:
type: string
- name: limit
in: query
description: Limit records. (1 to 1000, default = 10)
schema:
maximum: 1000
minimum: 0
type: integer
format: int32
default: 10
- name: offset
in: query
description: Offset records. (0 to 1000000, default = 0)
schema:
minimum: 0
type: integer
format: int32
default: 0
responses:
'200':
description: List of retry queue records
content:
application/json: {}
/v1/apps/{id}/versions:
get:
tags:
- Apps
summary: List Installed Application versions
description: Get a list of all the versions of a application identified by `id`
operationId: listAllInstalledApplications_1
parameters:
- name: id
in: path
description: Id of the app
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of installed application versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/apps/name/{fqn}:
patch:
tags:
- Apps
summary: Updates a App by name.
description: Update an existing App using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchApplication_2
parameters:
- name: fqn
in: path
description: Name of the App
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/apps/restore:
put:
tags:
- Apps
summary: Restore a soft deleted KPI
description: Restore a soft deleted App.
operationId: restore_7
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreEntity'
responses:
'200':
description: 'Successfully restored the App. '
content:
application/json:
schema:
$ref: '#/components/schemas/App'
/v1/apps/schedule/{name}:
post:
tags:
- Apps
summary: Schedule an Application
description: Schedule a application to be run on demand.
operationId: scheduleApplication
parameters:
- name: name
in: path
description: Name of the App
required: t
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-apps-api-openapi.yml