diff --git a/AKModel/models.py b/AKModel/models.py
index f11c66e254d222a7edefb038b5dd7d637a81a3a0..5bd570dcabe6ddfc65db1a711ef1f0f26ff3228b 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -871,7 +871,7 @@ class Room(models.Model):
             time_constraints = [f"availability-room-{self.pk}"]
 
         data = {
-            "id": str(self.pk),
+            "id": self.pk,
             "info": {
                 "name": self.name,
             },
@@ -1018,13 +1018,13 @@ class AKSlot(models.Model):
         ceil_offet_eps = decimal.Decimal(1e-4)
 
         data = {
-            "id": str(self.pk),
+            "id": self.pk,
             "duration": math.ceil(self.duration / self.event.export_slot - ceil_offet_eps),
             "properties": {
                 "conflicts":
-                    [str(conflict.pk) for conflict in conflict_slots.all()]
-                  + [str(second_slot.pk) for second_slot in other_ak_slots.all()],
-                "dependencies": [str(dep.pk) for dep in dependency_slots.all()],
+                    [conflict.pk for conflict in conflict_slots.all()]
+                  + [second_slot.pk for second_slot in other_ak_slots.all()],
+                "dependencies": [dep.pk for dep in dependency_slots.all()],
             },
             "room_constraints": [constraint.name
                                  for constraint in self.ak.requirements.all()],
@@ -1036,7 +1036,7 @@ class AKSlot(models.Model):
                 "description": self.ak.description,
                 "reso": self.ak.reso,
                 "duration_in_hours": float(self.duration),
-                "django_ak_id": str(self.ak.pk),
+                "django_ak_id": self.ak.pk,
                 },
             }
 
diff --git a/AKModel/tests/test_json_export.py b/AKModel/tests/test_json_export.py
index 48c8d7fdcfdebc13a5acf2e3d9e9b01d2d851bf4..8bfe554dddc56598bc34d576f8476cc570e49d8d 100644
--- a/AKModel/tests/test_json_export.py
+++ b/AKModel/tests/test_json_export.py
@@ -89,7 +89,7 @@ class JSONExportTest(TestCase):
             with self.subTest(event=event):
                 self.set_up_event(event=event)
                 self.assertEqual(
-                    {str(slot.pk) for slot in self.ak_slots},
+                    {slot.pk for slot in self.ak_slots},
                     self.export_objects["aks"].keys(),
                     "Exported AKs does not match the AKSlots of the event",
                 )
@@ -152,7 +152,7 @@ class JSONExportTest(TestCase):
                         f"{item} properties keys not as expected",
                     )
 
-                    self._check_type(ak["id"], str, "id", item=item)
+                    self._check_type(ak["id"], int, "id", item=item)
                     self._check_type(ak["duration"], int, "duration", item=item)
                     self._check_type(ak["info"]["name"], str, "info/name", item=item)
                     self._check_type(ak["info"]["head"], str, "info/head", item=item)
@@ -168,16 +168,22 @@ class JSONExportTest(TestCase):
                     )
                     self._check_type(
                         ak["info"]["django_ak_id"],
-                        str,
+                        int,
                         "info/django_ak_id",
                         item=item,
                     )
 
                     self._check_lst(
-                        ak["properties"]["conflicts"], "conflicts", item=item
+                        ak["properties"]["conflicts"],
+                        "conflicts",
+                        item=item,
+                        contained_type=int,
                     )
                     self._check_lst(
-                        ak["properties"]["dependencies"], "dependencies", item=item
+                        ak["properties"]["dependencies"],
+                        "dependencies",
+                        item=item,
+                        contained_type=int,
                     )
                     self._check_lst(
                         ak["time_constraints"], "time_constraints", item=item
@@ -212,7 +218,7 @@ class JSONExportTest(TestCase):
                         f"{item} info keys not as expected",
                     )
 
-                    self._check_type(room["id"], str, "id", item=item)
+                    self._check_type(room["id"], int, "id", item=item)
                     self._check_type(room["capacity"], int, "capacity", item=item)
                     self._check_type(room["info"]["name"], str, "info/name", item=item)
 
@@ -294,7 +300,7 @@ class JSONExportTest(TestCase):
                         {"start", "end"},
                         f"{item} info keys not as expected",
                     )
-                    self._check_type(timeslot["id"], str, "id", item=item)
+                    self._check_type(timeslot["id"], int, "id", item=item)
                     self._check_type(
                         timeslot["info"]["start"], str, "info/start", item=item
                     )
@@ -307,10 +313,10 @@ class JSONExportTest(TestCase):
                     if prev_id is not None:
                         self.assertLess(
                             prev_id,
-                            int(timeslot["id"]),
+                            timeslot["id"],
                             "timeslot ids must be increasing",
                         )
-                    prev_id = int(timeslot["id"])
+                    prev_id = timeslot["id"]
 
     def test_general_conformity_to_spec(self):
         """Test if rest of JSON structure and types conform to standard."""
@@ -347,7 +353,7 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for slot in self.ak_slots:
-                    ak = self.export_objects["aks"][str(slot.pk)]
+                    ak = self.export_objects["aks"][slot.pk]
 
                     self.assertLessEqual(
                         float(slot.duration) * self.slots_in_an_hour - 1e-4,
@@ -374,23 +380,22 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for slot in self.ak_slots:
-                    ak = self.export_objects["aks"][str(slot.pk)]
-                    conflict_slots = self.ak_slots.filter(
-                        ak__in=slot.ak.conflicts.all()
-                    ).values_list("pk", flat=True)
-                    conflict_pks = {str(conflict_pk) for conflict_pk in conflict_slots}
+                    ak = self.export_objects["aks"][slot.pk]
+                    conflict_slots = set(
+                        self.ak_slots.filter(
+                            ak__in=slot.ak.conflicts.all()
+                        ).values_list("pk", flat=True)
+                    )
 
                     other_ak_slots = (
                         self.ak_slots.filter(ak=slot.ak)
                         .exclude(pk=slot.pk)
                         .values_list("pk", flat=True)
                     )
-                    conflict_pks.update(
-                        str(other_slot_pk) for other_slot_pk in other_ak_slots
-                    )
+                    conflict_slots.update(other_ak_slots)
 
                     self.assertEqual(
-                        conflict_pks,
+                        conflict_slots,
                         set(ak["properties"]["conflicts"]),
                         f"Conflicts for slot {slot.pk} not as expected",
                     )
@@ -402,13 +407,13 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for slot in self.ak_slots:
-                    ak = self.export_objects["aks"][str(slot.pk)]
+                    ak = self.export_objects["aks"][slot.pk]
                     dependency_slots = self.ak_slots.filter(
                         ak__in=slot.ak.prerequisites.all()
                     ).values_list("pk", flat=True)
 
                     self.assertEqual(
-                        {str(dep_pk) for dep_pk in dependency_slots},
+                        set(dependency_slots),
                         set(ak["properties"]["dependencies"]),
                         f"Dependencies for slot {slot.pk} not as expected",
                     )
@@ -420,7 +425,7 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for slot in self.ak_slots:
-                    ak = self.export_objects["aks"][str(slot.pk)]
+                    ak = self.export_objects["aks"][slot.pk]
                     self.assertEqual(slot.ak.reso, ak["info"]["reso"])
                     self.assertEqual(
                         slot.ak.reso, "resolution" in ak["time_constraints"]
@@ -433,13 +438,13 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for slot in self.ak_slots:
-                    ak = self.export_objects["aks"][str(slot.pk)]
+                    ak = self.export_objects["aks"][slot.pk]
                     self.assertEqual(ak["info"]["name"], slot.ak.name)
                     self.assertEqual(
                         ak["info"]["head"], ", ".join(map(str, slot.ak.owners.all()))
                     )
                     self.assertEqual(ak["info"]["description"], slot.ak.description)
-                    self.assertEqual(ak["info"]["django_ak_id"], str(slot.ak.pk))
+                    self.assertEqual(ak["info"]["django_ak_id"], slot.ak.pk)
 
     def test_ak_room_constraints(self):
         """Test if AK room constraints are exported as expected."""
@@ -448,7 +453,7 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for slot in self.ak_slots:
-                    ak = self.export_objects["aks"][str(slot.pk)]
+                    ak = self.export_objects["aks"][slot.pk]
                     requirements = list(
                         slot.ak.requirements.values_list("name", flat=True)
                     )
@@ -503,7 +508,7 @@ class JSONExportTest(TestCase):
                         ):
                             time_constraints.add(f"availability-person-{owner.pk}")
 
-                    ak = self.export_objects["aks"][str(slot.pk)]
+                    ak = self.export_objects["aks"][slot.pk]
                     self.assertEqual(
                         set(ak["time_constraints"]),
                         time_constraints,
@@ -517,7 +522,7 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 self.assertEqual(
-                    {str(room.pk) for room in self.rooms},
+                    {room.pk for room in self.rooms},
                     self.export_objects["rooms"].keys(),
                     "Exported Rooms do not match the Rooms of the event",
                 )
@@ -529,7 +534,7 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for room in self.rooms:
-                    export_room = self.export_objects["rooms"][str(room.pk)]
+                    export_room = self.export_objects["rooms"][room.pk]
                     self.assertEqual(room.capacity, export_room["capacity"])
 
     def test_room_info(self):
@@ -539,7 +544,7 @@ class JSONExportTest(TestCase):
                 self.set_up_event(event=event)
 
                 for room in self.rooms:
-                    export_room = self.export_objects["rooms"][str(room.pk)]
+                    export_room = self.export_objects["rooms"][room.pk]
                     self.assertEqual(room.name, export_room["info"]["name"])
 
     def test_room_timeconstraints(self):
@@ -557,7 +562,7 @@ class JSONExportTest(TestCase):
                     ):
                         time_constraints.add(f"availability-room-{room.pk}")
 
-                    export_room = self.export_objects["rooms"][str(room.pk)]
+                    export_room = self.export_objects["rooms"][room.pk]
                     self.assertEqual(
                         time_constraints, set(export_room["time_constraints"])
                     )
@@ -583,7 +588,7 @@ class JSONExportTest(TestCase):
 
                     fulfilled_room_constraints.add(f"fixed-room-{room.pk}")
 
-                    export_room = self.export_objects["rooms"][str(room.pk)]
+                    export_room = self.export_objects["rooms"][room.pk]
                     self.assertEqual(
                         fulfilled_room_constraints,
                         set(export_room["fulfilled_room_constraints"]),
diff --git a/AKModel/views/ak.py b/AKModel/views/ak.py
index f8b83f040b6c7d03a6e268653d3bf5ebb8cb36e3..43fe489bba19bef5244880932027a8d6e0c26b59 100644
--- a/AKModel/views/ak.py
+++ b/AKModel/views/ak.py
@@ -168,7 +168,7 @@ class AKJSONExportView(AdminViewMixin, FilterByEventSlugMixin, ListView):
                 time_constraints.extend(block_timeconstraints)
 
                 current_block.append({
-                    "id": str(timeslot.idx),
+                    "id": timeslot.idx,
                     "info": {
                         "start": timeslot.avail.start.astimezone(self.event.timezone).strftime("%Y-%m-%d %H:%M"),
                         "end": timeslot.avail.end.astimezone(self.event.timezone).strftime("%Y-%m-%d %H:%M"),