---
title: "Update glossary term"
method: PUT
path: "/api/v1/glossary/{id}"
tags: ["glossary"]
---

# Update glossary term

`PUT /api/v1/glossary/{id}`

Update an existing glossary term by its ID

## Path parameters

- `id` string, required

## Request body

- UpdateTermRequest
  - `definition` string
  - `description` string
  - `metadata` object
  - `name` string
  - `owners` OwnerRequest[]
    - `id` string, required
    - `type` 'user' | 'team', required
  - `parent_term_id` string

## Response `200`

OK

- GlossaryTerm
  - `created_at` string
  - `definition` string — Definition is what the last run wrote. On a term a person has worded themselves the read path serves UserDefinition here instead, so a caller always gets the wording the catalog stands behind.
  - `deleted_at` string
  - `description` string
  - `id` string
  - `metadata` object
  - `name` string
  - `owners` GlossaryOwner[]
    - `email` string
    - `id` string
    - `name` string
    - `profile_picture` string
    - `type` string — "user" or "team"
    - `username` string — Only for user owners
  - `parent_term_id` string
  - `tags` string[]
  - `updated_at` string
  - `user_definition` string — UserDefinition is the wording a person gave the term. Ingestion reads it and never writes it, so it survives every run.

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.dev/marmotdata/apis/marmot-api.md) · [All operations](https://skmtc.dev/marmotdata/apis/marmot-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/marmotdata/marmot-api/revisions/0bd802afff21/schema)
