diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/serializers/scheduling.py b/SAS/TMSS/backend/src/tmss/tmssapp/serializers/scheduling.py
index 9ab1d2ef17be6657a460f535e9f1744f88467858..1b6e0d0fff95efaef6b2eaeed0314d84c104640a 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/serializers/scheduling.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/serializers/scheduling.py
@@ -85,16 +85,17 @@ class SubtaskSerializer(DynamicRelationalHyperlinkedModelSerializer):
 
 class SubtaskInputSerializer(DynamicRelationalHyperlinkedModelSerializer):
     selection_doc = JSONEditorField(schema_source='selection_template.schema')
-    input_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask consumes.')
 
     class Meta:
         model = models.SubtaskInput
         fields = '__all__'
 
 
-class SubtaskOutputSerializer(DynamicRelationalHyperlinkedModelSerializer):
-    output_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask produces.')
+class SubtaskInputExtendedSerializer(SubtaskInputSerializer):
+    input_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask consumes.')
+
 
+class SubtaskOutputSerializer(DynamicRelationalHyperlinkedModelSerializer):
     class Meta:
         model = models.SubtaskOutput
         fields = '__all__'
@@ -102,6 +103,15 @@ class SubtaskOutputSerializer(DynamicRelationalHyperlinkedModelSerializer):
         read_only_fields = ['dataproducts', 'consumers']
 
 
+class SubtaskOutputExtendedSerializer(SubtaskOutputSerializer):
+    output_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask produces.')
+
+
+class SubtaskExtendedSerializer(SubtaskSerializer):
+    inputs = SubtaskInputExtendedSerializer(read_only=True, many=True)
+    outputs = SubtaskOutputExtendedSerializer(read_only=True, many=True)
+
+
 class DataproductSerializer(DynamicRelationalHyperlinkedModelSerializer):
     specifications_doc = JSONEditorField(schema_source='specifications_template.schema')
     feedback_doc = JSONEditorField(schema_source='feedback_template.schema')
diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py
index 14c808118accba01aa322ec7afccf56557a3d358..799f1278bef510ddaeb00b411c31f57379988f0e 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py
@@ -4,7 +4,7 @@ This file contains the serializers (for the elsewhere defined data models)
 
 from rest_framework import serializers
 from .. import models
-from .scheduling import SubtaskSerializer
+from .scheduling import SubtaskSerializer, SubtaskExtendedSerializer
 from .common import FloatDurationField, RelationalHyperlinkedModelSerializer, AbstractTemplateSerializer, DynamicRelationalHyperlinkedModelSerializer, TaskConnectorTypeSerializer
 from .widgets import JSONEditorField
 from ..models import TMSSUser as User
@@ -64,13 +64,15 @@ class SchedulingConstraintsTemplateSerializer(AbstractTemplateSerializer):
 
 
 class TaskTemplateSerializer(AbstractTemplateSerializer):
-    connector_types = TaskConnectorTypeSerializer(many=True, read_only=True, help_text='The connector types which define what kind of data this task template consumes/produces.')
-
     class Meta:
         model = models.TaskTemplate
         fields = '__all__'
 
 
+class TaskTemplateExtendedSerializer(TaskTemplateSerializer):
+    connector_types = TaskConnectorTypeSerializer(many=True, read_only=True, help_text='The connector types which define what kind of data this task template consumes/produces.')
+
+
 class TaskRelationSelectionTemplateSerializer(AbstractTemplateSerializer):
     class Meta:
         model = models.TaskRelationSelectionTemplate
@@ -296,8 +298,6 @@ class TaskBlueprintSerializer(DynamicRelationalHyperlinkedModelSerializer):
 
 class TaskRelationDraftSerializer(DynamicRelationalHyperlinkedModelSerializer):
     selection_doc = JSONEditorField(schema_source='selection_template.schema')
-    input_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask consumes.')
-    output_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask produces.')
 
     class Meta:
         model = models.TaskRelationDraft
@@ -305,16 +305,24 @@ class TaskRelationDraftSerializer(DynamicRelationalHyperlinkedModelSerializer):
         extra_fields = ['blueprints']
 
 
+class TaskRelationDraftExtendedSerializer(TaskRelationDraftSerializer):
+    input_role = TaskConnectorTypeSerializer(help_text='The connector type which defines what kind of data this subtask consumes.')
+    output_role = TaskConnectorTypeSerializer(help_text='The connector type which defines what kind of data this subtask produces.')
+
+
 class TaskRelationBlueprintSerializer(DynamicRelationalHyperlinkedModelSerializer):
     selection_doc = JSONEditorField(schema_source='selection_template.schema')
-    input_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask consumes.')
-    output_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask produces.')
 
     class Meta:
         model = models.TaskRelationBlueprint
         fields = '__all__'
 
 
+class TaskRelationBlueprintExtendedSerializer(TaskRelationBlueprintSerializer):
+    input_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask consumes.')
+    output_role = TaskConnectorTypeSerializer(read_only=True, help_text='The connector type which defines what kind of data this subtask produces.')
+
+
 class TaskSchedulingRelationDraftSerializer(DynamicRelationalHyperlinkedModelSerializer):
     class Meta:
         model = models.TaskSchedulingRelationDraft
@@ -369,8 +377,8 @@ class TaskBlueprintExtendedSerializer(TaskBlueprintSerializer):
     expanded into the json response for a single API call (for convenience/optimization).
 
     """
-    subtasks = SubtaskSerializer(many=True)  # we set many=True because this field represents a sth-to-many relationship, i.e. we serialize a list of objects here
-    specifications_template = TaskTemplateSerializer()
+    subtasks = SubtaskExtendedSerializer(many=True)  # we set many=True because this field represents a sth-to-many relationship, i.e. we serialize a list of objects here
+    specifications_template = TaskTemplateExtendedSerializer()
 
 
 class TaskDraftExtendedSerializer(TaskDraftSerializer):
@@ -379,7 +387,6 @@ class TaskDraftExtendedSerializer(TaskDraftSerializer):
     expanded into the json response for a single API call (for convenience/optimization).
     """
     task_blueprints = TaskBlueprintExtendedSerializer(many=True)
-    specifications_template = TaskTemplateSerializer()
 
 
 class SchedulingUnitDraftExtendedSerializer(SchedulingUnitDraftSerializer):
diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/scheduling.py b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/scheduling.py
index d03c2a6cecebe5e58869b55be82d137d379b2d03..eb80e6ab170a58caf070aafd946c01c84bae8481 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/scheduling.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/scheduling.py
@@ -381,6 +381,10 @@ class SubtaskViewSet(LOFARViewSet):
         return JsonResponse({'id': subtask.id, 'progress': subtask.progress})
 
 
+class SubtaskExtendedViewSet(SubtaskViewSet):
+    serializer_class = serializers.SubtaskExtendedSerializer
+
+
 class SubtaskNestedViewSet(LOFARNestedViewSet):
     queryset = models.Subtask.objects.all()
     serializer_class = serializers.SubtaskSerializer
@@ -401,11 +405,19 @@ class SubtaskInputViewSet(LOFARViewSet):
     serializer_class = serializers.SubtaskInputSerializer
 
 
+class SubtaskInputExtendedViewSet(SubtaskInputViewSet):
+    serializer_class = serializers.SubtaskInputExtendedSerializer
+
+
 class SubtaskOutputViewSet(LOFARViewSet):
     queryset = models.SubtaskOutput.objects.all()
     serializer_class = serializers.SubtaskOutputSerializer
 
 
+class SubtaskOutputExtendedViewSet(SubtaskOutputViewSet):
+    serializer_class = serializers.SubtaskOutputExtendedSerializer
+
+
 class DataproductViewSet(LOFARViewSet):
     queryset = models.Dataproduct.objects.all()
     serializer_class = serializers.DataproductSerializer
diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/specification.py
index 87b0fb972f0e28a9deab1cdbf8b3b186e4c21dfd..c5278d02b9f29f4781c9d927cbb912270b9e54bc 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/specification.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/specification.py
@@ -1199,6 +1199,10 @@ class TaskDraftViewSet(LOFARViewSet):
         return Response(serializer.data)
 
 
+class TaskDraftExtendedViewSet(TaskDraftViewSet):
+    serializer_class = serializers.TaskDraftExtendedSerializer
+
+
 class TaskDraftNestedViewSet(LOFARNestedViewSet):
      queryset = models.TaskDraft.objects.all()
      serializer_class = serializers.TaskDraftSerializer
@@ -1387,6 +1391,10 @@ class TaskBlueprintViewSet(LOFARViewSet):
         return RestResponse(serializer.data)
 
 
+class TaskBlueprintExtendedViewSet(TaskBlueprintViewSet):
+    serializer_class = serializers.TaskBlueprintExtendedSerializer
+
+
 class TaskBlueprintNestedViewSet(LOFARNestedViewSet):
     queryset = models.TaskBlueprint.objects.all()
     serializer_class = serializers.TaskBlueprintSerializer
@@ -1404,6 +1412,10 @@ class TaskRelationDraftViewSet(LOFARViewSet):
     serializer_class = serializers.TaskRelationDraftSerializer
 
 
+class TaskRelationDraftExtendedViewSet(TaskRelationDraftViewSet):
+    serializer_class = serializers.TaskRelationDraftExtendedSerializer
+
+
 class TaskRelationDraftNestedViewSet(LOFARNestedViewSet):
     queryset = models.TaskRelationDraft.objects.all()
     serializer_class = serializers.TaskRelationDraftSerializer
@@ -1421,6 +1433,10 @@ class TaskRelationBlueprintViewSet(LOFARViewSet):
     serializer_class = serializers.TaskRelationBlueprintSerializer
 
 
+class TaskRelationBlueprintExtendedViewSet(TaskRelationBlueprintViewSet):
+    serializer_class = serializers.TaskRelationBlueprintExtendedSerializer
+
+
 class TaskSchedulingRelationBlueprintViewSet(LOFARViewSet):
     queryset = models.TaskSchedulingRelationBlueprint.objects.all()
     serializer_class = serializers.TaskSchedulingRelationBlueprintSerializer
diff --git a/SAS/TMSS/backend/src/tmss/urls.py b/SAS/TMSS/backend/src/tmss/urls.py
index 790db62e4ade2fcf3018ccd22d489144a6e89fca..2be2622bcc41a333ed3d37282e98cd4cc4cda4b6 100644
--- a/SAS/TMSS/backend/src/tmss/urls.py
+++ b/SAS/TMSS/backend/src/tmss/urls.py
@@ -168,7 +168,9 @@ router.register(r'scheduling_unit_draft_extended', viewsets.SchedulingUnitDraftE
 router.register(r'scheduling_unit_draft', viewsets.SchedulingUnitDraftViewSet)  # ! The last registered view on a model is used for references to objects
 router.register(r'scheduling_unit_blueprint_extended', viewsets.SchedulingUnitBlueprintExtendedViewSet)
 router.register(r'scheduling_unit_blueprint', viewsets.SchedulingUnitBlueprintViewSet)  # ! The last registered view on a model is used for references to objects
+router.register(r'task_draft_extended', viewsets.TaskDraftExtendedViewSet)
 router.register(r'task_draft', viewsets.TaskDraftViewSet)
+router.register(r'task_blueprint_extended', viewsets.TaskBlueprintExtendedViewSet)
 router.register(r'task_blueprint', viewsets.TaskBlueprintViewSet)
 router.register(r'task_relation_draft', viewsets.TaskRelationDraftViewSet)
 router.register(r'task_relation_blueprint', viewsets.TaskRelationBlueprintViewSet)
@@ -203,9 +205,12 @@ router.register(r'dataproduct_feedback_template', viewsets.DataproductFeedbackTe
 router.register(r'sap_template', viewsets.SAPTemplateViewSet)
 
 # instances
+router.register(r'subtask_extended', viewsets.SubtaskExtendedViewSet)
 router.register(r'subtask', viewsets.SubtaskViewSet)
 router.register(r'dataproduct', viewsets.DataproductViewSet)
+router.register(r'subtask_input_extended', viewsets.SubtaskInputExtendedViewSet)
 router.register(r'subtask_input', viewsets.SubtaskInputViewSet)
+router.register(r'subtask_output_extended', viewsets.SubtaskOutputExtendedViewSet)
 router.register(r'subtask_output', viewsets.SubtaskOutputViewSet)
 router.register(r'antenna_set', viewsets.AntennaSetViewSet)
 router.register(r'dataproduct_transform', viewsets.DataproductTransformViewSet)