diff --git a/cml/controller/api.py b/cml/controller/api.py
index 1b98ac95ada54d686d34b6d4462ea837955289d5..9b49d4a84a4492a1b271eebd7eff1adaf9659b5e 100644
--- a/cml/controller/api.py
+++ b/cml/controller/api.py
@@ -7,7 +7,7 @@ from cml.usecases.query import PreprocessUsecase, KnowledgeSearchUsecase
 from cml.ports.source_adapters import PandasAdapter
 from cml.shared.settings import Settings
 from cml.shared.settings import specific_settings_factory, read_settings
-from cml.shared.request import PreprocessRequest
+from cml.shared.request import PreprocessRequest, KnowledgeSearchRequest
 
 
 __all__ = (
@@ -66,8 +66,14 @@ def reconstruction():
     pass
 
 
-def search_knowledge():
-    pass
+def search_knowledge(constructor, reconstructor, data_source):
+    deconstruction_settings = specific_settings_factory("deconstruction")
+    knowledge_search_req = KnowledgeSearchRequest(constructor,
+                                                  reconstructor,
+                                                  data_source,
+                                                  deconstruction_settings)
+    knowledge_search_usecase = KnowledgeSearchUsecase()
+    return knowledge_search_usecase.execute(knowledge_search_req)
 
 
 def visualizer():