diff --git a/gargantext/views/api/nodes.py b/gargantext/views/api/nodes.py
index 835b86517486b695bc928c705cd3d846c229f749..9a81c13dd982df16b0fe26014723720b9b04391a 100644
--- a/gargantext/views/api/nodes.py
+++ b/gargantext/views/api/nodes.py
@@ -22,7 +22,13 @@ _node_available_types = NODETYPES
 
 
 def _query_nodes(request, node_id=None):
-    user = cache.User[request.user.id]
+
+    if request.user.id is None:
+        raise TypeError("This API request must come from an authenticated user.")
+    else:
+        # we query among the nodes that belong to this user
+        user = cache.User[request.user.id]
+
     # parameters validation
     parameters = get_parameters(request)
     parameters = validate(parameters, {'type': dict, 'items': {
@@ -210,7 +216,7 @@ class NodeListHaving(APIView):
 
 class NodeResource(APIView):
 
-    # TODO either real authentification test or remove check on user.id
+    # contains a check on user.id (within _query_nodes)
     def get(self, request, node_id):
         parameters, query, count = _query_nodes(request, node_id)
         if not len(query):
@@ -220,6 +226,7 @@ class NodeResource(APIView):
             field: getattr(node, field) for field in parameters['fields']
         })
 
+    # contains a check on user.id (within _query_nodes)
     def delete(self, request, node_id):
         parameters, query, count = _query_nodes(request, node_id)
         if not len(query):