diff --git a/src/models.py b/src/models.py
index 18bb1d7d911f49c30b624a8f5e72592169bd2aca..71684938b56a37e6fca3769a58f093b21f726735 100644
--- a/src/models.py
+++ b/src/models.py
@@ -86,14 +86,19 @@ class PlayLog(db.Model):
 
 
     @staticmethod
-    def paginate(page, page_size, since_time=None):
+    def paginate(page, page_size, from_time=None, to_time=None, skip_synced=False):
         """
         Returns a list of entries for a given page and an start time (optional).
         """
         def q(page=0, page_size=None):
             query = db.session.query(PlayLog).order_by(PlayLog.track_start.desc())
-            if isinstance(since_time, datetime.datetime):
-                query = query.filter(PlayLog.track_start >= since_time)
+            if isinstance(from_time, datetime.datetime):
+                if isinstance(from_time, datetime.datetime):
+                    query = query.filter(PlayLog.track_start >= from_time and PlayLog.track_start < to_time)
+                else:
+                    query = query.filter(PlayLog.track_start >= from_time)
+            if skip_synced == True:
+                query = query.filter(PlayLog.is_synced == False)
             listen(query, 'before_compile', apply_limit(page, page_size), retval=True)
             return query
 
@@ -231,7 +236,7 @@ class HealthHistory(db.Model):
     log_source           = Column(Integer)          # The source the history entry relates to
     is_healthy           = Column(Boolean)          # Indicates if source is "healthy enough" to be used for play-out
     is_synced            = Column(Boolean)          # Only relevant for main nodes, in a multi-node setup
-    health_info          = Column(String(2048))     # Stringified JSON object, or other, if needed
+    health_info          = Column(String(2048))     # Stringified JSON object or other, if needed
 
 
     def __init__(self, source_number, is_healthy, health_info):
diff --git a/src/rest/controllers/internal_controller.py b/src/rest/controllers/internal_controller.py
index 7872e79272e9c55d3fe21d6deb61d7a25c2d7395..e545aab5cee9d344ef97edf05f663c36a4a4c02f 100644
--- a/src/rest/controllers/internal_controller.py
+++ b/src/rest/controllers/internal_controller.py
@@ -1,7 +1,7 @@
 import connexion
 import six
-import datetime
 
+from dateutil.parser import parse
 from flask import current_app
 
 from src.rest.models.clock_info import ClockInfo  # noqa: E501
@@ -77,7 +77,7 @@ def get_source_health(number):  # noqa: E501
     return service.get_source_health(number)
 
 
-def list_playlog(date_time, page=None, limit=None, skip_synced=None):  # noqa: E501
+def list_playlog(from_date=None, to_dat=None, page=None, limit=None, skip_synced=None):  # noqa: E501
     """List tracks in the play-log since the given timestamp
 
     Get paginated playlog entries for since the given timestamp.  # noqa: E501
@@ -94,8 +94,9 @@ def list_playlog(date_time, page=None, limit=None, skip_synced=None):  # noqa: E
     :rtype: List[PlayLog]
     """
     service = current_app.config['SERVICE']
-    date_time = parse(date_time)
-    return service.list_playlog(page, limit, date_time)
+    from_date = parse(from_date)
+    to_date = parse(to_date)
+    return service.list_playlog(page, limit, from_date, to_date, skip_synced)
 
 
 def log_source_health(body, number):  # noqa: E501
diff --git a/src/rest/swagger/swagger.yaml b/src/rest/swagger/swagger.yaml
index cfea2b75b60b44e1a3393d4ff35ad599a7253256..42ac6c2d67fbaad2294005da38a80a0f1a4a036b 100644
--- a/src/rest/swagger/swagger.yaml
+++ b/src/rest/swagger/swagger.yaml
@@ -137,7 +137,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/inline_response_400'
       x-openapi-router-controller: src.rest.controllers.internal_controller
-  /playlog/since/{date_time}:
+  /playlog:
     get:
       tags:
       - internal
@@ -146,14 +146,24 @@ paths:
         Get paginated playlog entries for since the given timestamp.
       operationId: list_playlog
       parameters:
-      - name: date_time
-        in: path
-        description: Get entries after this timestamp (e.g. '2020-08-29T09:12:33.001Z')
+      - name: from
+        in: query
+        description: Get entries after this timestamp
         required: true
-        style: simple
-        explode: false
+        style: form
+        explode: true
+        schema:
+          type: string
+        example: 2020-08-29T09:12:33.001Z
+      - name: to
+        in: query
+        description: Get entries before this timestamp
+        required: true
+        style: form
+        explode: true
         schema:
           type: string
+        example: 2020-11-29T09:12:33.001Z
       - name: page
         in: query
         description: The number of items to skip before starting to collect the result
diff --git a/src/rest/test/test_internal_controller.py b/src/rest/test/test_internal_controller.py
index 3213fe9c6268d206ff03eddd7f2932ed04808a57..8a1dbbcf27167fd12da13e8e6a9c7fdb15516f18 100644
--- a/src/rest/test/test_internal_controller.py
+++ b/src/rest/test/test_internal_controller.py
@@ -75,7 +75,7 @@ class TestInternalController(BaseTestCase):
         Report for one month
         """
         response = self.client.open(
-            '/api/v1/playlog/report/{year_month}'.format(year_month='year_month_example'),
+            '/api/v1/playlog/report/{year_month}'.format(year_month='2020_02'),
             method='GET')
         self.assert200(response,
                        'Response body is : ' + response.data.decode('utf-8'))
@@ -98,9 +98,11 @@ class TestInternalController(BaseTestCase):
         """
         query_string = [('page', 56),
                         ('limit', 200),
-                        ('skip_synced', true)]
+                        ('skip_synced', true),
+                        ('from', '2020-08-15T15:40:44'),
+                        ('to', '2020-10-15T15:40:44'))]
         response = self.client.open(
-            '/api/v1/playlog/since/{date_time}'.format(date_time='date_time_example'),
+            '/api/v1/playlog/',
             method='GET',
             query_string=query_string)
         self.assert200(response,