diff --git a/frontend/src/hooks/useOus/index.tsx b/frontend/src/hooks/useOus/index.tsx
index 01459176acb55d3eeada3c9271b7ffc640d6b0b8..b8073e4e14c1263f6f5858712e41b1a72f433458 100644
--- a/frontend/src/hooks/useOus/index.tsx
+++ b/frontend/src/hooks/useOus/index.tsx
@@ -9,10 +9,10 @@ type OuData = {
 function useOus(): OuData[] {
   const [ous, setOus] = useState<OuData[]>([])
   const getOptions = async () => {
-    const response = await fetch('/api/ui/v1/ous/?format=json')
+    const response = await fetch('/api/ui/v1/ous?format=json')
     if (response.ok) {
       const ousJson = await response.json()
-      setOus(ousJson.ous)
+      setOus(ousJson)
     }
   }
 
diff --git a/greg/api/serializers/organizational_unit.py b/greg/api/serializers/organizational_unit.py
index 95258a1070bdb4324e0f5d1c288e03d8365794bf..1053f79bf934f59c4b6df11d1a2b4f8cd3ac3384 100644
--- a/greg/api/serializers/organizational_unit.py
+++ b/greg/api/serializers/organizational_unit.py
@@ -1,4 +1,5 @@
-from rest_framework.serializers import ModelSerializer
+from rest_framework.serializers import ModelSerializer, CharField
+
 from greg.api.serializers.ouidentifier import OuIdentifierSerializer
 
 from greg.models import OrganizationalUnit
@@ -20,3 +21,12 @@ class OrganizationalUnitSerializer(ModelSerializer):
             "parent",
             "identifiers",
         ]
+
+
+class SponsorOrgUnitsSerializer(ModelSerializer):
+    nb = CharField(source="name_nb")
+    en = CharField(source="name_en")
+
+    class Meta:
+        model = OrganizationalUnit
+        fields = ["id", "nb", "en"]
diff --git a/gregui/api/urls.py b/gregui/api/urls.py
index aaa40487cd74bcf78be456e59afb32578bab0abd..b318d9ae136aae5fc7e35d9d7e54a65dc373c2fb 100644
--- a/gregui/api/urls.py
+++ b/gregui/api/urls.py
@@ -8,6 +8,7 @@ from gregui.api.views.invitation import (
     InvitationView,
     InvitedGuestView,
 )
+from gregui.api.views.ou import OusViewSet
 from gregui.api.views.person import PersonSearchView, PersonView
 from gregui.api.views.role import RoleInfoViewSet
 from gregui.api.views.roletypes import RoleTypeViewSet
@@ -16,6 +17,7 @@ from gregui.api.views.unit import UnitsViewSet
 router = DefaultRouter(trailing_slash=False)
 router.register(r"role", RoleInfoViewSet, basename="role")
 router.register(r"identity", IdentityViewSet, basename="identity")
+router.register(r"ous", OusViewSet, basename="ou")
 
 urlpatterns = router.urls
 urlpatterns += [
diff --git a/gregui/api/views/ou.py b/gregui/api/views/ou.py
index 4dc2065e072d845d708cd10e967aae23ebc78f76..362f2211d1a9eb073657644f50a9d797d28e7f9d 100644
--- a/gregui/api/views/ou.py
+++ b/gregui/api/views/ou.py
@@ -1,29 +1,20 @@
-from django.http import JsonResponse
+from rest_framework import mixins
 from rest_framework.authentication import SessionAuthentication, BasicAuthentication
 from rest_framework.permissions import IsAuthenticated
-from rest_framework.views import APIView
+from rest_framework.viewsets import GenericViewSet
+from greg.api.serializers.organizational_unit import SponsorOrgUnitsSerializer
 
-from greg.models import Sponsor
 from greg.permissions import IsSponsor
 from gregui.models import GregUserProfile
 
 
-class OusView(APIView):
+class OusViewSet(mixins.ListModelMixin, GenericViewSet):
     """Fetch Ous related to the authenticated sponsor."""
 
     authentication_classes = [SessionAuthentication, BasicAuthentication]
     permission_classes = [IsAuthenticated, IsSponsor]
+    serializer_class = SponsorOrgUnitsSerializer
 
-    @staticmethod
-    # pylint: disable=W0622
-    def get(request, format=None):
-        profile = GregUserProfile.objects.get(user=request.user)
-        sponsor = Sponsor.objects.get(id=profile.sponsor.id)
-        return JsonResponse(
-            {
-                "ous": [
-                    {"id": i.id, "nb": i.name_nb, "en": i.name_en}
-                    for i in sponsor.units.all()
-                ]
-            }
-        )
+    def get_queryset(self):
+        sponsor = GregUserProfile.objects.get(user=self.request.user).sponsor
+        return sponsor.units.all()
diff --git a/gregui/urls.py b/gregui/urls.py
index cbdf296086973b561b0cd1149c3ff44556a6639c..0c2f085bca00174ac661c1d3b2f1990378647ca8 100644
--- a/gregui/urls.py
+++ b/gregui/urls.py
@@ -5,7 +5,6 @@ from django.urls import path
 from django.urls.resolvers import URLResolver
 
 from gregui.api import urls as api_urls
-from gregui.api.views.ou import OusView
 from gregui.api.views.userinfo import UserInfoView
 from gregui.api.views.person import GuestInfoView
 from . import views
@@ -21,6 +20,5 @@ urlpatterns: List[URLResolver] = [
     path("api/ui/v1/testmail/", views.send_test_email, name="api-testmail"),
     path("api/ui/v1/whoami/", views.WhoAmIView.as_view(), name="api-whoami"),
     path("api/ui/v1/userinfo/", UserInfoView.as_view(), name="api-userinfo"),  # type: ignore
-    path("api/ui/v1/ous/", OusView.as_view()),
     path("api/ui/v1/guests/", GuestInfoView.as_view()),
 ]