diff --git a/toardb/toardb.py b/toardb/toardb.py
index 95d30c78b2d749f6ee1dc7a63cf3ee4f1800d7be..8dbeed5feca994c2ee2652ce168a809e728c004c 100644
--- a/toardb/toardb.py
+++ b/toardb/toardb.py
@@ -6,7 +6,7 @@ from typing import List
 from fastapi import FastAPI, Depends, HTTPException, APIRouter
 from sqlalchemy.orm import Session
 
-from toardb.utils.database import ToarDbSession
+from toardb.utils.database import ToarDbSession, engine
 
 from toardb.variables import variables
 from toardb.contacts import contacts
@@ -14,6 +14,8 @@ from toardb.stationmeta import stationmeta
 from toardb.timeseries import timeseries
 from toardb.data import data
 
+from collections import namedtuple
+
 
 app = FastAPI()
 
@@ -31,3 +33,43 @@ app.include_router(stationmeta.router)
 app.include_router(timeseries.router)
 app.include_router(data.router)
 
+# get the controlled vocabulary from table
+def __get_enum_dict(fake_cur, table_name):
+    fake_cur.execute("select * from "+table_name)
+    res = fake_cur.fetchall()
+    Enumdict=namedtuple("Dict",["value","string","display_str"])
+    enum_dict = []
+    for entry in res:
+        enum_dict.append(Enumdict(*entry))
+    return enum_dict
+
+@app.on_event("startup")
+# will be executed before application *starts*
+# ==> again: at this point no database connection available!
+#     (and also all tables are unknown)
+# how can I do pytests with this?!?!
+# ==> https://fastapi.tiangolo.com/advanced/testing-events/
+# I did not try yet, if test database is created before
+# startup_event or after (for the letter, the hint in the link
+# will not work)
+async def startup_event():
+    fake_conn = engine.raw_connection()
+    fake_cur = fake_conn.cursor()
+    RC_vocabulary = __get_enum_dict(fake_cur, "rc_vocabulary")
+    RS_vocabulary = __get_enum_dict(fake_cur, "rs_vocabulary")
+    OK_vocabulary = __get_enum_dict(fake_cur, "ok_vocabulary")
+    DA_vocabulary = __get_enum_dict(fake_cur, "da_vocabulary")
+    SF_vocabulary = __get_enum_dict(fake_cur, "sf_vocabulary")
+    AT_vocabulary = __get_enum_dict(fake_cur, "at_vocabulary")
+    DS_vocabulary = __get_enum_dict(fake_cur, "ds_vocabulary")
+    MM_vocabulary = __get_enum_dict(fake_cur, "mm_vocabulary")
+    CZ_vocabulary = __get_enum_dict(fake_cur, "cz_vocabulary")
+    CV_vocabulary = __get_enum_dict(fake_cur, "cv_vocabulary")
+    ST_vocabulary = __get_enum_dict(fake_cur, "st_vocabulary")
+    TA_vocabulary = __get_enum_dict(fake_cur, "ta_vocabulary")
+    TC_vocabulary = __get_enum_dict(fake_cur, "tc_vocabulary")
+    TR_vocabulary = __get_enum_dict(fake_cur, "tr_vocabulary")
+    DL_vocabulary = __get_enum_dict(fake_cur, "dl_vocabulary")
+    RT_vocabulary = __get_enum_dict(fake_cur, "rt_vocabulary")
+    DF_vocabulary = __get_enum_dict(fake_cur, "df_vocabulary")
+