OpenMetadata Glossaries API
A `Glossary` is collection of hierarchical `GlossaryTerms`.
A `Glossary` is collection of hierarchical `GlossaryTerms`.
openapi: 3.0.1
info:
title: OpenMetadata APIs Agent Executions Glossaries 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: Glossaries
description: A `Glossary` is collection of hierarchical `GlossaryTerms`.
paths:
/v1/glossaries:
get:
tags:
- Glossaries
summary: List glossaries
description: Get a list of glossaries. 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: listGlossaries
parameters:
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,tags,reviewers,usageCount,termCount,domains,extension
- name: limit
in: query
description: Limit the number glossaries 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 glossaries before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of glossaries 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 glossaries
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryList'
put:
tags:
- Glossaries
summary: Create or update a glossary
description: Create a new glossary, if it does not exist or update an existing glossary.
operationId: createOrUpdateGlossary
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGlossary'
responses:
'200':
description: The glossary
content:
application/json:
schema:
$ref: '#/components/schemas/Glossary'
'400':
description: Bad request
post:
tags:
- Glossaries
summary: Create a glossary
description: Create a new glossary.
operationId: createGlossary
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGlossary'
responses:
'200':
description: The glossary
content:
application/json:
schema:
$ref: '#/components/schemas/Glossary'
'400':
description: Bad request
/v1/glossaries/name/{name}:
get:
tags:
- Glossaries
summary: Get a glossary by name
description: Get a glossary by name.
operationId: getGlossaryByFQN
parameters:
- name: name
in: path
description: Name of the glossary
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,tags,reviewers,usageCount,termCount,domains,extension
- 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 glossary
content:
application/json:
schema:
$ref: '#/components/schemas/Glossary'
'404':
description: Glossary for instance {name} is not found
delete:
tags:
- Glossaries
summary: Delete a glossary by name
description: Delete a glossary by `name`.
operationId: deleteGlossaryByName
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: name
in: path
description: Name of the glossary
required: true
schema:
type: string
responses:
'200':
description: OK
'404':
description: glossary for instance {name} is not found
/v1/glossaries/{id}:
get:
tags:
- Glossaries
summary: Get a glossary by Id
description: Get a glossary by `Id`.
operationId: getGlossaryByID
parameters:
- name: id
in: path
description: Id of the glossary
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: owners,tags,reviewers,usageCount,termCount,domains,extension
- 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 glossary
content:
application/json:
schema:
$ref: '#/components/schemas/Glossary'
'404':
description: Glossary for instance {id} is not found
delete:
tags:
- Glossaries
summary: Delete a glossary by Id
description: Delete a glossary by `Id`.
operationId: deleteGlossary
parameters:
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the glossary
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: glossary for instance {id} is not found
patch:
tags:
- Glossaries
summary: Update a glossary
description: Update an existing glossary using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchGlossary_1
parameters:
- name: id
in: path
description: Id of the glossary
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/glossaries/async/{id}:
delete:
tags:
- Glossaries
summary: Asynchronously delete a glossary by Id
description: Asynchronously delete a glossary by `Id`.
operationId: deleteGlossaryAsync
parameters:
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the glossary
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: glossary for instance {id} is not found
/v1/glossaries/name/{name}/export:
get:
tags:
- Glossaries
summary: Export glossary in CSV format
operationId: exportGlossary
parameters:
- name: name
in: path
description: Name of the glossary
required: true
schema:
type: string
responses:
'200':
description: Exported csv with glossary terms
content:
application/json:
schema:
type: string
/v1/glossaries/name/{name}/exportAsync:
get:
tags:
- Glossaries
summary: Export glossary in CSV format
operationId: exportGlossary_1
parameters:
- name: name
in: path
description: Name of the glossary
required: true
schema:
type: string
responses:
'200':
description: Exported csv with glossary terms
content:
application/json:
schema:
$ref: '#/components/schemas/CSVExportResponse'
/v1/glossaries/documentation/csv:
get:
tags:
- Glossaries
summary: Get CSV documentation
operationId: getCsvDocumentation
responses:
default:
description: default response
content:
application/json:
schema:
type: string
/v1/glossaries/{id}/versions/{version}:
get:
tags:
- Glossaries
summary: Get a version of the glossaries
description: Get a version of the glossary by given `Id`
operationId: getSpecificGlossaryVersion
parameters:
- name: id
in: path
description: Id of the glossary
required: true
schema:
type: string
format: uuid
- name: version
in: path
description: glossary version number in the form `major`.`minor`
required: true
schema:
type: string
example: 0.1 or 1.1
responses:
'200':
description: glossaries
content:
application/json:
schema:
$ref: '#/components/schemas/Glossary'
'404':
description: Glossary for instance {id} and version {version} is not found
/v1/glossaries/name/{name}/import:
put:
tags:
- Glossaries
summary: Import glossary terms from CSV to create, and update glossary terms
operationId: importGlossary
parameters:
- name: name
in: path
description: Name of the glossary
required: true
schema:
type: string
- name: dryRun
in: query
description: Dry-run when true is used for validating the CSV without really importing it. (default=true)
schema:
type: boolean
default: true
requestBody:
content:
text/plain:
schema:
type: string
responses:
'200':
description: Import result
content:
application/json:
schema:
$ref: '#/components/schemas/CsvImportResult'
/v1/glossaries/name/{name}/importAsync:
put:
tags:
- Glossaries
summary: Import glossary in CSV format asynchronously
operationId: importGlossaryAsync
parameters:
- name: name
in: path
description: Name of the glossary
required: true
schema:
type: string
- name: dryRun
in: query
description: Dry run the import
schema:
type: boolean
default: true
requestBody:
description: CSV data to import
content:
text/plain:
schema:
type: string
required: true
responses:
'200':
description: Import initiated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CsvImportResult'
/v1/glossaries/history:
get:
tags:
- Glossaries
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_29
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/glossaries/{id}/versions:
get:
tags:
- Glossaries
summary: List glossary versions
description: Get a list of all the versions of a glossary identified by `id`
operationId: listAllGlossaryVersion
parameters:
- name: id
in: path
description: Id of the glossary
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of glossary versions
content:
application/json:
schema:
$ref: '#/components/schemas/EntityHistory'
/v1/glossaries/name/{fqn}:
patch:
tags:
- Glossaries
summary: Update a glossary using name.
description: Update an existing glossary using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchGlossary
parameters:
- name: fqn
in: path
description: Name of the glossary
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/glossaries/restore:
put:
tags:
- Glossaries
summary: Restore a soft deleted glossary
description: Restore a soft deleted Glossary.
operationId: restore_21
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreEntity'
responses:
'200':
description: 'Successfully restored the Glossary '
content:
application/json:
schema:
$ref: '#/components/schemas/Glossary'
/v1/glossaries/{id}/vote:
put:
tags:
- Glossaries
summary: Update Vote for a Entity
description: Update vote for a Entity
operationId: updateVoteForEntity_9
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
/v1/glossaryTerms/{id}/relations:
post:
tags:
- Glossaries
summary: Add a typed relation to another glossary term
description: Add a typed semantic relation (e.g., broader, narrower, synonym) from this glossary term to another.
operationId: addTermRelation
parameters:
- name: id
in: path
description: Id of the glossary term
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TermRelation'
responses:
'200':
description: The updated glossary term
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTerm'
'404':
description: Glossary term not found
/v1/glossaryTerms/{id}/assets/add:
put:
tags:
- Glossaries
summary: Bulk Add Glossary Term to Assets
description: Bulk Add Glossary Term to Assets
operationId: bulkAddGlossaryTermToAssets
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/AddGlossaryToAssetsRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BulkOperationResult'
'404':
description: model for instance {id} is not found
/v1/glossaryTerms/{id}/assets/remove:
put:
tags:
- Glossaries
summary: Bulk Remove Glossary Term from Assets
description: Bulk Remove Glossary Term from Assets
operationId: bulkRemoveGlossaryTermFromAssets
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/AddGlossaryToAssetsRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeEvent'
'404':
description: model for instance {id} is not found
/v1/glossaryTerms:
get:
tags:
- Glossaries
summary: List glossary terms
description: Get a list of glossary terms. 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: listGlossaryTerm
parameters:
- name: glossary
in: query
description: List glossary terms filtered by glossary identified by Id given in `glossary` parameter.
schema:
type: string
example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount
- name: parent
in: query
description: List glossary terms filtered by children of glossary term identified by Id given in `parent` parameter.
schema:
type: string
example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount
- name: limit
in: query
description: Limit the number glossary terms 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 glossary terms before this cursor
schema:
type: string
- name: after
in: query
description: Returns list of glossary terms 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
- name: directChildrenOf
in: query
description: List glossary terms filtered to retrieve the first level/immediate children of the glossary term `directChildrenOf` parameter.
schema:
type: string
- name: entityStatus
in: query
description: 'Filter by entity status (comma-separated: Approved,Draft,In Review,Rejected,Deprecated,Unprocessed)'
schema:
type: string
responses:
'200':
description: List of glossary terms
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTermList'
put:
tags:
- Glossaries
summary: Create or update a glossary term
description: Create a new glossary term, if it does not exist or update an existing glossary term.
operationId: createOrUpdateGlossaryTerm
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGlossaryTerm'
responses:
'200':
description: The glossary
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTerm'
'400':
description: Bad request
post:
tags:
- Glossaries
summary: Create a glossary term
description: Create a new glossary term.
operationId: createGlossaryTerm
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGlossaryTerm'
responses:
'200':
description: The glossary term
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTerm'
'400':
description: Bad request
/v1/glossaryTerms/createMany:
post:
tags:
- Glossaries
summary: Create multiple glossary terms at once
description: Create multiple new glossary terms.
operationId: createManyGlossaryTerm
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateGlossaryTerm'
responses:
'200':
description: The glossary term
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTerm'
'400':
description: Bad request
/v1/glossaryTerms/name/{fqn}:
get:
tags:
- Glossaries
summary: Get a glossary term by fully qualified name
description: Get a glossary term by `fullyQualifiedName`.
operationId: getGlossaryTermByFQN
parameters:
- name: fqn
in: path
description: Fully qualified name of the glossary term
required: true
schema:
type: string
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount
- 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 glossary term
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTerm'
'404':
description: Glossary term for instance {fqn} is not found
delete:
tags:
- Glossaries
summary: Delete a glossary term by fully qualified name
description: Delete a glossary term by `fullyQualifiedName`.
operationId: deleteGlossaryTermByName
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: Fully qualified name of the glossary term
required: true
schema:
type: string
responses:
'200':
description: OK
'404':
description: glossaryTerm for instance {fqn} is not found
patch:
tags:
- Glossaries
summary: Update a glossary term by name.
description: Update an existing glossary term using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchGlossaryTerm
parameters:
- name: fqn
in: path
description: Name of the glossary term
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/glossaryTerms/{id}:
get:
tags:
- Glossaries
summary: Get a glossary term by Id
description: Get a glossary term by `Id`.
operationId: getGlossaryTermByID
parameters:
- name: id
in: path
description: Id of the glossary term
required: true
schema:
type: string
format: uuid
- name: fields
in: query
description: Fields requested in the returned resource
schema:
type: string
example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount
- 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 glossary term
content:
application/json:
schema:
$ref: '#/components/schemas/GlossaryTerm'
'404':
description: Glossary term for instance {id} is not found
delete:
tags:
- Glossaries
summary: Delete a glossary term by Id
description: Delete a glossary term by `Id`.
operationId: delete
parameters:
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the glossary term
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: glossaryTerm for instance {id} is not found
patch:
tags:
- Glossaries
summary: Update a glossary term
description: Update an existing glossary term using JsonPatch.
externalDocs:
description: JsonPatch RFC
url: https://tools.ietf.org/html/rfc6902
operationId: patchGlossaryTerm_1
parameters:
- name: id
in: path
description: Id of the glossary term
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/glossaryTerms/async/{id}:
delete:
tags:
- Glossaries
summary: Asynchronously delete a glossary term by Id
description: Asynchronously delete a glossary term by `Id`.
operationId: deleteByIdAsync
parameters:
- name: recursive
in: query
description: Recursively delete this entity and it's children. (Default `false`)
schema:
type: boolean
default: false
- name: hardDelete
in: query
description: Hard delete the entity. (Default = `false`)
schema:
type: boolean
default: false
- name: id
in: path
description: Id of the glossary term
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
'404':
description: glossaryTerm for instance {id} is not found
/v1/glossaryTerms/name/{fqn}/export:
get:
tags:
- Glossaries
summary: Export glossary term in CSV format
description: Export glossary term and its children in CSV format.
operationId: exportGlossaryTerm
parameters:
- name: fqn
in: path
description: Fully qualified name of the glossary term
required: true
schema:
type: string
response
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-glossaries-api-openapi.yml