diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java b/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
index 7da116d..bd6aad9 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
+++ b/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
@@ -2,7 +2,6 @@ package eu.mhsl.craftattack.spawn.api.client.repositories;
 
 import eu.mhsl.craftattack.spawn.api.client.HttpRepository;
 import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.appliances.report.Report;
 import eu.mhsl.craftattack.spawn.util.api.ApiUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -31,6 +30,10 @@ public class ReportRepository extends HttpRepository {
     }
 
     public ReqResp<ReportsResponse> queryReports(UUID player) {
-        return this.get("reports", (builder) -> builder.addParameter("token", "asd"), input, SendReportResponse.class);
+        return this.get(
+            "report",
+            uriBuilder -> uriBuilder.addParameter("uuid", player.toString()),
+            ReportRepository.ReportsResponse.class
+        );
     }
 }
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/report/Report.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/report/Report.java
index c426c95..dc4cbe6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/report/Report.java
+++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/report/Report.java
@@ -2,6 +2,8 @@ package eu.mhsl.craftattack.spawn.appliances.report;
 
 import com.google.gson.Gson;
 import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.spawn.api.client.ReqResp;
+import eu.mhsl.craftattack.spawn.api.client.repositories.ReportRepository;
 import eu.mhsl.craftattack.spawn.appliance.Appliance;
 import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
@@ -51,15 +53,6 @@ public class Report extends Appliance {
     private record ReportResponse(@NotNull String url) {
     }
 
-    private record ReportsResponse(List<ReportInfo> from_self, Object to_self) {
-    }
-
-    private record ReportInfo(Reporter reported, @NotNull String subject, boolean draft, @NotNull String status, @NotNull String url) {
-    }
-
-    private record Reporter(@NotNull String username, @NotNull String uuid) {
-    }
-
     public void reportToUnknown(@NotNull Player issuer) {
         Request request = new Request(issuer.getUniqueId(), null, "");
         this.issueReport(issuer, request);
@@ -79,25 +72,20 @@ public class Report extends Appliance {
     }
 
     public void requestReports(Player issuer) {
-        URIBuilder uriBuilder = new URIBuilder(this.apiEndpoint);
-        uriBuilder.addParameter("secret", apiSecret);
-        uriBuilder.addParameter("uuid", issuer.getUniqueId().toString());
+         ReqResp<ReportRepository.ReportsResponse> response = this.queryRepository(ReportRepository.class).queryReports(issuer.getUniqueId());
 
-        try(HttpClient client = HttpClient.newHttpClient()) {
-            HttpRequest httpRequest = HttpRequest.newBuilder()
-                .uri(uriBuilder.build())
-                .header("Content-Type", "application/json")
-                .GET()
-                .build();
+         if(response.status() != 200) {
+             Main.logger().warning("Failed to request Reports: " + response.status());
+             issuer.sendMessage(
+                 Component.text()
+                     .append(Component.text("Interner Serverfehler beim abfragen der Reports.", NamedTextColor.RED))
+                     .appendNewline()
+                     .append(Component.text("Bitte melde dich bei einem Admin!", NamedTextColor.RED))
+             );
+             return;
+         }
 
-            HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
-            this.printReports(issuer, httpResponse);
-        } catch (IOException | InterruptedException | URISyntaxException e) {
-            issuer.sendMessage(
-                Component.text("Internal server description: " + e.getMessage()).color(NamedTextColor.RED)
-            );
-            throw new RuntimeException(e);
-        }
+         this.printReports(issuer, response);
     }
 
     private void issueReport(Player issuer, Request reportRequest) {
@@ -121,21 +109,9 @@ public class Report extends Appliance {
         }
     }
 
-    private void printReports(Player issuer, HttpResponse<String> httpResponse) {
-        if(httpResponse.statusCode() != 200) {
-
-            Main.logger().warning("Failed to request Reports: " + httpResponse.statusCode());
-            issuer.sendMessage(
-                Component.text()
-                    .append(Component.text("Interner Serverfehler beim abfragen der Reports.", NamedTextColor.RED))
-                    .appendNewline()
-                    .append(Component.text("Bitte melde dich bei einem Admin!", NamedTextColor.RED))
-            );
-            return;
-        }
-
-        List<ReportInfo> reports = new Gson().fromJson(httpResponse.body(), ReportsResponse.class).from_self;
-        reports.removeIf(reportInfo -> reportInfo.draft);
+    private void printReports(Player issuer, ReqResp<ReportRepository.ReportsResponse> response) {
+        List<ReportRepository.ReportInfo> reports = response.data().from_self();
+        reports.removeIf(ReportRepository.ReportInfo::draft);
         if(reports.isEmpty()) {
             issuer.sendMessage(
                 Component.text()
@@ -158,9 +134,9 @@ public class Report extends Appliance {
             component.append(
                 Component.text()
                     .append(Component.text(" - ", NamedTextColor.WHITE))
-                    .append(Component.text(reportInfo.reported.username, NamedTextColor.WHITE))
-                    .append(Component.text(String.format(": %s", reportInfo.subject), NamedTextColor.GRAY))
-                    .clickEvent(ClickEvent.openUrl(reportInfo.url))
+                    .append(Component.text(reportInfo.reported().username(), NamedTextColor.WHITE))
+                    .append(Component.text(String.format(": %s", reportInfo.subject()), NamedTextColor.GRAY))
+                    .clickEvent(ClickEvent.openUrl(reportInfo.url()))
                     .hoverEvent(HoverEvent.showText(Component.text("Klicke, um den Report einzusehen.", NamedTextColor.GOLD)))
             );
             component.appendNewline();