Skip to main content
POST
https://sandbox.getcollate.io/api
/
v1
/
glossaryTerms
POST /v1/glossaryTerms
from metadata.sdk import configure
from metadata.sdk.entities import GlossaryTerms
from metadata.generated.schema.api.data.createGlossaryTerm import CreateGlossaryTermRequest

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

request = CreateGlossaryTermRequest(
    name="Revenue",
    glossary="BusinessGlossary",
    displayName="Revenue",
    description="Total income generated from business operations",
    synonyms=["Income", "Earnings", "Sales"]
)

term = GlossaryTerms.create(request)
print(f"Created: {term.fullyQualifiedName}")
{
  "id": "d3a50b09-g258-7h57-defg-42g1d5517ed4",
  "name": "Revenue",
  "fullyQualifiedName": "BusinessGlossary.Revenue",
  "displayName": "Revenue",
  "description": "Total income generated from business operations",
  "synonyms": ["Income", "Earnings", "Sales"],
  "glossary": {
    "id": "c2940a98-f147-6g46-cdef-31f0c4406dc3",
    "type": "glossary",
    "name": "BusinessGlossary",
    "fullyQualifiedName": "BusinessGlossary",
    "deleted": false
  },
  "version": 0.1,
  "updatedAt": 1769984330261,
  "updatedBy": "admin",
  "href": "http://localhost:8585/api/v1/glossaryTerms/d3a50b09-g258-7h57-defg-42g1d5517ed4",
  "deleted": false,
  "owners": [],
  "tags": [],
  "children": [],
  "relatedTerms": []
}

Create a Glossary Term

Create a new glossary term within a glossary.

Body Parameters

name
string
required
Name of the glossary term. Must be unique within the parent glossary or parent term.
glossary
string
required
Fully qualified name of the parent glossary (e.g., BusinessGlossary).
displayName
string
Human-readable display name for the glossary term.
description
string
Description of the glossary term in Markdown format.
parent
string
Fully qualified name of the parent glossary term for creating nested terms (e.g., BusinessGlossary.Revenue).
synonyms
array
Array of synonym strings for this term.
Array of fully qualified names of related glossary terms.
owners
array
Array of owner references (users or teams) to assign to the glossary term.
tags
array
Array of classification tags to apply.
domain
string
Fully qualified name of the domain to assign for governance purposes.
style
object
Visual styling for the glossary term.
POST /v1/glossaryTerms
from metadata.sdk import configure
from metadata.sdk.entities import GlossaryTerms
from metadata.generated.schema.api.data.createGlossaryTerm import CreateGlossaryTermRequest

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

request = CreateGlossaryTermRequest(
    name="Revenue",
    glossary="BusinessGlossary",
    displayName="Revenue",
    description="Total income generated from business operations",
    synonyms=["Income", "Earnings", "Sales"]
)

term = GlossaryTerms.create(request)
print(f"Created: {term.fullyQualifiedName}")
{
  "id": "d3a50b09-g258-7h57-defg-42g1d5517ed4",
  "name": "Revenue",
  "fullyQualifiedName": "BusinessGlossary.Revenue",
  "displayName": "Revenue",
  "description": "Total income generated from business operations",
  "synonyms": ["Income", "Earnings", "Sales"],
  "glossary": {
    "id": "c2940a98-f147-6g46-cdef-31f0c4406dc3",
    "type": "glossary",
    "name": "BusinessGlossary",
    "fullyQualifiedName": "BusinessGlossary",
    "deleted": false
  },
  "version": 0.1,
  "updatedAt": 1769984330261,
  "updatedBy": "admin",
  "href": "http://localhost:8585/api/v1/glossaryTerms/d3a50b09-g258-7h57-defg-42g1d5517ed4",
  "deleted": false,
  "owners": [],
  "tags": [],
  "children": [],
  "relatedTerms": []
}

Returns

Returns the created glossary term object with all specified properties and system-generated fields.

Response

id
string
Unique identifier for the glossary term (UUID format).
name
string
Glossary term name.
fullyQualifiedName
string
Fully qualified name in format glossary.termName or glossary.parent.child.
displayName
string
Human-readable display name.
description
string
Description of the glossary term in Markdown format.
synonyms
array
List of synonym strings for this term.
glossary
object
Reference to the parent glossary.
children
array
Child glossary term references.
Related glossary term references.
owners
array
List of owners assigned to the glossary term.
tags
array
Classification tags applied to the glossary term.
style
object
Visual styling for the term.
version
number
Version number for the entity (starts at 0.1).

Create or Update (PUT)

Use PUT /v1/glossaryTerms instead of POST to perform an upsert. If a glossary term with the same fullyQualifiedName already exists, it will be updated; otherwise, a new glossary term is created. The request body is the same as POST.
curl -X PUT "{base_url}/api/v1/glossaryTerms" \
  -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 glossary terms
409ENTITY_ALREADY_EXISTSGlossary term with same name already exists in glossary (POST only)