diff --git a/assets/schemas.json b/assets/schemas.json
index b208b4cf..f098d015 100755
Binary files a/assets/schemas.json and b/assets/schemas.json differ
diff --git a/src/api/routes/safety-hub/@me/index.ts b/src/api/routes/safety-hub/@me/index.ts
new file mode 100644
index 00000000..854d0742
--- /dev/null
+++ b/src/api/routes/safety-hub/@me/index.ts
@@ -0,0 +1,58 @@
+/*
+ Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
+ Copyright (C) 2025 Spacebar and Spacebar Contributors
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+import { route } from "@spacebar/api";
+import { User, AccountStandingResponse } from "@spacebar/util";
+import { Request, Response, Router } from "express";
+
+const router = Router();
+
+router.get(
+ "/",
+ route({
+ responses: {
+ 200: {
+ body: "AccountStandingResponse",
+ },
+ 401: {
+ body: "APIErrorResponse",
+ },
+ },
+ }),
+ async (req: Request, res: Response) => {
+ const user = await User.findOneOrFail({
+ where: { id: req.user_id },
+ select: ["data"],
+ });
+
+ res.send({
+ classifications: [],
+ guild_classifications: [],
+ account_standing: {
+ state: 100,
+ },
+ is_dsa_eligible: true,
+ username: user.username,
+ discriminator: user.discriminator,
+ is_appeal_eligible: true,
+ appeal_eligibility: [1, 2],
+ } as AccountStandingResponse);
+ },
+);
+
+export default router;
diff --git a/src/util/schemas/responses/AccountStandingResponse.ts b/src/util/schemas/responses/AccountStandingResponse.ts
new file mode 100644
index 00000000..cee00741
--- /dev/null
+++ b/src/util/schemas/responses/AccountStandingResponse.ts
@@ -0,0 +1,38 @@
+/*
+ Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
+ Copyright (C) 2025 Spacebar and Spacebar Contributors
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+export interface AccountStandingResponse {
+ classifications: unknown[]; // TODO: We don't know what this is yet
+ guild_classifications: unknown[]; // TODO: We don't know what this is yet
+ account_standing: {
+ /**
+ * @defaultValue 100
+ * @minimum 0
+ * @maximum 100
+ */
+ state: number;
+ };
+ is_dsa_eligible: boolean;
+ username: string;
+ discriminator: string; // Not sure if this is even valid, we don't have any examples of pre-pomelo users
+ is_appeal_eligible: boolean;
+ /**
+ * @description We don't yet know what these mean, but Discord appears to return "1" and "2".
+ */
+ appeal_eligibility: number[];
+}
diff --git a/src/util/schemas/responses/index.ts b/src/util/schemas/responses/index.ts
index 856b4a3e..67daaddc 100644
--- a/src/util/schemas/responses/index.ts
+++ b/src/util/schemas/responses/index.ts
@@ -16,6 +16,7 @@
along with this program. If not, see .
*/
+export * from "./AccountStandingResponse";
export * from "./APIErrorOrCaptchaResponse";
export * from "./APIErrorResponse";
export * from "./BackupCodesChallengeResponse";