diff --git a/src/rest/controllers/internal_controller.py b/src/rest/controllers/internal_controller.py
index 7e75443e489c5a46f999152d8f457d83f1a6cc65..38c73ab9391c31637a63027c2ed461abda6f354b 100644
--- a/src/rest/controllers/internal_controller.py
+++ b/src/rest/controllers/internal_controller.py
@@ -101,8 +101,8 @@ def list_playlog(from_date=None, to_date=None, page=None, limit=None, skip_synce
     td = None
 
     try:
-        fd = parse(from_date)
-        td = parse(to_date)
+        fd = util.deserialize_datetime(from_date)
+        td = util.deserialize_datetime(to_date)
     except Exception:
         service.logger.info("Invalid 'from_date' (%s) or 'to_date' (%s) for 'list_playlog'" % (str(from_date), str(to_date)))
 
diff --git a/src/rest/controllers/public_controller.py b/src/rest/controllers/public_controller.py
index cdd0ba46613db104f376d398986a0fa9a026744d..ffeea843f48139a920e69d701ac3428c0e639766 100644
--- a/src/rest/controllers/public_controller.py
+++ b/src/rest/controllers/public_controller.py
@@ -18,11 +18,15 @@ def current_track():  # noqa: E501
     return service.current_track()
 
 
-def list_tracks(page=None, limit=None):  # noqa: E501
+def list_tracks(from_date=None, to_date=None, page=None, limit=None):  # noqa: E501
     """List recent tracks in the play-log
 
     Lists the track-service entries for a given page.  # noqa: E501
 
+    :param from_date: Get entries after this timestamp
+    :type from_date: str
+    :param to_date: Get entries before this timestamp
+    :type to_date: str
     :param page: The number of items to skip before starting to collect the result set
     :type page: int
     :param limit: The numbers of items to return per page
@@ -31,4 +35,13 @@ def list_tracks(page=None, limit=None):  # noqa: E501
     :rtype: List[Track]
     """
     service = current_app.config['SERVICE']
-    return service.list_tracks(page, limit)
+    fd = None
+    td = None
+
+    try:
+        fd = util.deserialize_datetime(from_date)
+        td = util.deserialize_datetime(to_date)
+    except Exception:
+        service.logger.info("Invalid 'from_date' (%s) or 'to_date' (%s) for 'list_tracks'" % (str(from_date), str(to_date)))
+
+    return service.list_tracks(page, limit, fd, td)
\ No newline at end of file
diff --git a/src/service.py b/src/service.py
index 1ed2ad0cc7b3f1b9b08f667bf420f64d4e14c8c4..e1028b153d2a4f98e5b0617400ae04ea082ed866 100644
--- a/src/service.py
+++ b/src/service.py
@@ -104,19 +104,20 @@ class ApiService():
         return track_schema.dump(track)
 
 
-    def list_tracks(self, page=None, size=None):  
+    def list_tracks(self, page=None, size=None, from_time=None, to_time=None):  
         """
         Lists track-service entries with pagination.
 
         Args:
             page (Integer): The number of the page to return
             size (Integer): The numbers of items to return
-
+            from_time (datetime): Optionally, get entries after this timestamp (e.g. "2020-08-29T09:12:33.001Z")
+            to_time (datetime): Optionally, get entries before this timestamp (e.g. "2020-08-29T09:12:33.001Z")
         Returns:
             (JSON)
         """
         if not size or size > 50 or size < 1: size = 20
-        tracklist = PlayLog.paginate(page, size, None, None, False)
+        tracklist = PlayLog.paginate(page, size, from_time, to_time, False)
         tracklist_schema = TrackSchema(many=True)
         return tracklist_schema.dump(tracklist)
 
@@ -129,7 +130,7 @@ class ApiService():
             page (Integer): The number of items to skip before starting to collect the result set
             size (Integer): The numbers of items to return per page
             from_time (datetime): Optionally, get entries after this timestamp (e.g. "2020-08-29T09:12:33.001Z")
-            from_time (datetime): Optionally, get entries before this timestamp (e.g. "2020-08-29T09:12:33.001Z")
+            to_time (datetime): Optionally, get entries before this timestamp (e.g. "2020-08-29T09:12:33.001Z")
             skip_synced (Boolean): Optionally, don't return entries which have been posted directly before (sync node only)
 
         Returns: