Glossary

GENESIS-Online concepts and the vocabulary this CLI exposes. GENESIS is a multidimensional statistics database: statistics are made of cubes, which are sliced into tables, described by variables and their values.

Objects

Term GENESIS Meaning
Statistic (Statistik) statistic A whole statistical product, keyed by a 5-digit EVAS code (e.g. 12411, “Fortschreibung des Bevölkerungsstandes”). Contains cubes.
Table (Tabelle) table A ready-made 2-D view, keyed like 12411-0001. The main thing you fetch.
Cube (Datenquader) cube The raw multidimensional data behind tables, keyed like 12411BJ001.
Time series (Zeitreihe) timeseries A cube reduced to a single value over time.
Variable (Merkmal) variable A dimension/attribute (e.g. DLAND = Bundesland, NAT = nationality).
Value (Ausprägung) value A concrete value of a variable (e.g. a specific Bundesland).
Result (Ergebnistabelle) result A table produced by an async job, saved in your user area.

Codes & selection

The response envelope

Every non-helloworld response is wrapped:

Field Meaning
Ident { Service, Method } — which endpoint answered.
Status { Code, Content, Type } — the logical outcome (see below).
Parameter echo of your request (credentials masked as ********).
Copyright the attribution string to cite — see DATA_LICENSE.md.
List catalogue results (a homogeneous array).
Object data/metadata payload (opaque; for data/table, a CSV string in Object.Content).

helloworld/whoami and helloworld/logincheck do not use this envelope. logincheck answers HTTP 200 whether or not the credentials are right: its Status is a text — an error text (“Ein Fehler ist aufgetreten …”) means they were rejected, and the CLI exits 1 with the credentials hint — and Username names the account (the token sent may come back echoed there). Only an explicit success or failure text decides; any other answer is reported as unconfirmed (exit 1).

Status.Code values

HTTP is almost always 200; the real outcome is Status.Code. Auth failures are the exception: they come back as a flat { Code, Content, Type } body (no envelope) on HTTP 401 or 404:

Code Type Meaning This CLI
0 Information success returns data
22 Warnung success, a parameter was auto-corrected returns data (warning visible in Status.Content)
50 Information no newer data (for --stand) returns data
104 Information no object matched (catalogue, metadata, data; a find without hits answers 0 with every list null instead) returns an empty result (exit 0); a data <kind>file download fails instead (exit 4, no file written)
90 Fehler requested object not found error, exit 4
98 Information result too large for a direct fetch error with narrowing guidance, exit 1
15 ERROR not authorized: credentials missing or not recognized (flat body on HTTP 401) error GENESIS status 15 (ERROR) / HTTP 401 with the GENESIS text, plus a credentials hint, exit 1
2 ERROR wrong username/password or token (flat body on HTTP 404; the same flat body on an HTTP 200 counts too) error GENESIS status 2 (ERROR) / HTTP 404 (or / HTTP 200) with the GENESIS text, plus a credentials hint, exit 1 (a 404 carrying a GENESIS code is not “not found”)
any Fehler / Error general error error, exit 1

Value-status placeholders

In a data/table CSV, a cell may be a status symbol instead of a number: - (nothing to report / genuine zero context), . (unknown/secret), ... (not yet available), / (no figure: value not reliable enough), x (no meaningful statement possible), () (limited informative value), p (provisional), r (revised), s (estimated).

Auth terms

See DEVELOPING.md for how credentials are passed on the wire and why redirects are not followed.

Log records

Log record. Every diagnostic line the CLI writes to stderr: a timestamp, a level (ERROR, WARN, INFO) and a topic destatis.<area>, as text (log4j style) or with --log-format jsonl as one JSON object per line. The areas: cli (usage errors, commander’s messages, unexpected errors, the warning about a credential given as a flag), api (GENESIS’s answers: an error status, the credentials hint, and a malformed answer — bad JSON, the wrong shape, an empty body, a login check that confirms nothing), http (the connection, the cleartext warning, and one WARN per retry before it waits), config (the credentials file) and output (the -o file, stdout failures). A record is always one line; control characters in it are escaped.

View the source on GitHub →