diff --git a/api/api.yml b/api/api.yml
index 17a79e2..0c41e0b 100644
--- a/api/api.yml
+++ b/api/api.yml
@@ -58,6 +58,17 @@ components:
            type: string
       required:
         - username
+    #############################################
+    #  PlayerApiModel                                   #
+    #############################################
+    PlayerApiModel:
+      description: a Player
+      type: object
+      properties:
+        name:
+          type: string
+      required:
+        - name
   responses:
     201PlayerCreated:
       description: "201 - Player Created"
@@ -146,5 +157,26 @@ paths:
           $ref: "#/components/responses/401Unauthorized"
         500:
           $ref: "#/components/responses/500InternalError"
+        503:
+          $ref: "#/components/responses/503ServiceUnavailable"
+  /admin/players:
+    get:
+      operationId: "GetAllPlayers"
+      tags:
+        - admin
+      description: 'Endpoint for getting all players'
+      responses:
+        200:
+          description: "A List of all Player"
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: "#/components/schemas/PlayerApiModel"
+        401:
+          $ref: "#/components/responses/401Unauthorized"
+        500:
+          $ref: "#/components/responses/500InternalError"
         503:
           $ref: "#/components/responses/503ServiceUnavailable"
\ No newline at end of file
diff --git a/src/main/java/de/towerdefence/server/admin/AdminApiController.java b/src/main/java/de/towerdefence/server/admin/AdminApiController.java
index a04f9b6..8ae62d9 100644
--- a/src/main/java/de/towerdefence/server/admin/AdminApiController.java
+++ b/src/main/java/de/towerdefence/server/admin/AdminApiController.java
@@ -1,16 +1,26 @@
 package de.towerdefence.server.admin;
 
-
 import com.fasterxml.jackson.databind.ObjectMapper;
 import de.towerdefence.server.auth.UserSession;
 import de.towerdefence.server.oas.AdminApi;
 import de.towerdefence.server.oas.models.AdminAuthInfo;
+import de.towerdefence.server.oas.models.PlayerApiModel;
+import de.towerdefence.server.player.Player;
+import de.towerdefence.server.player.PlayerRepository;
+import de.towerdefence.server.utils.PlayerMapperService;
 import jakarta.servlet.http.HttpServletRequest;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
 import java.util.Optional;
 
 @Controller
@@ -20,6 +30,13 @@ public class AdminApiController implements AdminApi {
     @Autowired
     UserSession userSession;
 
+    @Autowired
+    PlayerRepository playerRepository;
+
+    @Autowired
+    PlayerMapperService playerMapperService;
+
+
     @Override
     public Optional<ObjectMapper> getObjectMapper() {
         return Optional.empty();
@@ -36,4 +53,26 @@ public class AdminApiController implements AdminApi {
         authInfo.setUsername(this.userSession.getUsername());
         return ResponseEntity.ok(authInfo);
     }
+
+
+    @GetMapping("/admin/players")
+    public ResponseEntity<List<PlayerApiModel>> getAllPlayers(
+            @RequestParam(value = "page", required = false, defaultValue = "0") int page,
+            @RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize,
+            @RequestParam(value = "sortBy", required = false, defaultValue = "name") String sortBy,
+            @RequestParam(value = "order", required = false, defaultValue = "asc") String order,
+            @RequestParam(value = "name", required = false) String name) {
+
+        Sort.Direction direction = order.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC;
+        Pageable pageable = PageRequest.of(page, pageSize, Sort.by(direction, sortBy));
+
+        Page<Player> playerPage = (name != null && !name.trim().isEmpty())
+                ? playerRepository.findByNameContainingIgnoreCase(name, pageable)
+                : playerRepository.findAll(pageable);
+
+        List<PlayerApiModel> playersMapped = playerMapperService.mapPlayerToApiPlayers(playerPage.getContent());
+
+        return playersMapped.isEmpty() ? ResponseEntity.noContent().build() : ResponseEntity.ok(playersMapped);
+    }
+
 }
diff --git a/src/main/java/de/towerdefence/server/player/PlayerRepository.java b/src/main/java/de/towerdefence/server/player/PlayerRepository.java
index 5ca4c19..d4ab50f 100644
--- a/src/main/java/de/towerdefence/server/player/PlayerRepository.java
+++ b/src/main/java/de/towerdefence/server/player/PlayerRepository.java
@@ -1,8 +1,11 @@
 package de.towerdefence.server.player;
 
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 public  interface PlayerRepository extends JpaRepository<Player, Long> {
     Player findByUsername(String username);
     boolean existsByUsername(String username);
+    Page<Player> findByNameContainingIgnoreCase(String name, Pageable pageable);
 }
diff --git a/src/main/java/de/towerdefence/server/utils/PlayerMapperService.java b/src/main/java/de/towerdefence/server/utils/PlayerMapperService.java
new file mode 100644
index 0000000..3f31356
--- /dev/null
+++ b/src/main/java/de/towerdefence/server/utils/PlayerMapperService.java
@@ -0,0 +1,21 @@
+package de.towerdefence.server.utils;
+
+import de.towerdefence.server.oas.models.PlayerApiModel;
+import de.towerdefence.server.player.Player;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class PlayerMapperService {
+
+    public List<PlayerApiModel> mapPlayerToApiPlayers(List<Player> players) {
+        List<PlayerApiModel> apiPlayers = new ArrayList<>();
+        for (Player player : players) {
+            PlayerApiModel apiPlayer = new PlayerApiModel();
+            apiPlayer.setName(player.getUsername());
+        }
+        return apiPlayers;
+    }
+}