diff --git a/unisportomat/quiz/serializers.py b/unisportomat/quiz/serializers.py
index f17f486ddcb0a6476b4e5465e0fa5a32150c2efd..0400657ef05892bda1917c908104afe797a34e0c 100644
--- a/unisportomat/quiz/serializers.py
+++ b/unisportomat/quiz/serializers.py
@@ -2,7 +2,7 @@
 Serializers creating JSONs for every Model from .models
 """
 from rest_framework import serializers
-from .models import Sport, Criterion, Question
+from .models import Sport, Criterion, Question, CriterionRating
 
 
 class SportListSerializer(serializers.ModelSerializer):
@@ -52,3 +52,38 @@ class SmallSportListSerializer(serializers.BaseSerializer):
             )
 
         return serialized_data
+
+
+class SingleSportSerializer(serializers.BaseSerializer):
+    def to_representation(self, sport):
+
+        serialized_data = {}
+
+        serialized_data["pk"] = sport.pk
+        serialized_data["name"] = sport.name
+        serialized_data["url"] = sport.url
+
+        criteria = []
+
+        for criterion in sport.criteria_ratings.iterator():
+            criterion_data = {}
+
+            criterion_data["pk"] = criterion.pk
+            criterion_data["name"] = criterion.name
+
+            # The iterator iterates over the Criterions connected, and not the criterion connection itself, so we need to get that one again
+            criterion_data["value"] = CriterionRating.objects.get(
+                criterion=criterion.pk, sport=sport.pk
+            ).rating
+
+            criteria.append(criterion_data)
+
+        serialized_data["criteria"] = criteria
+
+        return serialized_data
+
+    def to_internal_value(self, request):
+
+        # Probably do some Testing and Data Verification here?
+
+        return request.data
diff --git a/unisportomat/quiz/views.py b/unisportomat/quiz/views.py
index 5c528aaa291132aed38157a2aa0797c290aa9cd7..8aca5df270a261fb923e99f11c5f9c8fb85060d1 100644
--- a/unisportomat/quiz/views.py
+++ b/unisportomat/quiz/views.py
@@ -11,6 +11,7 @@ from .serializers import (
     SportListSerializer,
     CriterionListSerializer,
     QuestionListSerializer,
+    SingleSportSerializer,
 )
 from .models import Sport, Criterion, Question
 
@@ -56,9 +57,30 @@ class SmallSportListView(viewsets.ViewSet):
     TODO: More Documentation
     """
 
+    # GET for api/admin/sport/
     def list(self, request):
 
-        return Response({"test": 0})
+        return Response({"test": "Showing all Entries"})
+
+    # POST for api/admin/sport/
+    def create(self, request):
+
+        return Response({"test": "Creating a new Entry"})
+
+    # GET for api/admin/sport/<id>/
+    def retrieve(self, request, pk=None):
+
+        return Response({"test": "Getting a Single Entry"})
+
+    # PUT for api/admin/sport/<id>/
+    def update(self, request, pk=None):
+
+        return Response({"test": "Updating a Single Entry"})
+
+    # DELETE for api/admin/sport/<id>/
+    def destroy(self, request, pk=None):
+
+        return Response({"test": "Removing a Single Entry"})
 
 
 # Dev Notes:
@@ -75,6 +97,8 @@ class SmallSportListAPIView(APIView):
     TODO: More Documentation
     """
 
+    authentication_classes = []
+
     def get(self, request):
 
         sports = Sport.objects.all()
@@ -103,3 +127,52 @@ class SmallSportListAPIView(APIView):
         serializer = SmallSportListSerializer(is_filled_tuples)
 
         return Response(serializer.data)
+
+
+class SingleSportAPIView(APIView):
+
+    authentication_classes = []
+
+    def get(self, request, pk):
+
+        return Response(SingleSportSerializer(Sport.objects.get(pk=pk)).data)
+
+    def put(self, request, pk):
+
+        data_dict = SingleSportSerializer().to_internal_value(request)
+
+        sport = Sport.objects.get(pk=pk)
+
+        print(data_dict)
+
+        return Response([])
+
+
+class CreateSportAPIView(APIView):
+
+    authentication_classes = []
+
+    def post(self, request):
+
+        data_dict = SingleSportSerializer().to_internal_value(request)
+
+        print(data_dict)
+
+        new_sport = Sport()
+
+        new_sport.name = data_dict["name"]
+        new_sport.url = data_dict["url"]
+
+        # Before writing other Database Entries for Rating, the Sport needs to be saved once
+        new_sport.save()
+
+        for criterion in data_dict["criteria"]:
+            new_sport.rate(
+                Criterion.objects.get(pk=criterion["pk"]), criterion["value"]
+            )
+
+        new_sport.save()
+
+        response = SingleSportSerializer(new_sport)
+
+        return Response(response.data)
diff --git a/unisportomat/unisportomat/urls.py b/unisportomat/unisportomat/urls.py
index 480adf19d9a3e7df3cb94f470ca79d3f908f46d3..de0f819dfbd215935161f5771f64d36cfe83785f 100644
--- a/unisportomat/unisportomat/urls.py
+++ b/unisportomat/unisportomat/urls.py
@@ -27,5 +27,7 @@ router.register(r"small-sport-list", views.SmallSportListView, "small-sport-list
 urlpatterns = [
     path("admin/", admin.site.urls),
     path("api/admin/", include(router.urls)),
-    path(r"api/admin/single-small-sport-list", views.SmallSportListAPIView.as_view()),
+    path("api/admin/single-small-sport-list", views.SmallSportListAPIView.as_view()),
+    path("api/admin/single-sport/<int:pk>", views.SingleSportAPIView.as_view()),
+    path("api/admin/single-sport", views.CreateSportAPIView.as_view()),
 ]