diff --git a/model_server/base/api.py b/model_server/base/api.py
index 5d29cff44d678924a5d26f9e8293eff5754ba0f2..752ed48a0dcc41f62490f6e05b650348410f6231 100644
--- a/model_server/base/api.py
+++ b/model_server/base/api.py
@@ -62,6 +62,10 @@ def restart_session(root: str = None) -> dict:
     session.restart(root=root)
     return session.describe_loaded_models()
 
+@app.get('/session/logs')
+def list_session_log() -> list:
+    return session.get_log_data()
+
 @app.get('/models')
 def list_active_models():
     return session.describe_loaded_models()
diff --git a/model_server/base/session.py b/model_server/base/session.py
index bd76709f74275199fa4059091397383af633b73b..18c8b61d039dfa5e16e3f618e70c6c35a97c4c7c 100644
--- a/model_server/base/session.py
+++ b/model_server/base/session.py
@@ -79,6 +79,15 @@ class Session(object, metaclass=Singleton):
             idx += 1
         return f'{yyyymmdd}-{idx:04d}'
 
+    def get_log_data(self) -> list:
+        log = []
+        with open(self.logfile, 'r') as fh:
+            for line in fh:
+                k = ['datatime', 'level', 'message']
+                v = line.strip().split(' - ')[0:3]
+                log.insert(0, dict(zip(k, v)))
+        return log
+
     def log_info(self, msg):
         logger.info(msg)
 
diff --git a/tests/test_api.py b/tests/test_api.py
index 2afc8e93a9bb20c3ce4cef8a07e288574b289735..aa3023382890b14aada48e2f22aa00f035372931 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -171,4 +171,9 @@ class TestApiFromAutomatedClient(TestServerBaseClass):
         )
         self.assertEqual(resp_change.status_code, 200)
         resp_check = self._get('paths')
-        self.assertEqual(resp_inpath.json()['outbound_images'], resp_check.json()['outbound_images'])
\ No newline at end of file
+        self.assertEqual(resp_inpath.json()['outbound_images'], resp_check.json()['outbound_images'])
+
+    def test_get_logs(self):
+        resp = self._get('session/logs')
+        self.assertEqual(resp.status_code, 200)
+        self.assertEqual(resp.json()[0]['message'], 'Initialized session')
\ No newline at end of file
diff --git a/tests/test_session.py b/tests/test_session.py
index 6d998c331b14379c6d9be0c16e0a200ffee7e7a7..6a85f199453fd230917b6e43b6631b53a7d015df 100644
--- a/tests/test_session.py
+++ b/tests/test_session.py
@@ -65,6 +65,15 @@ class TestGetSessionObject(unittest.TestCase):
             log = fh.read()
         self.assertTrue(msg in log)
 
+    def test_get_logs(self):
+        self.sesh.log_info('Info example 1')
+        self.sesh.log_warning('Example warning')
+        self.sesh.log_info('Info example 2')
+        logs = self.sesh.get_log_data()
+        self.assertEqual(len(logs), 4)
+        self.assertEqual(logs[1]['level'], 'WARNING')
+        self.assertEqual(logs[-1]['message'], 'Initialized session')
+
     def test_session_records_workflow(self):
         di = WorkflowRunRecord(
             model_id='test_model',