diff --git a/poetry.lock b/poetry.lock
index 3650b14bde2fbcebe7c573aacec05518f0fbf548..294f02034357b597f03d874698c982647796b7f4 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -602,7 +602,7 @@ use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"]
 
 [[package]]
 name = "setuptools"
-version = "65.4.1"
+version = "65.5.0"
 description = "Easily download, build, install, upgrade, and uninstall Python packages"
 category = "main"
 optional = false
@@ -1116,8 +1116,8 @@ requests = [
     {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
 ]
 setuptools = [
-    {file = "setuptools-65.4.1-py3-none-any.whl", hash = "sha256:1b6bdc6161661409c5f21508763dc63ab20a9ac2f8ba20029aaaa7fdb9118012"},
-    {file = "setuptools-65.4.1.tar.gz", hash = "sha256:3050e338e5871e70c72983072fe34f6032ae1cdeeeb67338199c2f74e083a80e"},
+    {file = "setuptools-65.5.0-py3-none-any.whl", hash = "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356"},
+    {file = "setuptools-65.5.0.tar.gz", hash = "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17"},
 ]
 six = [
     {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
diff --git a/program/views.py b/program/views.py
index b83cd17a72734e64878431731de5f078152204f9..0057017633eaab3d2c05be365ebef4bcd518bea4 100644
--- a/program/views.py
+++ b/program/views.py
@@ -29,8 +29,9 @@ from rest_framework.pagination import LimitOffsetPagination
 from rest_framework.response import Response
 
 from django.contrib.auth.models import User
+from django.core.exceptions import FieldError
 from django.http import HttpResponse
-from django.shortcuts import get_object_or_404
+from django.shortcuts import get_list_or_404, get_object_or_404
 from django.utils import timezone
 from django.utils.translation import gettext as _
 from program import filters
@@ -274,6 +275,23 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet):
     pagination_class = LimitOffsetPagination
     filterset_class = filters.ShowFilterSet
 
+    def list(self, request, *args, **kwargs):
+        filter_kwargs = {}
+        for key, value in request.query_params.items():
+            filter_kwargs[key] = value
+
+        try:
+            queryset = get_list_or_404(self.get_queryset(), **filter_kwargs)
+        except FieldError:
+            queryset = None
+
+        if page := self.paginate_queryset(queryset) is not None:
+            serializer = self.get_serializer(page, many=True)
+            return self.get_paginated_response(serializer.data)
+
+        serializer = self.get_serializer(queryset, many=True)
+        return Response(serializer.data)
+
     def get_object(self):
         queryset = self.filter_queryset(self.get_queryset())
         lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field