diff --git a/api/funkwhale_api/playlists/filters.py b/api/funkwhale_api/playlists/filters.py
index cf8e7dd2144514f3afdc5fdb73572a87547c12c7..bc49415100a3c5d3d53fb5fcb680195934d538c3 100644
--- a/api/funkwhale_api/playlists/filters.py
+++ b/api/funkwhale_api/playlists/filters.py
@@ -1,13 +1,22 @@
 from django_filters import rest_framework as filters
 
+from funkwhale_api.music import utils
+
 from . import models
 
 
 
 class PlaylistFilter(filters.FilterSet):
+    q = filters.CharFilter(name='_', method='filter_q')
 
     class Meta:
         model = models.Playlist
         fields = {
             'user': ['exact'],
+            'name': ['exact', 'icontains'],
+            'q': 'exact',
         }
+
+    def filter_q(self, queryset, name, value):
+        query = utils.get_query(value, ['name', 'user__username'])
+        return queryset.filter(query)
diff --git a/api/funkwhale_api/playlists/views.py b/api/funkwhale_api/playlists/views.py
index 5de6067ffe9935121013c373a0c7c71719b79273..4880b1886d9c873595d978f20969a0f109400fd0 100644
--- a/api/funkwhale_api/playlists/views.py
+++ b/api/funkwhale_api/playlists/views.py
@@ -8,15 +8,14 @@ from rest_framework.decorators import detail_route
 from rest_framework.response import Response
 from rest_framework.permissions import IsAuthenticatedOrReadOnly
 
-from funkwhale_api.music.models import Track
 from funkwhale_api.common import permissions
 from funkwhale_api.common import fields
+from funkwhale_api.music.models import Track
 
 from . import filters
 from . import models
 from . import serializers
 
-
 class PlaylistViewSet(
         mixins.RetrieveModelMixin,
         mixins.CreateModelMixin,
@@ -37,6 +36,7 @@ class PlaylistViewSet(
     ]
     owner_checks = ['write']
     filter_class = filters.PlaylistFilter
+    ordering_fields = ('id', 'name', 'creation_date', 'modification_date')
 
     def get_serializer_class(self):
         if self.request.method in ['PUT', 'PATCH', 'DELETE', 'POST']: