diff --git a/program/serializers.py b/program/serializers.py
index 74a3c0e20db71af87c542215f3a8952b8b83a2d3..fea51a4c512031f4c5327880bf868d49ce8ea077 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -44,6 +44,7 @@ from program.models import (
     Note,
     NoteLink,
     Playlist,
+    PlaylistEntry,
     Profile,
     ProfileLink,
     ProgramEntry,
@@ -1469,3 +1470,32 @@ class ApplicationStatePurgeSerializer(serializers.Serializer):
             "Selects all models if set to true and no other filters have been set."
         ),
     )
+
+
+class PlaylistSerializer(serializers.ModelSerializer):
+    class PlaylistEntrySerializer(serializers.ModelSerializer):
+        class Meta:
+            model = PlaylistEntry
+            fields = (
+                "duration",
+                "file_id",
+                "uri",
+            )
+
+    entries = PlaylistEntrySerializer(many=True)
+
+    class Meta:
+        model = Playlist
+        read_only_fields = (
+            "id",
+            "created_at",
+            "created_by",
+            "updated_at",
+            "updated_by",
+        )
+        fields = (
+            "description",
+            "entries",
+            "playout_mode",
+            "show_id",
+        ) + read_only_fields