diff --git a/requirements.txt b/requirements.txt
index 1504b1f6e11eb79cbd4060da72812a085792855a..4634623558f4ef01fca555f1ff5ccf511518cd5b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9,4 +9,6 @@ requests==2.25.1
 soupsieve==2.2.1
 sqlparse==0.4.1
 urllib3==1.26.4
-Pillow==8.2.0
\ No newline at end of file
+Pillow==8.2.0
+django-cors-headers==3.7.0
+djangorestframework==3.12.4
diff --git a/unisportomat/quiz/admin.py b/unisportomat/quiz/admin.py
index d8fd65725396d0209f0d09f513fc3187cf807535..c3e5d6568c072bcb6891aedb274a5e0ec7f3333d 100644
--- a/unisportomat/quiz/admin.py
+++ b/unisportomat/quiz/admin.py
@@ -3,6 +3,8 @@
 from django.contrib import admin
 
 # Register your models here.
-from .models import Sport
+from .models import Sport, Criterion, CriterionRating
 
 admin.site.register(Sport)
+admin.site.register(Criterion)
+admin.site.register(CriterionRating)
diff --git a/unisportomat/quiz/serializers.py b/unisportomat/quiz/serializers.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ae6987e07ac762c5f5f4dc4768cf8926eba2b5c
--- /dev/null
+++ b/unisportomat/quiz/serializers.py
@@ -0,0 +1,25 @@
+"""
+Serializers creating JSONs for every Model from .models
+"""
+from rest_framework import serializers
+from .models import Sport, Criterion
+
+
+class SportListSerializer(serializers.ModelSerializer):
+    """
+    Serializes all sports.
+    """
+
+    class Meta:
+        model = Sport
+        fields = ("id", "name", "url", "criteria_ratings")
+
+
+class CriterionListSerializer(serializers.ModelSerializer):
+    """
+    Serializes Criterions
+    """
+
+    class Meta:
+        model = Criterion
+        fields = ("id", "name")
diff --git a/unisportomat/quiz/views.py b/unisportomat/quiz/views.py
index 4748ab8002b6a5c04eb7103b520ecf4a50ffdeed..ce6602ab7f47da71c0cc8ed0cd76f5e018d4450f 100644
--- a/unisportomat/quiz/views.py
+++ b/unisportomat/quiz/views.py
@@ -1,3 +1,28 @@
-""" Defines the views for the quiz app """
+"""
+Defines the views for the API
+"""
+
+# from django.shortcuts import render
+from rest_framework import viewsets
+from .serializers import SportListSerializer, CriterionListSerializer
+from .models import Sport, Criterion
 
 # Create your views here.
+
+
+class SportListView(viewsets.ModelViewSet):  # pylint: disable=too-many-ancestors
+    """
+    A View returning every Sport Object
+    """
+
+    serializer_class = SportListSerializer
+    queryset = Sport.objects.all()
+
+
+class CriterionListView(viewsets.ModelViewSet):  # pylint: disable=too-many-ancestors
+    """
+    A View returning every Criterion Object
+    """
+
+    serializer_class = CriterionListSerializer
+    queryset = Criterion.objects.all()
diff --git a/unisportomat/unisportomat/settings.py b/unisportomat/unisportomat/settings.py
index 87cc7f864146898a5321cc23d793ed6dd48a915b..1e46314375fb8545697ddb902f87bc66606ff270 100644
--- a/unisportomat/unisportomat/settings.py
+++ b/unisportomat/unisportomat/settings.py
@@ -32,13 +32,16 @@ ALLOWED_HOSTS = []
 # Application definition
 
 INSTALLED_APPS = [
-    "quiz.apps.QuizConfig",
+    # "quiz.apps.QuizConfig",
     "django.contrib.admin",
     "django.contrib.auth",
     "django.contrib.contenttypes",
     "django.contrib.sessions",
     "django.contrib.messages",
     "django.contrib.staticfiles",
+    "rest_framework",
+    "corsheaders",
+    "quiz",
 ]
 
 MIDDLEWARE = [
@@ -49,6 +52,7 @@ MIDDLEWARE = [
     "django.contrib.auth.middleware.AuthenticationMiddleware",
     "django.contrib.messages.middleware.MessageMiddleware",
     "django.middleware.clickjacking.XFrameOptionsMiddleware",
+    "corsheaders.middleware.CorsMiddleware",
 ]
 
 ROOT_URLCONF = "unisportomat.urls"
@@ -121,3 +125,8 @@ STATIC_URL = "/static/"
 # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
 
 DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
+
+CORS_ORITIN_WHITELIST = [
+    "http://localhost:3000",  # User Frontend
+    "http://localhost:4000",  # Admin Frontend
+]
diff --git a/unisportomat/unisportomat/urls.py b/unisportomat/unisportomat/urls.py
index 6a11f8a60766e41893a573be88f18d3f4a3e5040..9e2516382c8b1d9c5ec515c5af440259289c2eb5 100644
--- a/unisportomat/unisportomat/urls.py
+++ b/unisportomat/unisportomat/urls.py
@@ -14,8 +14,15 @@ Including another URLconf
     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 """
 from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
+from rest_framework import routers
+from quiz import views
+
+router = routers.DefaultRouter()
+router.register(r"sport-list", views.SportListView, "sport-list")
+router.register(r"criterion-list", views.CriterionListView, "criterion-list")
 
 urlpatterns = [
     path("admin/", admin.site.urls),
+    path("api/admin/", include(router.urls)),
 ]