Skip to main content
POST
https://sandbox.getcollate.io/api
/
v1
/
glossaries
POST /v1/glossaries
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
}

Create a Glossary

Create a new glossary for organizing business terminology.

Body Parameters

name
string
required
Name of the glossary. Must be unique.
displayName
string
Human-readable display name for the glossary.
description
string
Description of the glossary in Markdown format.
owners
array
Array of owner references (users or teams) to assign to the glossary.
reviewers
array
Array of user references who can review glossary term changes.
tags
array
Array of classification tags to apply to the glossary.
domain
string
Fully qualified name of the domain to assign for governance purposes.
mutuallyExclusive
boolean
default:"false"
If true, only one term from this glossary can be applied to an entity at a time.
POST /v1/glossaries
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

id
string
Unique identifier for the glossary (UUID format).
name
string
Glossary name.
fullyQualifiedName
string
Fully qualified name of the glossary.
displayName
string
Human-readable display name.
description
string
Description of the glossary in Markdown format.
mutuallyExclusive
boolean
Whether terms in this glossary are mutually exclusive.
owners
array
List of owners assigned to the glossary.
reviewers
array
List of reviewers for glossary term changes.
tags
array
Classification tags applied to the glossary.
version
number
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

CodeError TypeDescription
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)