Developers

API-Referenz

Alle Endpunkte der Lexeri API mit Parametern, Antworten und Beispielen in cURL, JavaScript und Python. Die Beschreibungen stammen aus der OpenAPI-Spezifikation der API und sind englisch.

Basis-URLhttps://api.lexeri.comAuthentifizierungBearer-TokenFormatJSONVersion2026-10

The Lexeri API gives integrations access to one termbase: search and maintain its terms, list its topics, export it and check texts against it. It is a REST API that speaks JSON.

Ressourcen

Base URL

https://api.lexeri.com

Authentication

Every request carries an API token in the Authorization header:

Authorization: Bearer <api token>

API tokens are created in the termbase settings (tab API) by users who may create them there — by default admins and terminology managers. A token belongs to one termbase and acts on behalf of the user it was created for:

  • It can do at most what that user may do in the termbase today. If the user is removed from the termbase or loses a permission, the token loses it too.
  • It expires on the date chosen at creation (or never). Expired or revoked tokens are answered with 401.
  • The termbase identifier in a path must be the token's own termbase.

Scopes

A token is created with a set of scopes. An endpoint that needs a scope the token lacks answers 401 with {"message": "required scope missing: <scope>"}.

ScopeAllows
show, readReading the termbase, its terms, versions, usage examples and topics. Every token has them.
edit_termsCreating, changing and deleting terms and usage examples.
edit_term_entriesCreating topics.
export_termbaseCreating and downloading exports.
check_textChecking texts for terms (live check).

Tokens can carry further scopes (request_terms, manage_term_requests, edit_ontologies, edit_termbase) for endpoints that are not part of this documentation yet.

Changes go live immediately

Terms created, changed or deleted through the API are published right away. They do not pass through a task or term request.

Errors

Errors are answered with a JSON body carrying a message:

{"message": "required scope missing: edit_terms"}
StatusMeaning
401The token is missing, invalid, expired or revoked, its user has no access to the termbase any more, or it lacks a required scope.
404The resource does not exist or does not belong to the token's termbase.
406A required parameter is missing or empty: param is missing or the value is empty or invalid: <name>.
422A parameter has an invalid value. Exports answer with {"errors": {"<field>": ["<problem>"]}} instead.
500Unexpected error. Please contact us if it persists.

Messages are meant for humans and may change; do not parse them.

Pagination

GET /terms is paginated with page (from 1) and per_page (at most 500, default 500). Every response carries the headers x-page, x-per-page, x-total and x-total-pages.

Locale codes

Languages are identified by codes such as de or en, optionally with a region, e.g. de-CH or en-GB. The supported languages are listed in the help center: Unterstützte Sprachen.

Usage states of terms

A term's state is one of the built-in states preferred, admitted, deprecated and not_recommended, or the identifier of a custom state of the termbase (custom_term_states in GET /termbases/{identifier}).

Custom fields

A termbase can define its own fields for term entries and terms. Their definitions are part of GET /termbases/{identifier} (term_entry_fields, term_fields). Values are keyed by the field's identifier: write them with fields (terms) or term_entry_fields (new term entries), filter the term list with term_field_<identifier> and term_entry_field_<identifier>.

Help

Questions and feedback: info@lexeri.com

Changelog

October 2026

  • Rebuilt from an OpenAPI specification that is checked against the API in our test suite.
  • Removed endpoints that did not work with API tokens: topic details, updating and deleting topics, topic images, reference documents, and updating or creating termbases. They will return once they support API tokens.
  • Corrected status codes: listing exports answers 200, creating a term 200. Creating an export always creates a new one.
  • Documented the actual fields of every response and the filters of GET /terms.
  • GET /terms honours per_page (at most 500), accepts fields as a list and returns only published terms.
  • The live check requires the scope check_text. Unknown export types are rejected with 422.