Developers

Topics

Topics group term entries by subject. They can be nested.

Base URLhttps://api.lexeri.comAuthenticationBearer tokenFormatJSON

Endpoints of this resource

GET/topics

List the topics

Required scope:show

Returns all topics of the termbase, nested ones included, sorted by title.

Query parameters

translation_locale_codestring
Language in which names of languages and titles of topics are returned, e.g. en.
fieldsstring
Adds to each topic, comma-separated: number_of_terms, number_of_term_entries, ancestors (the topics above it), children (the topics right below it).

Responses

  • 200 OKThe topics.
  • 401 UnauthorizedThe token is missing, invalid, expired or revoked, its user has no access to the termbase any more, or it lacks the required scope.
Fields of each item (14)
identifierstring · uuidrequired
titles{ [key]: string }required
Title by locale code.
titlestring | nullrequired
The title in translation_locale_code, else in the first language that has one.
is_root_topicbooleanrequired
Whether the topic is at the top level.
has_childrenbooleanrequired
Whether topics are nested below it.
descriptions{ [key]: string | null }required
Description by locale code.
descriptionstring | null
The description in translation_locale_code, else in the first language that has one.
documents_countintegerrequired
Number of reference documents of the topic.
comments_countinteger | null
created_atstring · date-timerequired
number_of_termsinteger
Only with fields=number_of_terms.
number_of_term_entriesinteger
Only with fields=number_of_term_entries.
ancestorsobject[]
Only with fields=ancestors. The topics above it, outermost first.
5 fields
identifierstring · uuidrequired
titles{ [key]: string }required
Title by locale code.
titlestring | nullrequired
The title in translation_locale_code, else in the first language that has one.
is_root_topicbooleanrequired
Whether the topic is at the top level.
has_childrenbooleanrequired
Whether topics are nested below it.
childrenobject[]
Only with fields=children. The topics right below it.
5 fields
identifierstring · uuidrequired
titles{ [key]: string }required
Title by locale code.
titlestring | nullrequired
The title in translation_locale_code, else in the first language that has one.
is_root_topicbooleanrequired
Whether the topic is at the top level.
has_childrenbooleanrequired
Whether topics are nested below it.
curl https://api.lexeri.com/topics \  -H "Authorization: Bearer $LEXERI_API_TOKEN"
200 OKExample response
[  {    "identifier": "23f9c4bd-9bb4-47f0-9950-33551a70ec70",    "titles": {      "de": "Gebäudehülle",      "en": "Building envelope"    },    "title": "Gebäudehülle",    "descriptions": {      "de": "Außenwände, Dach, Fenster und Bodenplatte"    },    "description": "Außenwände, Dach, Fenster und Bodenplatte",    "is_root_topic": true,    "has_children": false,    "documents_count": 0,    "comments_count": 0,    "created_at": "2026-10-11T20:19:08.879Z"  }]

POST/termbases/:identifier/topics

Create a topic

Required scope:edit_term_entries

Creates a topic, below parent_topic_identifier if given. Title and description are stored for locale_code.

Path parameters

identifierstring · uuidrequired
Identifier of the termbase. Must be the termbase of the API token.

Body parameters · JSON

titlestringrequired
Title of the topic.
locale_codestringrequired
Language of title and description.
descriptionstring
What belongs to the topic.
parent_topic_identifierstring · uuid
The topic to create it below. An unknown identifier creates a topic at the top level.

Responses

  • 201 CreatedThe new topic.
  • 401 UnauthorizedThe token is missing, invalid, expired or revoked, its user has no access to the termbase any more, or it lacks the required scope.
  • 406 Not AcceptableA required parameter is missing or empty.
Fields of the response (14)
identifierstring · uuidrequired
titles{ [key]: string }required
Title by locale code.
titlestring | nullrequired
The title in translation_locale_code, else in the first language that has one.
is_root_topicbooleanrequired
Whether the topic is at the top level.
has_childrenbooleanrequired
Whether topics are nested below it.
descriptions{ [key]: string | null }required
Description by locale code.
descriptionstring | null
The description in translation_locale_code, else in the first language that has one.
documents_countintegerrequired
Number of reference documents of the topic.
comments_countinteger | null
created_atstring · date-timerequired
number_of_termsinteger
Only with fields=number_of_terms.
number_of_term_entriesinteger
Only with fields=number_of_term_entries.
ancestorsobject[]
Only with fields=ancestors. The topics above it, outermost first.
5 fields
identifierstring · uuidrequired
titles{ [key]: string }required
Title by locale code.
titlestring | nullrequired
The title in translation_locale_code, else in the first language that has one.
is_root_topicbooleanrequired
Whether the topic is at the top level.
has_childrenbooleanrequired
Whether topics are nested below it.
childrenobject[]
Only with fields=children. The topics right below it.
5 fields
identifierstring · uuidrequired
titles{ [key]: string }required
Title by locale code.
titlestring | nullrequired
The title in translation_locale_code, else in the first language that has one.
is_root_topicbooleanrequired
Whether the topic is at the top level.
has_childrenbooleanrequired
Whether topics are nested below it.
curl -X POST https://api.lexeri.com/termbases/6b0f3c8e-2f4d-4c1a-9e7b-1d2a3c4b5e6f/topics \  -H "Authorization: Bearer $LEXERI_API_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "title": "Lüftung",    "description": "Lüftungsanlagen und Wärmerückgewinnung",    "locale_code": "de"  }'
201 CreatedExample response
{  "identifier": "775bd41a-a27b-4570-9ab5-ef7ade691f80",  "titles": {    "de": "Lüftung"  },  "title": "Lüftung",  "descriptions": {    "de": "Lüftungsanlagen und Wärmerückgewinnung"  },  "description": "Lüftungsanlagen und Wärmerückgewinnung",  "is_root_topic": true,  "has_children": false,  "documents_count": 0,  "comments_count": 0,  "created_at": "2026-10-11T20:19:09.592Z"}