diff --git a/server/app/apis/slides.py b/server/app/apis/slides.py
index 02d0d3d699cf44a29acd5cee7e50fe3d4456c548..3d9ce6fedec13dc204edf995720cce1bff9bef25 100644
--- a/server/app/apis/slides.py
+++ b/server/app/apis/slides.py
@@ -83,3 +83,15 @@ class SlidesOrder(Resource):
         item_slide = dbc.edit.switch_order(item_slide, item_slide_order)
 
         return item_response(schema.dump(item_slide))
+
+
+@api.route("/<SOrder>/copy")
+@api.param("CID,SOrder")
+class SlidesOrder(Resource):
+    @check_jwt(editor=True)
+    def put(self, CID, SOrder):
+        item_slide = dbc.get.slide(CID, SOrder)
+
+        item_slide_copy = dbc.copy.slide(item_slide)
+
+        return item_response(schema.dump(item_slide_copy))
diff --git a/server/tests/test_app.py b/server/tests/test_app.py
index 467fd0596269bbb875262c9b1be74f45807ed494..aa1758f9822bcc378220626fac30d854ae23b3f7 100644
--- a/server/tests/test_app.py
+++ b/server/tests/test_app.py
@@ -301,6 +301,11 @@ def test_slide_api(client):
     # Changes the order
     change_order_test(client, CID, slide_order, slide_order + 1, headers)
 
+    # Copies slide
+    for _ in range(10):
+        response, _ = put(client, f"/api/competitions/{CID}/slides/{slide_order}/copy", headers=headers)
+        assert response.status_code == codes.OK
+
 
 def test_question_api(client):
     add_default_values()