diff --git a/src/CaosDB.jl b/src/CaosDB.jl
index a3812ea254853e72e2276704a1c0174e5ff6c266..b9fac3bb3a5c0fdbee41760a5258a21ea615660f 100644
--- a/src/CaosDB.jl
+++ b/src/CaosDB.jl
@@ -47,6 +47,7 @@ export get_id,
     get_datatype,
     get_unit,
     get_value,
+    get_property_list_length,
     get_version_id,
     get_property,
     get_properties,
diff --git a/src/Entity.jl b/src/Entity.jl
index 56b56de557a791e25396d760487c9e9bf8b5af64..48de9cedb95985364b771016779cea20522b0464 100644
--- a/src/Entity.jl
+++ b/src/Entity.jl
@@ -34,6 +34,8 @@ export get_id,
     get_datatype,
     get_unit,
     get_value,
+    get_property_list_length,
+    get_int_list_value_at,
     get_version_id,
     get_property,
     get_properties,
@@ -748,6 +750,22 @@ function get_value(entity::Ref{_Entity})
     return unsafe_string(out[])
 end
 
+function get_property_list_length(property::Ref{_Property})
+    
+    length = Ref{Cint}(0)
+
+    err_code = ccall(
+        (:caosdb_entity_property_get_value_list_length, CaosDB.library_name),
+        Cint,
+        (Ref{_Property}, Ref{Cint}),
+        property,
+        length,
+    )
+
+    CaosDB.Exceptions.evaluate_return_code(err_code)
+
+    return length[]
+end
 """
     function get_value(entity::Ref{_Property})
 
@@ -758,56 +776,104 @@ function get_value(property::Ref{_Property})
     _caosdb_dtypes = ("INTEGER", "DOUBLE", "BOOLEAN", "TEXT")
     
     prop_datatype = get_datatype(property)
+    is_list = prop_datatype[3]
     if prop_datatype[1] in _caosdb_dtypes
-        
-        if prop_datatype[1] == "INTEGER"
-            out = Ref{Cint}(0)
-            err_code = ccall(
-                (:caosdb_entity_property_get_int_value, CaosDB.library_name),
-                Cint,
-                (Ref{_Property}, Ref{Cint}),
-                property,
-                out,
-            )
-            
-            out = out[]
-        elseif prop_datatype[1] == "DOUBLE"
-            out = Ref{Cdouble}(0)
-            err_code = ccall(
-                (:caosdb_entity_property_get_double_value, CaosDB.library_name),
-                Cint,
-                (Ref{_Property}, Ref{Cdouble}),
-                property,
-                out,
-            )
-            out = out[]
-        elseif prop_datatype[1] == "BOOLEAN"
-            out = Ref{Cint}(0)
-            err_code = ccall(
-                (:caosdb_entity_property_get_boolean_value, CaosDB.library_name),
-                Cint,
-                (Ref{_Property}, Ref{Cint}),
-                property,
-                out,
-            )
-            out = convert(Bool, out[])
-        elseif prop_datatype[1] == "TEXT"
-            out = Ref{Ptr{UInt8}}(Ptr{UInt8}())
-            err_code = ccall(
-                (:caosdb_entity_property_get_string_value, CaosDB.library_name),
-                Cint,
-                (Ref{_Property}, Ref{Ptr{UInt8}}),
-                property,
-                out,
-            )
-            out = unsafe_string(out[])
+        if !is_list
+            if prop_datatype[1] == "INTEGER"
+                out = Ref{Cint}(0)
+                err_code = ccall(
+                    (:caosdb_entity_property_get_int_value, CaosDB.library_name),
+                    Cint,
+                    (Ref{_Property}, Ref{Cint}),
+                    property,
+                    out,
+                )
+                
+                out = out[]
+            elseif prop_datatype[1] == "DOUBLE"
+                out = Ref{Cdouble}(0)
+                err_code = ccall(
+                    (:caosdb_entity_property_get_double_value, CaosDB.library_name),
+                    Cint,
+                    (Ref{_Property}, Ref{Cdouble}),
+                    property,
+                    out,
+                )
+                out = out[]
+            elseif prop_datatype[1] == "BOOLEAN"
+                out = Ref{Cint}(0)
+                err_code = ccall(
+                    (:caosdb_entity_property_get_boolean_value, CaosDB.library_name),
+                    Cint,
+                    (Ref{_Property}, Ref{Cint}),
+                    property,
+                    out,
+                )
+                out = convert(Bool, out[])
+            elseif prop_datatype[1] == "TEXT"
+                out = Ref{Ptr{UInt8}}(Ptr{UInt8}())
+                err_code = ccall(
+                    (:caosdb_entity_property_get_string_value, CaosDB.library_name),
+                    Cint,
+                    (Ref{_Property}, Ref{Ptr{UInt8}}),
+                    property,
+                    out,
+                )
+                out = unsafe_string(out[])
+            end
+        else
+            list_length = get_property_list_length(property)
+            if prop_datatype[1] == "INTEGER"
+                out = Vector{Cint}()
+                for i::Cint in 1:list_length
+                    temp = get_int_list_value_at(property, i)
+                    append!(out, temp)
+                end
+            elseif prop_datatype[1] == "DOUBLE"
+                out = Vector{Cdouble}()
+                for i::Cint in 1:list_length
+                    temp = get_double_list_value_at(property, i)
+                    append!(out, temp)
+                end
+            end
+        end
+        if @isdefined  err_code
+            CaosDB.Exceptions.evaluate_return_code(err_code)
         end
-        CaosDB.Exceptions.evaluate_return_code(err_code)
     end
 
     return out
 end
 
+function get_int_list_value_at(property::Ref{_Property}, index::Cint)
+    out = Ref{Cint}(0)
+    err_code = ccall(
+        (:caosdb_entity_property_get_int_list_value_at, CaosDB.library_name),
+        Cint,
+        (Ref{_Property}, Ref{Cint}, Cint),
+        property,
+        out,
+        index-Cint(1),
+        )
+
+    CaosDB.Exceptions.evaluate_return_code(err_code)
+    return out[]
+end
+
+function get_double_list_value_at(property::Ref{_Property}, index::Cint)
+    out = Ref{Cdouble}(0)
+    err_code = ccall(
+        (:caosdb_entity_property_get_double_list_value_at, CaosDB.library_name),
+        Cint,
+        (Ref{_Property}, Ref{Cdouble}, Cint),
+        property,
+        out,
+        index-Cint(1),
+        )
+
+    CaosDB.Exceptions.evaluate_return_code(err_code)
+    return out[]
+end
 """
     function get_version_id(entity::Ref{_Entity})