The glossary model
The glossary model contains metadata about your glossaries, such as their name, description, and base language. It also contains a reference to the entries in the glossary and information about when the glossary was created and last updated.Properties
Unique identifier for the glossary.
The name of the glossary.
An optional description of the glossary.
The base language for the glossary. All glossary entries need to contain at
least a term in the base language.
Whether or not the glossary is active and can be used.
Timestamp of when the glossary was last updated.
Timestamp of when the glossary was created.
List all glossaries
GET /v1/glossaries
This endpoint allows you to retrieve a paginated list of all your glossaries. By default, a maximum of 50 glossaries are shown per page.
Optional parameters
Maximum number of glossaries to return (default: 50).
Number of glossaries to skip (default: 0).
Filter by active status.
Response
Create a glossary
POST /v1/glossaries
This endpoint allows you to add a new glossary. To add a glossary, you must provide a name and base language.
Required attributes
The name for the glossary.
The base language for the glossary.
Optional attributes
A description for the glossary.
Response
Retrieve a glossary
GET /v1/glossaries/:glossary_id
This endpoint allows you to retrieve a glossary by providing its id. Refer to the list at the top of this page to see which properties are included with glossary objects.
Response
Update a glossary
PUT /v1/glossaries/:glossary_id
This endpoint allows you to perform an update on a glossary. All attributes are optional - only include the fields you want to update.
Optional attributes
The name for the glossary.
A description for the glossary.
The base language code for the glossary.
Whether or not the glossary is active and can be used.
Response
Delete a glossary
DELETE /v1/glossaries/:glossary_id
This endpoint allows you to delete glossaries. Note: This will also delete all entries in this glossary.
Download a glossary as CSV
GET /v1/glossaries/:glossary_id/download
This endpoint allows you to download a glossary as a CSV file. The header row contains the glossary’s base language, followed by the other languages (sorted) and a notes column. Each subsequent row is one glossary entry; only preferred terms are exported. The resulting file is safe to re-upload via the import endpoint.
Response
Import glossary from CSV
POST /v1/glossaries/import
This endpoint allows you to create a new glossary from a CSV file. The CSV format should have language codes in the first row and term translations in subsequent rows. The first column defines the new glossary’s base language.
CSV Format
- First row: language codes (e.g.,
en,de,fr) with an optionalnotescolumn at the end - First column: base/primary language — this defines the glossary’s base language
- Subsequent rows: term translations, with optional entry-level notes in the last column
Required form fields
The CSV file to import.
The name for the new glossary.
Optional form fields
A description for the glossary.
Response
Import to existing glossary
POST /v1/glossaries/:glossary_id/import
This endpoint allows you to import entries from a CSV file into an existing glossary, with optional explicit header mapping and merge strategy. By default, the CSV format should match the glossary’s base language in the first column.
CSV Format
- First row: language codes (e.g.,
en,de,fr) with an optionalnotescolumn at the end - First column: must match the glossary’s base language
- Subsequent rows: term translations, with optional entry-level notes in the last column
options field to overwrite existing entries instead.
Required form fields
The CSV file to import.
Optional form fields
A JSON array that explicitly maps each CSV column to a language code or
notes, e.g. [{"map_header": "English", "map_value": "en"}, {"map_header": "Comments", "map_value": "notes"}].A JSON object with merge options, e.g.
{"overwrite": true, "notes_overwrite": true}. Set overwrite to true to update existing entries’ terms (and create missing-language terms); set notes_overwrite to true to replace existing notes when a row provides non-empty notes.Response
Preview a glossary import
POST /v1/glossaries/:glossary_id/import/preview
This endpoint allows you to preview a CSV import without writing anything to the glossary. It parses the uploaded file and returns the raw headers, a suggested column mapping with a confidence level (one of high, medium, low), sample rows, and aggregate stats (new vs. duplicate base terms, in-file duplicates, empty rows). Use it to build a column-mapping step or an import summary before committing via the import endpoint. If the base-language column cannot be located, the response includes a warning.
Required form fields
The CSV file to preview.
Response
Analyze text against glossaries
POST /v1/glossaries/analyze
This endpoint allows you to analyze text against multiple glossaries using AI to find matches and violations. It returns matches (glossary terms correctly used in the text) and violations (forbidden terms used, preferred terms not used, etc.).
Required attributes
The text to analyze against the glossaries.
A list of glossary IDs to analyze against.
Optional attributes
Language code to filter glossary terms (e.g.,
en, de).The AI provider to use for analysis (one of
openai, anthropic, mistral) (default: “openai”).Response
Search glossary terms
POST /v1/glossaries/search
This endpoint allows you to search for terms across all glossaries in your organization. Returns partial matches across all languages and glossaries with context.
Required attributes
The search query to find matching terms.
Optional attributes
Maximum number of results to return (default: 50, max: 100).
Number of results to skip for pagination (default: 0).
Response