diff --git a/greg/api/serializers/role.py b/greg/api/serializers/role.py
index 56b8856243ebb9b697c0f7f956275d40739a2d91..31b2a43f187644fd83675982c5738567a3eea0ea 100644
--- a/greg/api/serializers/role.py
+++ b/greg/api/serializers/role.py
@@ -1,5 +1,7 @@
 from rest_framework import serializers
+from rest_framework.fields import IntegerField
 
+from greg.api.serializers.organizational_unit import OrganizationalUnitSerializer
 from greg.models import Role, RoleType
 
 
@@ -7,6 +9,7 @@ class RoleSerializer(serializers.ModelSerializer):
     type = serializers.SlugRelatedField(
         queryset=RoleType.objects.all(), slug_field="identifier"
     )
+    orgunit = OrganizationalUnitSerializer()
 
     class Meta:
         model = Role
@@ -20,3 +23,13 @@ class RoleSerializer(serializers.ModelSerializer):
             "updated",
             "type",
         ]
+
+
+class RoleWriteSerializer(RoleSerializer):
+    """
+    Serializer for use with GET.
+
+    When doing GET we want the complete orgunit object, not just the id.
+    """
+
+    orgunit = IntegerField(source="orgunit_id")  # type: ignore
diff --git a/greg/api/views/person.py b/greg/api/views/person.py
index d5bed74610ea16fa32e2ba15a4f88b99c040370b..3214b41504d1023b9160fc29283233424f70081a 100644
--- a/greg/api/views/person.py
+++ b/greg/api/views/person.py
@@ -8,9 +8,9 @@ from greg.api.filters import PersonFilter, RoleFilter, IdentityFilter
 from greg.api.pagination import PrimaryKeyCursorPagination
 from greg.api.serializers.person import (
     PersonSerializer,
-    RoleSerializer,
     IdentitySerializer,
 )
+from greg.api.serializers.role import RoleSerializer, RoleWriteSerializer
 from greg.models import Person, Role, Identity
 
 
@@ -49,12 +49,21 @@ class RoleViewSet(viewsets.ModelViewSet):
     """Person role API"""
 
     queryset = Role.objects.all().order_by("id")
-    serializer_class = RoleSerializer
     pagination_class = PrimaryKeyCursorPagination
     filter_backends = (filters.DjangoFilterBackend,)
     filterset_class = RoleFilter
     lookup_field = "id"
 
+    def get_serializer_class(self):
+        """
+        Fetch different serializer depending on http method.
+
+        To return the complete orgunit object for GET we use a different serializer.
+        """
+        if self.request.method in ("POST", "PATCH"):
+            return RoleWriteSerializer
+        return RoleSerializer
+
     def get_queryset(self):
         qs = self.queryset
         if not self.kwargs: