---
title: "Create glossary entry"
method: POST
path: "/api/v1/glossary"
tags: ["Glossary"]
---

# Create glossary entry

`POST /api/v1/glossary`

## Request

- Base URL: `https://api.simplelocalize.io`
- URL: `https://api.simplelocalize.io/api/v1/glossary`
- Auth: API key in header `X-SimpleLocalize-Token`
- TypeScript: <https://skmtc.dev/simplelocalize/apis/simplelocalize-api/docs/api/v1/glossary/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a glossary entry with translations of a term in one or more target languages.
- `sourceLanguage` and every `targets[].targetLanguage` must be existing language keys in the project
- if an entry with the same `sourceText` already exists, its translations are updated instead of duplicated
- `caseSensitive` makes quality checks match the term and its translations exactly as written, including capitalization; omit it to keep the current value
- `targets[].forms` lists alternative forms of a translation (plural, cases) accepted by quality checks; omit it to keep the current forms
- glossary is not available in the Community plan

## Headers

- `X-SimpleLocalize-Token` string, required

## Request body

- CreateGlossaryEntryRequestV1
  - `sourceText` string, required: Term in the source language
  - `sourceLanguage` string, required: Source language key, must exist in the project
  - `caseSensitive` boolean: When true, quality checks match the term and its translations exactly as written, including capitalization. Omitted: keeps the current value for an existing term, false for a new one
  - `targets` Target[], required: Translations of the term, one per target language
    - `targetLanguage` string, required: Target language key, must exist in the project
    - `targetText` string: Term translated into the target language
    - `forms` string[]: Alternative forms of the translated term (plural, grammatical cases) accepted by quality checks. Omitted: keeps the current forms, empty list clears them

## Response `200`

OK

- object
  - `msg` string
  - `status` integer
  - `data` GlossaryResponseV1
    - `sourceText` string: Term in the source language
    - `sourceLanguage` string: Source language key
    - `caseSensitive` boolean: Quality checks match the term and its translations exactly as written, including capitalization
    - `targets` Target[]: Translations of the term, one per target language
      - `targetLanguage` string, required: Target language key, must exist in the project
      - `targetText` string: Term translated into the target language
      - `forms` string[]: Alternative forms of the translated term (plural, grammatical cases) accepted by quality checks. Omitted: keeps the current forms, empty list clears them

## Other responses

- `400`: Bad Request
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-11-07** `67a25a25863a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/simplelocalize/apis/simplelocalize-api/changes/api/v1/glossary/post.md)

---

[API](https://skmtc.dev/simplelocalize/apis/simplelocalize-api.md) - [All operations](https://skmtc.dev/simplelocalize/apis/simplelocalize-api/llms.txt) - [OpenAPI document](https://skmtc.dev/simplelocalize/apis/simplelocalize-api/revisions/67a25a25863a?raw)
