diff --git a/program/views.py b/program/views.py
index ca61dc3bf60c58e2741c345ef621054502903591..5ff357b131789081991e3b09e5bd7787f2e75edf 100644
--- a/program/views.py
+++ b/program/views.py
@@ -749,6 +749,7 @@ class ActiveFilterMixin:
     list=extend_schema(summary="List all categories."),
 )
 class APICategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Category.objects.all()
     serializer_class = CategorySerializer
 
@@ -762,6 +763,7 @@ class APICategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all types."),
 )
 class APITypeViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Type.objects.all()
     serializer_class = TypeSerializer
 
@@ -775,6 +777,7 @@ class APITypeViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all topics."),
 )
 class APITopicViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Topic.objects.all()
     serializer_class = TopicSerializer
 
@@ -788,6 +791,7 @@ class APITopicViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all music focuses."),
 )
 class APIMusicFocusViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = MusicFocus.objects.all()
     serializer_class = MusicFocusSerializer
 
@@ -801,6 +805,7 @@ class APIMusicFocusViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all funding categories."),
 )
 class APIFundingCategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = FundingCategory.objects.all()
     serializer_class = FundingCategorySerializer
 
@@ -814,6 +819,7 @@ class APIFundingCategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all languages."),
 )
 class APILanguageViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Language.objects.all()
     serializer_class = LanguageSerializer
 
@@ -873,6 +879,7 @@ class APIHostViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all link types."),
 )
 class APILinkTypeViewSet(viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = LinkType.objects.all()
     serializer_class = LinkTypeSerializer
 
@@ -886,5 +893,6 @@ class APILinkTypeViewSet(viewsets.ModelViewSet):
     list=extend_schema(summary="List all license types."),
 )
 class APILicenseViewSet(viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = License.objects.all()
     serializer_class = LicenseSerializer