diff --git a/access_node/controllers/nest_controller.py b/access_node/controllers/nest_controller.py
index 53600ab5df89e85da9723e4badb282b416d83f96..d7fc66e03ef391609f03313e95add1bc371a9abb 100644
--- a/access_node/controllers/nest_controller.py
+++ b/access_node/controllers/nest_controller.py
@@ -167,12 +167,30 @@ def nest_get_neuron_properties(gids=None):  # noqa: E501
                        password="docker", host="database", port="5432")
     
     cur = con.cursor()
-    # TODO HANDLE gids=None
-
 
+    cur.execute("Select * FROM GIDS LIMIT 0")
+    colnames = np.array([desc[0] for desc in cur.description])
+    # column 1 and 2 contain the Node_id/Population_id and thus are removed
+    colnames = np.delete(colnames, [1,2])
 
+    if gids == None:
+        cur.execute("Select * FROM GIDS")
+    else:
+        cur.execute("Select * FROM GIDS WHERE GID IN %s", (tuple(gids),))
     con.close()
-    return "Not Implemented yet"
+
+    properties = np.array(cur.fetchall())
+    properties = np.delete(properties, [1,2], 1)
+
+    NestProps = []
+    for k in range(len(properties[:,0])):
+        props = {}
+        id = properties[k,0]
+        for i in range(1, len(colnames)):
+            props.update({colnames[i]: properties[k,i]})
+        NestProps.extend(NestNeuronProperties(id, props))
+
+    return NestProps
 
 
 def nest_get_populations():  # noqa: E501