Glossar
Ein Nachschlagewerk für die Fachbegriffe und projektspezifischen Begriffe, die in
lobbyregister-cli verwendet werden. Die Fachsprache des Lobbyregisters ist deutsch;
dieses Glossar nennt die deutschen Begriffe zusammen mit den Bezeichnungen, die CLI und
API verwenden, wo es solche gibt.
Umfang. Dieses Tool kapselt einen einzigen offenen Endpoint – die JSON-Suche des Lobbyregisters (
/sucheJson). Die folgenden Begriffe sind die, die in den Typen des Clients, den Suchparametern und den beiden CLI-Befehlen tatsächlich vorkommen. Die Registereinträge selbst sind große, schemaversionierte JSON-Dokumente, die der Client untypisiert durchreicht (siehe RegisterEntry); ihre internen Feldnamen werden deshalb bewusst nicht aufgezählt.
Das Lobbyregister
Lobbyregister. Das öffentliche Register des Bundes für Interessenvertreter
(„Lobbyisten“), die gegenüber dem Bundestag und der Bundesregierung Interessen
vertreten. Geführt vom Deutschen Bundestag und veröffentlicht unter
lobbyregister.bundestag.de.
Interessenvertreter. Eine im Lobbyregister eingetragene Person oder Organisation. Jeder wird durch einen Registereintrag beschrieben.
Lobbyregistergesetz (LobbyRG). Die gesetzliche Grundlage, die das Register und seine öffentliche Einsehbarkeit vorschreibt. (Nur zum Hintergrund – kein Feld, das der Client liest.)
Ressource & Endpoint
/sucheJson. Der einzige offene Endpoint (ohne Authentifizierung), den dieser Client
aufruft: eine JSON-Suche im Register, bereitgestellt unter der Basis-URL
https://www.lobbyregister.bundestag.de. getJson sendet ein GET an ihn.
Das Gegenstück für Menschen ist die Suchseite der Website; die Antwort gibt deren URL in
searchUrl zurück.
Open Data / nur lesend. Der Endpoint /sucheJson braucht keinen API-Schlüssel,
kein Token und kein Login. Dieser Client implementiert nur dieses lesende GET; er
schreibt nie.
Suchanfrage
q (Suchanfrage). Der Freitext-Suchbegriff. Optional – ein fehlendes oder leeres q
liefert das gesamte Register. In der CLI ist es das Positionsargument [query] von
search und count. Ein Suchbegriff, der mit einem Bindestrich beginnt, muss nach einem
Trenner -- übergeben werden (z. B. search -- -Energie). Der Server durchsucht auch
Text, den die Antwort nicht enthält (etwa die Tätigkeitsbeschreibung auf der Registerseite
eines Eintrags); ein Eintrag kann also passen, ohne dass der Begriff irgendwo in seinem JSON
vorkommt.
sort. Die Sortierreihenfolge der Ergebnisse; wird unverändert weitergegeben und
clientseitig nicht geprüft. Beobachtete Werte: RELEVANCE_DESC (Standard, nach
Relevanz), REGISTRATION_DESC (neueste Registrierungen zuerst) und REGISTRATION_ASC
(älteste zuerst). Der Live-Endpoint ignoriert einen unbekannten Wert stillschweigend
(HTTP 200), statt ihn abzulehnen. CLI: search --sort <order>.
page / pageSize. Eine Seitennummer ab 1 und eine Seitengröße. Beide gibt es in
SearchParams, ein Live-Test (2026-06) hat aber gezeigt, dass /sucheJson sie
ignoriert: Es liefert immer das vollständige results-Array. Die CLI wendet
--page / --page-size deshalb clientseitig an und schneidet das gelieferte Array
zu; der gemeldete resultCount ist immer die tatsächliche Gesamtzahl. CLI: search --page <n>
--page-size <n>.
Suchantwort
SearchResult (der Envelope). Die typisierte oberste Struktur, die /sucheJson
liefert: resultCount plus das Array results, mit optionalen Metadatenfeldern
($schema, source, sourceUrl, sourceDate, jsonDocumentationUrl,
searchUrl, searchParameters).
resultCount. Die Gesamtzahl der Registereinträge, die zur Suchanfrage passen – die
tatsächliche Gesamtzahl, unabhängig davon, wie viele Einträge wirklich geliefert oder
zugeschnitten werden. Dies ist die eine Zahl, die der Befehl count ausgibt.
results. Das Array der passenden Registereinträge (jeweils ein RegisterEntry).
RegisterEntry. Ein Registereintrag – ein registrierter Interessenvertreter.
Typisiert als rohes JsonObject (ein unverändertes, untypisiertes JSON-Dokument), weil
Einträge groß und schemaversioniert sind; der Client rät ihre interne Struktur nicht.
$schema. Eine URL, die das JSON Schema benennt, dem jeder Eintrag in results
entspricht (das veröffentlichte, versionierte Dokumentschema des Registers).
source / sourceUrl / sourceDate. Herkunftsmetadaten des Datensatzes:
sein Name, eine kanonische URL und das Erstellungsdatum.
searchUrl. Die URL der Suchseite für Menschen, die derselben Suchanfrage
entspricht und sich im Browser öffnen lässt.
searchParameters. Die Parameter, die der Server für diese Suche ausgewertet hat,
als JSON-Objekt zurückgegeben.
jsonDocumentationUrl. Eine URL zur Dokumentation des JSON-Antwortformats.
CLI-Befehle
search [query]. Führt eine Suche aus und gibt den vollständigen
SearchResult-Envelope aus. --results-only gibt nur das Array results aus;
--compact gibt einzeiliges JSON aus. Unterstützt --page, --page-size, --sort
(siehe oben).
count [query]. Gibt nur die Trefferzahl aus: { query, resultCount }. Eine dünne
Hülle um search mit pageSize: 1, die resultCount ausliest. Nimmt nur den
optionalen Suchbegriff und die globalen Optionen entgegen.
Exit-Codes
Exit-Codes. Die CLI bildet Ergebnisse auf Exit-Codes des Prozesses ab: 0 bei
Erfolg; 2 bei Aufruf- bzw. Argumentfehlern (unbekannter oder fehlender Befehl,
unbekannte Option, ungültiger Optionswert oder gar kein Befehl angegeben); 4 bei einem
404 der API; 1 bei jedem anderen Fehler (Netzwerk, Parsen oder ein anderer
HTTP-Status als 404). Ein 400 endet mit 1 und gibt die Fehlerdetails der API aus;
nur wenn die API keine Details sendet, ergänzt die CLI einen Hinweis, --sort zu prüfen.
--help / --version liefern 0.
Bibliothek & Interna. Begriffe zum TypeScript-Client und seinen Interna –
LobbyregisterClient, die Request-Engine, Transport, Retry/Backoff, Fehlertypen, Query-Builder, Verhalten bei Weiterleitungen – finden Sie jetzt in DEVELOPING.md (englisch).