Glossary
A reference for the domain concepts and project-specific terms used throughout
lobbyregister-cli. The Lobbyregister domain is German; this glossary gives the
term used in the CLI/API alongside the original German where one exists.
Scope. This tool wraps a single open endpoint — the JSON search of the German Lobbyregister (
/sucheJson). The terms below are the ones actually surfaced by the client’s types, the search parameters and the two CLI commands. The register entries themselves are large, schema-versioned JSON documents that the client passes through untyped (see RegisterEntry), so their internal field names are deliberately not enumerated here.
The Lobbyregister
Lobbyregister. The public German federal register of interest
representatives (“Lobbyisten”) who lobby the Bundestag (the federal
parliament) and the federal government. Operated by the German Bundestag and
published at lobbyregister.bundestag.de.
Interest representative (Interessenvertreter). A person or organisation registered in the Lobbyregister. Each is described by one register entry.
Lobbyregistergesetz (LobbyRG). The German Lobby Register Act, the legal basis that mandates the register and its public disclosure. (Background only — not a field the client reads.)
Resource & endpoint
/sucheJson. The single open (no-auth) endpoint this client calls: a JSON
search over the register, served from the base URL
https://www.lobbyregister.bundestag.de. getJson issues a GET against it.
The human-facing equivalent is the website’s search page; the response echoes
that page’s URL in searchUrl.
Open data / read-only. The /sucheJson endpoint requires no API key,
no token and no login. This client implements only this read-only GET; it
never writes.
Search request
q (query). The free-text query string. Optional — an absent or empty q
returns the whole register. On the CLI it is the positional [query] argument to
search and count. A query beginning with a dash must be passed after a --
separator (e.g. search -- -Energie). The server also matches text that the response
doesn’t contain (such as the activity description on an entry’s register page), so an
entry can match without the term appearing anywhere in its JSON.
sort. The result sort order, passed through verbatim and not validated
client-side. Observed values: RELEVANCE_DESC (default relevance ranking),
REGISTRATION_DESC (newest registrations first) and REGISTRATION_ASC (oldest
first). The live endpoint silently ignores an unrecognised value (HTTP 200)
rather than rejecting it. CLI: search --sort <order>.
page / pageSize. A 1-based page number and a page size. These exist in
SearchParams, but a live probe (2026-06) showed /sucheJson ignores them:
it always returns the full results array regardless. The CLI therefore applies
--page / --page-size client-side, slicing the returned array; the
reported resultCount is always the true total. CLI: search --page <n>
--page-size <n>.
Search response
SearchResult (the envelope). The typed top-level shape returned by
/sucheJson: resultCount plus the results array, with optional metadata
fields ($schema, source, sourceUrl, sourceDate, jsonDocumentationUrl,
searchUrl, searchParameters).
resultCount. The total number of register entries matching the query — the
true total, independent of how many entries are actually returned or sliced.
This is the single number reported by the count command.
results. The array of matching register entries (each a RegisterEntry).
RegisterEntry. One register entry — a registered interest representative.
Typed as a raw JsonObject (a faithful, untyped JSON document) because entries
are large and schema-versioned; the client does not guess their internal shape.
$schema. A URL naming the JSON Schema that each results entry conforms to
(the register’s published, versioned document schema).
source / sourceUrl / sourceDate. Provenance metadata for the data set:
its name, a canonical URL, and the date it was produced.
searchUrl. The human-facing search-page URL that corresponds to the same
query, suitable for opening in a browser.
searchParameters. The parameters the server interpreted for this search,
echoed back as a JSON object.
jsonDocumentationUrl. A URL to the documentation of the JSON response
format.
CLI commands
search [query]. Run a search and print the full SearchResult envelope.
--results-only prints just the results array; --compact prints single-line
JSON. Supports --page, --page-size, --sort (see above).
count [query]. Print only the match count: { query, resultCount }. A thin
wrapper over search with pageSize: 1 that reads back resultCount. Takes only
the optional query plus the global options.
Exit codes
Exit codes. The CLI maps outcomes to process exit codes: 0 success;
2 usage / argument-validation errors (unknown/missing command, unknown option,
invalid option value, or no command given); 4 on 404 from the API; 1 for
any other error (network, parse, or other non-404 HTTP status). A 400 exits 1
and prints the API’s error detail; only when the API sends no detail does the CLI add
a hint to check --sort. --help / --version return 0.
Library & internals. Terms for the TypeScript client and its internals —
LobbyregisterClient, the request engine, transport, retry/backoff, error types, query builder, redirect behaviour — now live in DEVELOPING.md.