OpenMetadata AI Applications API
`AI Applications` are autonomous software entities that use LLM models to perform tasks, make decisions, and interact with data sources.
`AI Applications` are autonomous software entities that use LLM models to perform tasks, make decisions, and interact with data sources.
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-ai-applications-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 AI Applications 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: AI Applications
description: '`AI Applications` are autonomous software entities that use LLM models to perform tasks, make decisions, and interact with data sources.'
paths:
/v1/aiApplications/{id}/followers:
put:
tags:
- AI Applications
summary: Add a follower
description: Add a user identified by `userId` as follower of this application
operationId: addFollower
parameters:
- name: id
in: path
description: Id of the AI Application
required: true
schema:
type: string
format: uuid
requestBody:
description: Id of the user to be added as follower
content:
application/json:
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: application for instance {id} is not found
/v1/aiApplications:
get:
tags:
- AI Applications
summary: List AI applications
description: Get a list of AI 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: listAIApplications
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,followers,tags,extension,domains
- name: limit
in: query
description: Limit the number 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 applications before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of applications 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 applications
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplicationList'
put:
tags:
- AI Applications
summary: Create or update an AI application
description: Create a new AI application, if it does not exist or update an existing application.
operationId: createOrUpdateAIApplication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAIApplication'
responses:
'200':
description: The application
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplication'
'400':
description: Bad request
post:
tags:
- AI Applications
summary: Create an AI application
description: Create a new AI application.
operationId: createAIApplication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAIApplication'
responses:
'200':
description: AI Application
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplication'
'400':
description: Bad request
/v1/aiApplications/{id}:
get:
tags:
- AI Applications
summary: Get an AI application by Id
description: Get an AI application by `Id`.
operationId: getAIApplicationByID
parameters:
- name: id
in: path
description: Id of the AI Application
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,followers,tags,extension,domains
- 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 application
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplication'
'404':
description: Application for instance {id} is not found
delete:
tags:
- AI Applications
summary: Delete an AI application by Id
description: Delete an AI application by `Id`.
operationId: deleteAIApplication
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 AI Application
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: application for instance {id} is not found
patch:
tags:
- AI Applications
summary: Update an AI application
description: Update an existing AI application using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchAIApplication_1
parameters:
- name: id
in: path
description: Id of the AI Application
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/aiApplications/name/{fqn}:
get:
tags:
- AI Applications
summary: Get an AI application by fully qualified name
description: Get an AI application by fully qualified name.
operationId: getAIApplicationByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of AI Application
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,followers,tags,extension,domains
- 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 application
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplication'
'404':
description: Application for instance {fqn} is not found
delete:
tags:
- AI Applications
summary: Delete an AI application by fully qualified name
description: Delete an AI application by `fullyQualifiedName`.
operationId: deleteAIApplicationByFQN
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: fqn
in: path
description: Name of the AI Application
required: true
schema:
type: string
responses:
'200':
description: OK
'404':
description: application for instance {fqn} is not found
patch:
tags:
- AI Applications
summary: Update an AI application by name.
description: Update an existing AI application using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchAIApplication
parameters:
- name: fqn
in: path
description: Name of the AI Application
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/aiApplications/async/{id}:
delete:
tags:
- AI Applications
summary: Asynchronously delete an AI application by Id
description: Asynchronously delete an AI application by `Id`.
operationId: deleteAIApplicationAsync
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 AI Application
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: AI Application for instance {id} is not found
/v1/aiApplications/{id}/followers/{userId}:
delete:
tags:
- AI Applications
summary: Remove a follower
description: Remove the user identified `userId` as a follower of the application.
operationId: deleteFollower
parameters:
- name: id
in: path
description: Id of the AI Application
required: true
schema:
type: string
format: uuid
- name: userId
in: path
description: Id of the user being removed as follower
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
/v1/aiApplications/{id}/versions/{version}:
get:
tags:
- AI Applications
summary: Get a version of the AI application
description: Get a version of the AI application by given `id`
operationId: getSpecificAIApplicationVersion
parameters:
- name: id
in: path
description: Id of the AI Application
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: AI Application version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: AIApplication
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplication'
'404':
description: AI Application for instance {id} and version {version} is not found
/v1/aiApplications/history:
get:
tags:
- AI Applications
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
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/aiApplications/{id}/versions:
get:
tags:
- AI Applications
summary: List AI application versions
description: Get a list of all the versions of an AI Application identified by `id`
operationId: listAllAIApplicationVersion
parameters:
- name: id
in: path
description: Id of the AI Application
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of AI Application versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/aiApplications/restore:
put:
tags:
- AI Applications
summary: Restore a soft deleted AI application
description: Restore a soft deleted AI Application.
operationId: restore
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreEntity'
responses:
'200':
description: 'Successfully restored the AIApplication '
content:
application/json:
schema:
$ref: '#/components/schemas/AIApplication'
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
Verification:
type: object
properties:
isVerified:
type: boolean
verifiedBy:
type: string
verifiedAt:
type: integer
format: int64
verificationNotes:
type: string
certificateUrl:
type: string
Parameters:
type: object
AICompliance:
type: object
properties:
complianceRecords:
type: array
items:
$ref: '#/components/schemas/AIComplianceRecord'
HighRiskSystems:
type: object
properties:
criticalInfrastructure:
type: boolean
educationVocationalTraining:
type: boolean
employment:
type: boolean
essentialPrivateServices:
type: boolean
essentialPublicServices:
type: boolean
lawEnforcement:
type: boolean
migrationAsylumBorderControl:
type: boolean
administrationOfJustice:
type: boolean
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
ConformityAssessment:
type: object
properties:
assessmentRequired:
type: boolean
assessmentType:
type: string
enum:
- Internal
- ThirdParty
- NotRequired
assessmentBody:
type: string
certificateNumber:
type: string
validUntil:
type: integer
format: int64
DimensionScores:
type: object
properties:
gender:
type: number
format: double
race:
type: number
format: double
age:
type: number
format: double
religion:
type: number
format: double
disability:
type: number
format: double
socioeconomic:
type: number
format: double
TransparencyObligations:
type: object
properties:
usersInformed:
type: boolean
deepfakeLabeling:
type: boolean
emotionRecognitionDisclosure:
type: boolean
AssetCertification:
required:
- appliedDate
- expiryDate
- tagLabel
type: object
properties:
tagLabel:
$ref: '#/components/schemas/TagLabel'
appliedDate:
type: integer
format: int64
expiryDate:
type: integer
format: int64
DataClassification:
type: object
properties:
accessesPII:
type: boolean
accessesSensitiveData:
type: boolean
dataCategories:
type: array
items:
type: string
dataRetentionPeriod:
type: string
FrameworkInfo:
type: object
properties:
name:
type: string
enum:
- LangChain
- LlamaIndex
- AutoGen
- CrewAI
- Semantic Kernel
- Haystack
- Custom
version:
type: string
language:
type: string
enum:
- Python
- TypeScript
- JavaScript
- Java
- C#
- Go
SafetyMetrics:
type: object
properties:
piiLeakageRate:
type: number
format: double
harmfulContentRate:
type: number
format: double
promptInjectionAttempts:
type: integer
format: int32
blockedRequests:
type: integer
format: int32
PatternMatch:
required:
- name
- score
type: object
properties:
name:
type: string
regex:
type: string
score:
type: number
format: double
AccountabilityMeasures:
type: object
properties:
hasOwner:
type: boolean
subjectToHumanOversight:
type: boolean
auditTrailEnabled:
type: boolean
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'
CreateAIApplication:
required:
- applicationType
- name
type: object
properties:
name:
maxLength: 256
minLength: 1
pattern: ^((?!::).)*$
type: string
displayName:
type: string
description:
type: string
applicationType:
type: string
enum:
- Chatbot
- Agent
- Copilot
- Assistant
- RAG
- CodeGenerator
- DataAnalyst
- AutomationBot
- MultiAgent
- Custom
developmentStage:
type: string
enum:
- Proposal
- Development
- Testing
- Staging
- Production
- Deprecated
- Unauthorized
modelConfigurations:
type: array
items:
$ref: '#/components/schemas/ModelConfiguration'
primaryModel:
maxLength: 3072
minLength: 1
type: string
promptTemplates:
type: array
items:
$ref: '#/components/schemas/EntityReference'
tools:
type: array
items:
$ref: '#/components/schemas/EntityReference'
dataSources:
type: array
items:
$ref: '#/components/schemas/EntityReference'
knowledgeBases:
type: array
items:
$ref: '#/components/schemas/EntityReference'
upstreamApplications:
type: array
items:
$ref: '#/components/schemas/EntityReference'
downstreamApplications:
type: array
items:
$ref: '#/components/schemas/EntityReference'
framework:
$ref: '#/components/schemas/FrameworkInfo'
governanceMetadata:
$ref: '#/components/schemas/GovernanceMetadata'
biasMetrics:
$ref: '#/components/schemas/BiasMetrics'
performanceMetrics:
$ref: '#/components/schemas/PerformanceMetrics'
qualityMetrics:
$ref: '#/components/schemas/QualityMetrics'
safetyMetrics:
$ref: '#/components/schemas/SafetyMetrics'
testSuites:
type: array
items:
$ref: '#/components/schemas/EntityReference'
sourceCode:
type: string
deploymentUrl:
type: string
documentation:
type: string
tags:
type: array
items:
$ref: '#/components/schemas/TagLabel'
owners:
type: array
items:
$ref: '#/components/schemas/EntityReference'
extension:
type: object
domains:
type: array
items:
type: string
dataProducts:
type: array
items:
type: string
reviewers:
type: array
items:
$ref: '#/components/schemas/EntityReference'
lifeCycle:
$ref: '#/components/schemas/LifeCycle'
UsageStats:
required:
- count
type: object
properties:
count:
minimum: 0
type: integer
format: int32
percentileRank:
type: number
format: double
PerformanceMetrics:
type: object
properties:
totalExecutions:
type: integer
format: int32
successRate:
type: number
format: double
averageLatencyMs:
type: number
format: double
p95LatencyMs:
type: number
format: double
p99LatencyMs:
type: number
format: double
averageCost:
type: number
format: double
totalCost:
type: number
format: double
currency:
type: string
lastExecutionAt:
type: integer
format: int64
EthicalAIAssessment:
type: object
properties:
privacyLevel:
type: string
enum:
- Public
- Sensitive
- PersonalData
fairnessRisk:
type: string
enum:
- Low
- Medium
- High
biasMitigationCoverage:
type: string
enum:
- None
- Partial
- Full
reliabilitySafetyRisk:
type: string
enum:
- Low
- Moderate
- High
transparencyLevel:
type: string
enum:
- None
- Partial
- FullDisclosure
accountabilityMeasures:
$ref: '#/components/schemas/AccountabilityMeasures'
environmentalConsciousness:
type: string
enum:
- LowRisk
- MediumRisk
- HighRisk
Style:
type: object
properties:
color:
type: string
iconURL:
type: string
coverImage:
$ref: '#/components/schemas/CoverImage'
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
ModelConfiguration:
required:
- model
- purpose
type: object
properties:
model:
$ref: '#/components/schemas/EntityReference'
purpose:
type: string
enum:
- Primary
- Reasoning
- Embedding
- CodeGeneration
- Fallback
- CostOptimization
selectionCriteria:
$ref: '#/components/schemas/SelectionCriteria'
parameters:
$ref: '#/components/schemas/Parameters'
FieldChange:
type: object
properties:
name:
type: string
oldValue:
type: object
newValue:
type: object
ProhibitedPractices:
type: object
properties:
subliminalManipulativeTechniques:
type: boolean
exploitationOfVulnerabilities:
type: boolean
socialScoringSystem:
type: boolean
riskAssessmentCriminalOffences:
type: boolean
facialRecognitionDatabaseCreation:
type: boolean
emotionInferenceWorkplaceEducation:
type: boolean
biometricCategorisation:
type: boolean
realTimeBiometricIdentification:
type: boolean
ChangeSummaryMap:
type: object
AIComplianceRecord:
required:
- framework
- status
type: object
properties:
framework:
type: string
enum:
- EU_AI_Act
- Singapore_Model_AI_Governance
- Canada_AIDA
- US_AI_Bill_of_Rights
- NIST_AI_RMF
- ISO_IEC_42001
- UK_AI_Regulation
- China_AI_Regulations
- Custom
assessedBy:
type: string
assessedAt:
type: integer
format: int64
nextReviewDate:
type: integer
format: int64
status:
type: string
enum:
- Compliant
- PartiallyCompliant
- NonCompliant
- UnderReview
- NotApplicable
euAIAct:
$ref: '#/components/schemas/EUAIActCompliance'
ethicalAssessment:
$ref: '#/components/schemas/EthicalAIAssessment'
scopeAndDeployment:
$ref: '#/components/schemas/ScopeAndDeployment'
verification:
$ref: '#/components/schemas/Verification'
notes:
type: string
remediationRequired:
type: array
items:
type: string
ChangeEvent:
required:
- entityId
- entityType
- eventType
- id
- timestamp
type: object
properties:
id:
type: string
format: uuid
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
entityType:
type: string
entityId:
type: string
format: uuid
domains:
type: array
items:
type: string
format: uuid
entityFullyQualifiedName:
type: string
previousVersion:
type: number
format: double
currentVersion:
type: number
format: double
userName:
type: string
impersonatedBy:
type: string
timestamp:
type: integer
format: int64
changeDescription:
$ref: '#/components/schemas/ChangeDescription'
incrementalChangeDescription:
$ref: '#/components/schemas/ChangeDescription'
entity:
type: object
BiasMetrics:
type: object
properties:
lastEvaluatedAt:
type: integer
format: int64
evaluationMethod:
type: string
overallBiasScore:
type: number
format: double
demographicParity:
type: number
format: double
equalizedOdds:
type: number
format: double
disparateImpact:
type: number
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-ai-applications-api-openapi.yml