diff --git a/api.py b/api.py
index 712f4f701937ea10035aa6c08830164a16a90f4d..597540dc572fc510210917c7d563004cc34df697 100644
--- a/api.py
+++ b/api.py
@@ -35,10 +35,12 @@ from flask_cors                     import CORS
 from flask_sqlalchemy               import SQLAlchemy
 from flask_marshmallow              import Marshmallow
 from marshmallow                    import Schema, fields, post_dump
-from flask_restful                  import Api, Resource
+from flask_restful                  import Api, Resource, abort
 from apispec                        import APISpec
 from apispec.ext.marshmallow        import MarshmallowPlugin
 from apispec_webframeworks.flask    import FlaskPlugin
+# import werkzeug
+from werkzeug.exceptions            import HTTPException, default_exceptions, Aborter
 
 from libraries.base.logger          import AuraLogger
 from libraries.base.config          import AuraConfig
@@ -62,12 +64,21 @@ app.config["CACHE_TYPE"] = "simple"
 app.config["CACHE_DEFAULT_TIMEOUT"] = 0
 app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
 cache = Cache(app)
-cors = CORS(app, resources={r"/*": {"origins": "*"}})
+cors = CORS(app, resources={r"/*": {"origins": "*"}}) # FIXME Update CORS for production use
 db = SQLAlchemy(app)
 ma = Marshmallow(app)
 api = Api(app)
 
 
+#
+# Werkzeug HTTP code mappings
+#
+class NoDataAvailable(HTTPException):
+    code = 204
+    description = "There is currently no content available."
+default_exceptions[204] = NoDataAvailable
+abort = Aborter()
+
 
 class EngineApi:
     """
@@ -95,6 +106,7 @@ class EngineApi:
 
         spec.components.schema("TrackService", schema=TrackServiceSchema)
         
+
         # Schema instances
         EngineApi.trackservice_schema = TrackServiceSchema(many=True)
         EngineApi.track_schema = TrackServiceSchema()
@@ -265,6 +277,8 @@ class CurrentTrackResource(Resource):
 
     def get(self):
         track = TrackService.select_current()
+        if not track:
+            return abort(204) # No content available
         return EngineApi.track_schema.dump(track)
 
 
@@ -278,6 +292,8 @@ class TracksByDayResource(Resource):
         date = datetime.strptime(date_string, "%Y-%m-%d")
         self.logger.debug("Query track-service by day: %s" % str(date))
         tracks = TrackService.select_by_day(date)
+        if not tracks:
+            return abort(204) # No content available
         return EngineApi.trackservice_schema.dump(tracks)
 
 
@@ -291,6 +307,8 @@ class UpcomingSchedulesResource(Resource):
         now = datetime.now()
         self.logger.debug("Query upcoming schedules after %s" % str(now))
         schedules = Schedule.select_upcoming(3)
+        if not schedules:
+            return abort(204) # No content available
         return EngineApi.schedule_schema.dump(schedules)
 
 
@@ -310,6 +328,8 @@ class ReportResource(Resource):
 
         self.logger.debug("Query report for month: %s - %s" % (str(first_day), str(next_month)))
         report = TrackService.select_by_range(first_day, next_month)
+        if not report:
+            return abort(204) # No content available
         return EngineApi.report_schema.dump(report)