diff --git a/engine-api.py b/engine-api.py
index 0ee133581d69aaf284f57aa0221cfe8502bd6965..34e83e36d75bbee3a0ba89b56632303410c449d2 100644
--- a/engine-api.py
+++ b/engine-api.py
@@ -21,6 +21,8 @@
 
 import logging
 import os, os.path
+import subprocess
+import json
 
 from datetime                       import datetime, date, timedelta
 
@@ -109,6 +111,7 @@ class EngineApi:
         spec.components.schema("Report",        schema=ReportSchema)
         spec.components.schema("Schedule",      schema=ScheduleSchema)
         spec.components.schema("Clock",         schema=ClockDataSchema)
+        spec.components.schema("Status",        schema=StatusSchema)
 
         # TODO Generates HTML for specification
         #self.logger.info(spec.to_yaml())
@@ -129,7 +132,7 @@ class EngineApi:
         self.api.add_resource(ReportResource,               config.api_prefix + "/report/<string:year_month>")
         self.api.add_resource(UpcomingSchedulesResource,    config.api_prefix + "/schedule/upcoming")
         self.api.add_resource(ClockDataResource,            config.api_prefix + "/clock")
-        self.api.add_resource(ClockDataResource,            config.api_prefix + "/status")
+        self.api.add_resource(StatusResource,               config.api_prefix + "/status")
 
         self.logger.info("Engine API routes successfully set!")
 
@@ -283,8 +286,11 @@ class ReportSchema(ma.Schema):
 class StatusSchema(ma.Schema):
     class Meta:
         fields = (
-                "is_liquidsoap_running",
-                "is_core_running"
+                "engine",
+                "soundsystem",
+                "api",
+                "redis_ready",
+                "audio_store"
             )
 
 
@@ -420,12 +426,9 @@ class StatusResource(Resource):
         self.logger = logging.getLogger("engine-api")
 
     def get(self):
-        
-        # FIXME Not yet implemented!
-
-        # #ss = SoundSystem(cr)
-        # return "check removed!" #ss.auraengine_state()
-        status = None
+        status = subprocess.check_output(["python3", "guru.py", "-s", "-q"])
+        status = status.decode("utf-8").replace("'", '"')
+        status = json.loads(status, strict=False)
 
         if not status:
             return abort(204) # No content available
diff --git a/modules/communication/redis/adapter.py b/modules/communication/redis/adapter.py
index 06eefd546bf743830f242a7bb37e6815d75ed542..07fbde3bd8011afe3295a83969b09490b353435b 100644
--- a/modules/communication/redis/adapter.py
+++ b/modules/communication/redis/adapter.py
@@ -24,6 +24,7 @@
 
 import sys
 import time
+import json
 import redis
 import logging
 import threading
@@ -159,7 +160,7 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
         elif item["data"] == "get_status":
             def get_status_string():
                 status = self.soundsystem.monitoring.get_status()
-                return str(status)
+                return json.dumps(status)
 
             self.execute(RedisChannel.GS_REPLY.value, get_status_string)
 
@@ -186,6 +187,8 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
         elif item["data"] == "recreate_db":
             self.execute(RedisChannel.RDB_REPLY.value, self.scheduler.recreate_database)
 
+        elif item["data"] == "status":
+            return True
 
         else:
             raise RedisConnectionException("ServerRedisAdapter Cannot understand command: " + item["data"])