OpenMetadata API Endpoint API
A `API Endpoint` is a specific endpoint of an API that is part of an API Collection..
A `API Endpoint` is a specific endpoint of an API that is part of an API Collection..
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-api-endpoint-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 API Endpoint 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: API Endpoint
description: A `API Endpoint` is a specific endpoint of an API that is part of an API Collection..
paths:
/v1/apiEndpoints/{id}/followers:
put:
tags:
- API Endpoint
summary: Add a follower
description: Add a user identified by `userId` as followed of this APiEndpoint.
operationId: addFollower_5
parameters:
- name: id
in: path
description: Id of the APIEndpoint
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: APIEndpoint for instance {id} is not found
/v1/apiEndpoints/bulk:
put:
tags:
- API Endpoint
summary: Bulk create or update API endpoints
description: Create or update multiple API endpoints in a single operation. Returns a BulkOperationResult with success/failure details for each API endpoint.
operationId: bulkCreateOrUpdateAPIEndpoints
parameters:
- name: async
in: query
schema:
type: boolean
default: false
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateAPIEndpoint'
responses:
'200':
description: Bulk operation results
content:
application/json:
schema:
$ref: '#/components/schemas/BulkOperationResult'
'202':
description: Bulk operation accepted for async processing
content:
application/json:
schema:
$ref: '#/components/schemas/BulkOperationResult'
'400':
description: Bad request
/v1/apiEndpoints:
get:
tags:
- API Endpoint
summary: List API Endpoints
description: Get a list of API Endpoints, optionally filtered by `service` it belongs to. 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: listAPIEndpoints
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,followers,tags,extension,domains,dataProducts,sourceHash
- name: service
in: query
description: Filter APIEndpoints by service name
schema:
type: string
example: OpenMetadata API Service
- name: apiCollection
in: query
description: Filter APIEndpoints by apiCollection name
schema:
type: string
example: UsersAPI
- name: limit
in: query
description: Limit the number APIEndpoints 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 APIEndpoints before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of APIEndpoints 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 API Endpoints
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpointList'
put:
tags:
- API Endpoint
summary: Update API Endpoint
description: Create a API Endpoint, it it does not exist or update an existing API Endpoint.
operationId: createOrUpdateAPIEndpoint
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAPIEndpoint'
responses:
'200':
description: 'The updated api endpoint '
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpoint'
post:
tags:
- API Endpoint
summary: Create a API Endpoint
description: Create a API Endpoint under an existing `service`.
operationId: createAPIEndpoint
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAPIEndpoint'
responses:
'200':
description: The API Endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpoint'
'400':
description: Bad request
/v1/apiEndpoints/name/{fqn}:
get:
tags:
- API Endpoint
summary: Get a Endpoint by fully qualified name.
description: Get a Endpoint by fully qualified name.
operationId: getEndpointByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of the Endpoint
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,dataProducts,sourceHash
- 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 APIEndpoint
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpoint'
'404':
description: Endpoint for instance {fqn} is not found
delete:
tags:
- API Endpoint
summary: Delete a APIEndpoint by fully qualified name
description: Delete a APIEndpoint by `fullyQualifiedName`.
operationId: deleteAPIEndpointByFQN
parameters:
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: fqn
in: path
description: Fully qualified name of the APIEndpoint
required: true
schema:
type: string
responses:
'200':
description: OK
'404':
description: APIEndpoint for instance {fqn} is not found
patch:
tags:
- API Endpoint
summary: Update a APIEndpoint using name.
description: Update an existing APIEndpoint using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchAPIEndpoint
parameters:
- name: fqn
in: path
description: Name of the APIEndpoint
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/apiEndpoints/{id}:
get:
tags:
- API Endpoint
summary: Get a APIEndpoint by id
description: Get a APIEndpoint by `id`.
operationId: getEndpointById
parameters:
- name: id
in: path
description: Id of the APIEndpoint
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,dataProducts,sourceHash
- 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 APIEndpoint
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpoint'
'404':
description: APIEndpoint for instance {id} is not found
delete:
tags:
- API Endpoint
summary: Delete a APIEndpoint by id
description: Delete a APIEndpoint by `id`.
operationId: deleteAPIEndpoint
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 APIEndpoint
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: APIEndpoint for instance {id} is not found
patch:
tags:
- API Endpoint
summary: Update a APIEndpoint
description: Update an existing APIEndpoint using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchAPIEndpoint_1
parameters:
- name: id
in: path
description: Id of the APIEndpoint
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/apiEndpoints/async/{id}:
delete:
tags:
- API Endpoint
summary: Asynchronously delete a APIEndpoint by id
description: Asynchronously delete a APIEndpoint by `id`.
operationId: deleteAPIEndpointAsync
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 APIEndpoint
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: APIEndpoint for instance {id} is not found
/v1/apiEndpoints/{id}/followers/{userId}:
delete:
tags:
- API Endpoint
summary: Remove a follower
description: Remove the user identified `userId` as a follower of the APIEndpoint.
operationId: deleteFollower_5
parameters:
- name: id
in: path
description: Id of the APIEndpoint
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
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
/v1/apiEndpoints/{id}/versions/{version}:
get:
tags:
- API Endpoint
summary: Get a version of the APIEndpoint
description: Get a version of the APIEndpoint by given `id`
operationId: getSpecificEndpointVersion
parameters:
- name: id
in: path
description: Id of the APIEndpoint
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: APIEndpoint version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: APIEndpoint Version
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpoint'
'404':
description: APIEndpoint for instance {id} and version {version} is not found
/v1/apiEndpoints/history:
get:
tags:
- API Endpoint
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_6
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/apiEndpoints/{id}/versions:
get:
tags:
- API Endpoint
summary: List API Endpoint versions
description: Get a list of all the versions of a APIEndpoint identified by `id`
operationId: listAllAPIEndpointVersion
parameters:
- name: id
in: path
description: Id of the APIEndpoint
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of APIEndpoint versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/apiEndpoints/restore:
put:
tags:
- API Endpoint
summary: Restore a soft deleted APIEndpoint
description: Restore a soft deleted APIEndpoint.
operationId: restore_5
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreEntity'
responses:
'200':
description: 'Successfully restored the APIEndpoint. '
content:
application/json:
schema:
$ref: '#/components/schemas/APIEndpoint'
/v1/apiEndpoints/{id}/vote:
put:
tags:
- API Endpoint
summary: Update Vote for a APIEndpoint
description: Update vote for a APIEndpoint
operationId: updateVoteForAPIEndpoint
parameters:
- name: id
in: path
description: Id of the Entity
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VoteRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: model for instance {id} is not found
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
Field:
required:
- dataType
- name
type: object
properties:
name:
maxLength: 128
minLength: 1
type: string
displayName:
type: string
dataType:
type: string
enum:
- RECORD
- 'NULL'
- BOOLEAN
- INT
- LONG
- BYTES
- FLOAT
- DOUBLE
- TIMESTAMP
- TIMESTAMPZ
- TIME
- DATE
- STRING
- ARRAY
- MAP
- ENUM
- UNION
- FIXED
- ERROR
- UNKNOWN
dataTypeDisplay:
type: string
description:
type: string
fullyQualifiedName:
maxLength: 3072
minLength: 1
type: string
tags:
type: array
items:
$ref: '#/components/schemas/TagLabel'
children:
type: array
items:
$ref: '#/components/schemas/Field'
AssetCertification:
required:
- appliedDate
- expiryDate
- tagLabel
type: object
properties:
tagLabel:
$ref: '#/components/schemas/TagLabel'
appliedDate:
type: integer
format: int64
expiryDate:
type: integer
format: int64
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'
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
ChangeSummaryMap:
type: object
BulkResponse:
type: object
properties:
request:
type: object
message:
type: string
status:
type: integer
format: int32
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
VoteRequest:
type: object
properties:
updatedVoteType:
type: string
enum:
- votedUp
- votedDown
- unVoted
EntityError:
type: object
properties:
message:
type: string
entity:
type: object
BulkOperationResult:
type: object
properties:
dryRun:
type: boolean
status:
type: string
enum:
- success
- failure
- aborted
- partialSuccess
- running
abortReason:
type: string
numberOfRowsProcessed:
minimum: 0
type: integer
format: int32
numberOfRowsPassed:
minimum: 0
type: integer
format: int32
numberOfRowsFailed:
minimum: 0
type: integer
format: int32
successRequest:
type: array
items:
$ref: '#/components/schemas/BulkResponse'
failedRequest:
type: array
items:
$ref: '#/components/schemas/BulkResponse'
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'
CreateAPIEndpoint:
required:
- apiCollection
- name
type: object
properties:
name:
maxLength: 256
minLength: 1
pattern: ^((?!::).)*$
type: string
displayName:
type: string
description:
type: string
apiCollection:
maxLength: 3072
minLength: 1
type: string
endpointURL:
type: string
format: uri
requestMethod:
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
- HEAD
- CONNECT
- OPTIONS
- TRACE
requestSchema:
$ref: '#/components/schemas/APISchema'
responseSchema:
$ref: '#/components/schemas/APISchema'
owners:
type: array
items:
$ref: '#/components/schemas/EntityReference'
tags:
type: array
items:
$ref: '#/components/schemas/TagLabel'
extension:
type: object
sourceUrl:
type: string
domains:
type: array
items:
type: string
dataProducts:
type: array
items:
type: string
lifeCycle:
$ref: '#/components/schemas/LifeCycle'
sourceHash:
maxLength: 32
minLength: 1
type: string
reviewers:
type: array
items:
$ref: '#/components/schemas/EntityReference'
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
CoverImage:
type: object
properties:
url:
type: string
position:
type: string
TagLabelMetadata:
type: object
properties:
recognizer:
$ref: '#/components/schemas/TagLabelRecognizerMetadata'
expiryDate:
type: integer
format: int64
APIEndpoint:
required:
- id
- name
- service
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
impersonatedBy:
type: string
endpointURL:
type: string
format: uri
requestMethod:
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
- HEAD
- CONNECT
- OPTIONS
- TRACE
requestSchema:
$ref: '#/components/schemas/APISchema'
responseSchema:
$ref: '#/components/schemas/APISchema'
apiCollection:
$ref: '#/components/schemas/EntityReference'
href:
type: string
format: uri
owners:
type: array
items:
$ref: '#/components/schemas/EntityReference'
followers:
type: array
items:
$ref: '#/components/schemas/EntityReference'
tags:
type: array
items:
$ref: '#/components/schemas/TagLabel'
service:
$ref: '#/components/schemas/EntityReference'
serviceType:
type: string
enum:
- Rest
- WEBHOOK
changeDescription:
$ref: '#/components/schemas/ChangeDescription'
incrementalChangeDescription:
$ref: '#/components/schemas/ChangeDescription'
deleted:
type: boolean
extension:
type: object
domains:
type: array
items:
$ref: '#/components/schemas/EntityReference'
dataProducts:
type: array
items:
$ref: '#/components/schemas/EntityReference'
dataContract:
$ref: '#/components/schemas/EntityReference'
votes:
$ref: '#/components/schemas/Votes'
lifeCycle:
$ref: '#/components/schemas/LifeCycle'
certification:
$ref: '#/components/schemas/AssetCertification'
sourceHash:
maxLength: 32
minLength: 1
type: string
entityStatus:
type: string
enum:
- Draft
- In Review
- Approved
- Archived
- Deprecated
- Rejected
- Unprocessed
provider:
type: string
enum:
- system
- user
- automation
children:
type: array
items:
$ref: '#/components/schemas/EntityReference'
style:
$ref: '#/components/schemas/Style'
experts:
type: array
items:
$ref: '#/components/schemas/EntityReference'
reviewers:
type: array
items:
$ref: '#/components/schemas/EntityReference'
usageSummary:
$ref: '#/components/schemas/UsageDetails'
TagLabel:
required:
- labelType
- source
- state
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-api-endpoint-api-openapi.yml