diff --git a/backend/core/serializers.py b/backend/core/serializers.py
index 08de11b0c72112eddc615341ba8019ab26d1e72a..56ec29e3d8f31420a9837991805950a44d6e31a1 100644
--- a/backend/core/serializers.py
+++ b/backend/core/serializers.py
@@ -2,7 +2,8 @@ import logging
 
 from rest_framework import serializers
 
-from core.models import ExamType, Feedback, Student, Submission, Tutor
+from core.models import (ExamType, Feedback, Student, Submission,
+                         SubmissionType, Tutor)
 from util.factories import GradyUserFactory
 
 log = logging.getLogger(__name__)
@@ -24,6 +25,13 @@ class FeedbackSerializer(serializers.ModelSerializer):
         fields = ('text', 'score')
 
 
+class SubmissionTypeSerializer(serializers.ModelSerializer):
+
+    class Meta:
+        model = SubmissionType
+        fields = ('name', 'full_score', 'description', 'solution')
+
+
 class SubmissionSerializer(serializers.ModelSerializer):
     feedback = serializers.ReadOnlyField(source='feedback.text')
     score = serializers.ReadOnlyField(source='feedback.score')
@@ -46,11 +54,21 @@ class StudentSerializer(serializers.ModelSerializer):
         fields = ('name', 'user', 'exam', 'submissions')
 
 
+class SubmissionNoTextFieldsSerializer(serializers.ModelSerializer):
+    score = serializers.ReadOnlyField(source='feedback.score')
+    type = serializers.ReadOnlyField(source='type.name')
+    full_score = serializers.ReadOnlyField(source='type.full_score')
+
+    class Meta:
+        model = Submission
+        fields = ('type', 'score', 'full_score')
+
+
 class StudentSerializerForListView(serializers.ModelSerializer):
     name = serializers.ReadOnlyField(source='user.fullname')
     user = serializers.ReadOnlyField(source='user.username')
     exam = serializers.ReadOnlyField(source='exam.module_reference')
-    submissions = SubmissionSerializer(many=True)
+    submissions = SubmissionNoTextFieldsSerializer(many=True)
 
     class Meta:
         model = Student
diff --git a/backend/core/urls.py b/backend/core/urls.py
index f3dde516ff797147d4a777faa79106d18fa87778..a5d9818df236a4818519229846427a9582a84f97 100644
--- a/backend/core/urls.py
+++ b/backend/core/urls.py
@@ -8,6 +8,7 @@ from core import views
 # Create a router and register our viewsets with it.
 router = DefaultRouter()
 router.register(r'examtype', views.ExamApiViewSet)
+router.register(r'submissiontype', views.SubmissionTypeApiView)
 router.register(r'tutor', views.TutorApiViewSet)
 router.register(r'student', views.StudentReviewerApiViewSet)
 router.register(r'student-page', views.StudentSelfApiViewSet, base_name='student_page')
diff --git a/backend/core/views.py b/backend/core/views.py
index 690d6cfb0b431fabc9b5e1e7f8e25be22bc58df1..084a4a3e2251352de89027e6506d80dc07746c4b 100644
--- a/backend/core/views.py
+++ b/backend/core/views.py
@@ -5,10 +5,11 @@ import logging
 
 from rest_framework import mixins, viewsets
 
-from core.models import ExamType, Student, Tutor
+from core.models import ExamType, Student, SubmissionType, Tutor
 from core.permissions import IsReviewer, IsStudent
 from core.serializers import (ExamSerializer, StudentSerializer,
-                              StudentSerializerForListView, TutorSerializer)
+                              StudentSerializerForListView,
+                              SubmissionTypeSerializer, TutorSerializer)
 
 log = logging.getLogger(__name__)
 
@@ -50,3 +51,9 @@ class StudentReviewerApiViewSet(viewsets.ReadOnlyModelViewSet):
     permission_classes = (IsReviewer,)
     queryset = Student.objects.all()
     serializer_class = StudentSerializerForListView
+
+
+class SubmissionTypeApiView(viewsets.ReadOnlyModelViewSet):
+    """ Gets a list or a detail view of a single SubmissionType """
+    queryset = SubmissionType.objects.all()
+    serializer_class = SubmissionTypeSerializer