Create a Glossary
Create a new glossary for organizing business terminology.
Body Parameters
Name of the glossary. Must be unique.
Human-readable display name for the glossary.
Description of the glossary in Markdown format.
Array of owner references (users or teams) to assign to the glossary. UUID of the owner entity.
Type of owner entity (e.g., user, team).
Name of the owner entity.
Array of user references who can review glossary term changes. Type of entity (always user).
Array of classification tags to apply to the glossary. Fully qualified name of the tag.
Type of label (e.g., Manual, Derived, Propagated).
State of the tag (e.g., Suggested, Confirmed).
Fully qualified name of the domain to assign for governance purposes.
If true, only one term from this glossary can be applied to an entity at a time.
from metadata.sdk import configure
from metadata.sdk.entities import Glossaries
from metadata.generated.schema.api.data.createGlossary import CreateGlossaryRequest
configure(
host = "https://your-company.getcollate.io/api" ,
jwt_token = "your-jwt-token"
)
request = CreateGlossaryRequest(
name = "BusinessGlossary" ,
displayName = "Business Glossary" ,
description = "Standard business terminology for the organization" ,
mutuallyExclusive = False
)
glossary = Glossaries.create(request)
print ( f "Created: { glossary.fullyQualifiedName } " )
{
"id" : "c2940a98-f147-6g46-cdef-31f0c4406dc3" ,
"name" : "BusinessGlossary" ,
"fullyQualifiedName" : "BusinessGlossary" ,
"displayName" : "Business Glossary" ,
"description" : "Standard business terminology for the organization" ,
"version" : 0.1 ,
"updatedAt" : 1769984330261 ,
"updatedBy" : "admin" ,
"href" : "http://localhost:8585/api/v1/glossaries/c2940a98-f147-6g46-cdef-31f0c4406dc3" ,
"deleted" : false ,
"owners" : [],
"reviewers" : [],
"tags" : [],
"mutuallyExclusive" : false
}
Returns
Returns the created glossary object with all specified properties and system-generated fields.
Response
Unique identifier for the glossary (UUID format).
Fully qualified name of the glossary.
Human-readable display name.
Description of the glossary in Markdown format.
Whether terms in this glossary are mutually exclusive.
List of owners assigned to the glossary.
List of reviewers for glossary term changes.
Classification tags applied to the glossary.
Version number for the entity (starts at 0.1).
Create or Update (PUT)
Use PUT /v1/glossaries instead of POST to perform an upsert. If a glossary with the same fullyQualifiedName already exists, it will be updated; otherwise, a new glossary is created. The request body is the same as POST.
curl -X PUT "{base_url}/api/v1/glossaries" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{ ... same body as POST ... }'
PUT will not return a 409 conflict error if the entity already exists — it will update the existing entity instead.
Error Handling
Code Error Type Description 400BAD_REQUESTInvalid request body or missing required fields 401UNAUTHORIZEDInvalid or missing authentication token 403FORBIDDENUser lacks permission to create glossaries 409ENTITY_ALREADY_EXISTSGlossary with same name already exists (POST only)