diff --git a/server/api/routes/annotations.py b/server/api/routes/annotations.py
index 86db45cc21f715f720cbce96ebceb984791c60b1..06da3d08bb5ed6f0e1ef6d66f3a764bf745fe3ec 100644
--- a/server/api/routes/annotations.py
+++ b/server/api/routes/annotations.py
@@ -9,7 +9,8 @@ from nacsos_data.db.schemas import (
     BotAnnotationMetaData,
     AssignmentScope,
     User,
-    Annotation, BotAnnotation
+    Annotation,
+    BotAnnotation
 )
 from nacsos_data.models.annotations import (
     AnnotationSchemeModel,
@@ -72,6 +73,7 @@ from nacsos_data.util.annotations.validation import (
 )
 from nacsos_data.util.annotations.assignments.random import random_assignments
 from nacsos_data.util.annotations.assignments.random_exclusion import random_assignments_with_exclusion
+from nacsos_data.util.annotations.assignments.random_nql import random_assignments_with_nql
 
 from server.api.errors import (
     SaveFailedError,
@@ -388,6 +390,18 @@ async def make_assignments(payload: MakeAssignmentsRequestModel,
         except ValueError as e:
             raise HTTPException(status_code=http_status.HTTP_400_BAD_REQUEST,
                                 detail=str(e))
+    elif payload.config.config_type == 'random_nql':
+        try:
+            assignments = await random_assignments_with_nql(
+                assignment_scope_id=payload.scope_id,
+                annotation_scheme_id=payload.annotation_scheme_id,
+                project_id=permissions.permissions.project_id,
+                config=payload.config,  # type: ignore[arg-type] # FIXME
+                engine=db_engine
+            )
+        except ValueError as e:
+            raise HTTPException(status_code=http_status.HTTP_400_BAD_REQUEST,
+                                detail=str(e))
     else:
         raise HTTPException(status_code=http_status.HTTP_501_NOT_IMPLEMENTED,
                             detail=f'Method "{payload.config.config_type}" is unknown.')