diff --git a/src/api/routes/users/@me/activities/statistics/applications.ts b/src/api/routes/users/@me/activities/statistics/applications.ts
index 5e797ce8..a9bc5961 100644
--- a/src/api/routes/users/@me/activities/statistics/applications.ts
+++ b/src/api/routes/users/@me/activities/statistics/applications.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/affinities/guilds.ts b/src/api/routes/users/@me/affinities/guilds.ts
index e4966148..30fe8879 100644
--- a/src/api/routes/users/@me/affinities/guilds.ts
+++ b/src/api/routes/users/@me/affinities/guilds.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/affinities/users.ts b/src/api/routes/users/@me/affinities/users.ts
index 76fb8aa6..038f4108 100644
--- a/src/api/routes/users/@me/affinities/users.ts
+++ b/src/api/routes/users/@me/affinities/users.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/applications/#app_id/entitlements.ts b/src/api/routes/users/@me/applications/#app_id/entitlements.ts
index 1d4564da..f1f9a292 100644
--- a/src/api/routes/users/@me/applications/#app_id/entitlements.ts
+++ b/src/api/routes/users/@me/applications/#app_id/entitlements.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { route } from "@spacebar/api";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get("/", route({}), async (req: Request, res: Response) => {
//TODO
diff --git a/src/api/routes/users/@me/billing/country-code.ts b/src/api/routes/users/@me/billing/country-code.ts
index 2a43a396..1907536a 100644
--- a/src/api/routes/users/@me/billing/country-code.ts
+++ b/src/api/routes/users/@me/billing/country-code.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { route } from "@spacebar/api";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get("/", route({}), async (req: Request, res: Response) => {
//TODO
diff --git a/src/api/routes/users/@me/billing/payment-sources.ts b/src/api/routes/users/@me/billing/payment-sources.ts
index 5e797ce8..a9bc5961 100644
--- a/src/api/routes/users/@me/billing/payment-sources.ts
+++ b/src/api/routes/users/@me/billing/payment-sources.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/billing/subscriptions.ts b/src/api/routes/users/@me/billing/subscriptions.ts
index 1d4564da..f1f9a292 100644
--- a/src/api/routes/users/@me/billing/subscriptions.ts
+++ b/src/api/routes/users/@me/billing/subscriptions.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { route } from "@spacebar/api";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get("/", route({}), async (req: Request, res: Response) => {
//TODO
diff --git a/src/api/routes/users/@me/channels.ts b/src/api/routes/users/@me/channels.ts
index 8a8fadd9..5ee36da1 100644
--- a/src/api/routes/users/@me/channels.ts
+++ b/src/api/routes/users/@me/channels.ts
@@ -25,7 +25,7 @@ import {
} from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get(
"/",
diff --git a/src/api/routes/users/@me/collectibles-marketing.ts b/src/api/routes/users/@me/collectibles-marketing.ts
index e0443101..131f4370 100644
--- a/src/api/routes/users/@me/collectibles-marketing.ts
+++ b/src/api/routes/users/@me/collectibles-marketing.ts
@@ -20,7 +20,7 @@ import { route } from "@spacebar/api";
import { Request, Response, Router } from "express";
import { CollectiblesMarketingResponse } from "@spacebar/util";
-const router = Router();
+const router = Router({ mergeParams: true });
// Unsure what this endpoint does, it seems to only affect the visual style of the shop tab in home
router.get(
diff --git a/src/api/routes/users/@me/collectibles-purchases.ts b/src/api/routes/users/@me/collectibles-purchases.ts
index 5c134505..9491e30a 100644
--- a/src/api/routes/users/@me/collectibles-purchases.ts
+++ b/src/api/routes/users/@me/collectibles-purchases.ts
@@ -19,7 +19,7 @@
import { route } from "@spacebar/api";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
// Unsure what this endpoint does, it seems to only affect the visual style of the shop tab in home
router.get(
diff --git a/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts b/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts
index 789a7878..a422050f 100644
--- a/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts
+++ b/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts
@@ -26,7 +26,7 @@ import {
RefreshableConnection,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
// TODO: this route is only used for spotify, twitch, and youtube. (battlenet seems to be able to PUT, maybe others also)
diff --git a/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts b/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts
index 351ec99a..f499d24d 100644
--- a/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts
+++ b/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts
@@ -24,7 +24,7 @@ import {
emitEvent,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
// TODO: connection update schema
router.patch(
diff --git a/src/api/routes/users/@me/connections/index.ts b/src/api/routes/users/@me/connections/index.ts
index 620ce3b5..e02b912a 100644
--- a/src/api/routes/users/@me/connections/index.ts
+++ b/src/api/routes/users/@me/connections/index.ts
@@ -20,7 +20,7 @@ import { Request, Response, Router } from "express";
import { route } from "@spacebar/api";
import { ConnectedAccount, ConnectedAccountDTO } from "@spacebar/util";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get("/", route({}), async (req: Request, res: Response) => {
const connections = await ConnectedAccount.find({
diff --git a/src/api/routes/users/@me/delete.ts b/src/api/routes/users/@me/delete.ts
index e36a1e92..ac5e31e0 100644
--- a/src/api/routes/users/@me/delete.ts
+++ b/src/api/routes/users/@me/delete.ts
@@ -22,7 +22,7 @@ import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
-const router = Router();
+const router = Router({ mergeParams: true });
router.post(
"/",
diff --git a/src/api/routes/users/@me/devices.ts b/src/api/routes/users/@me/devices.ts
index 099da18b..644302cd 100644
--- a/src/api/routes/users/@me/devices.ts
+++ b/src/api/routes/users/@me/devices.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.post("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/disable.ts b/src/api/routes/users/@me/disable.ts
index b4d03e62..07e06055 100644
--- a/src/api/routes/users/@me/disable.ts
+++ b/src/api/routes/users/@me/disable.ts
@@ -21,7 +21,7 @@ import { User } from "@spacebar/util";
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
router.post(
"/",
diff --git a/src/api/routes/users/@me/email-settings.ts b/src/api/routes/users/@me/email-settings.ts
index 4c9e16b1..c5575009 100644
--- a/src/api/routes/users/@me/email-settings.ts
+++ b/src/api/routes/users/@me/email-settings.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/entitlements.ts b/src/api/routes/users/@me/entitlements.ts
index 7f552622..fd953eee 100644
--- a/src/api/routes/users/@me/entitlements.ts
+++ b/src/api/routes/users/@me/entitlements.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/gifts", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/guilds.ts b/src/api/routes/users/@me/guilds.ts
index 0bce432b..78adbbd4 100644
--- a/src/api/routes/users/@me/guilds.ts
+++ b/src/api/routes/users/@me/guilds.ts
@@ -29,7 +29,7 @@ import {
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get(
"/",
diff --git a/src/api/routes/users/@me/guilds/#guild_id/settings.ts b/src/api/routes/users/@me/guilds/#guild_id/settings.ts
index ac6586ce..9d78773d 100644
--- a/src/api/routes/users/@me/guilds/#guild_id/settings.ts
+++ b/src/api/routes/users/@me/guilds/#guild_id/settings.ts
@@ -25,7 +25,7 @@ import {
} from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
// GET doesn't exist on discord.com
router.get(
diff --git a/src/api/routes/users/@me/guilds/premium/subscription-slots.ts b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
index 5e797ce8..a9bc5961 100644
--- a/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
+++ b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/index.ts b/src/api/routes/users/@me/index.ts
index c10e1f12..d05e1812 100644
--- a/src/api/routes/users/@me/index.ts
+++ b/src/api/routes/users/@me/index.ts
@@ -31,7 +31,7 @@ import {
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get(
"/",
diff --git a/src/api/routes/users/@me/library.ts b/src/api/routes/users/@me/library.ts
index 54d9b04f..845cd171 100644
--- a/src/api/routes/users/@me/library.ts
+++ b/src/api/routes/users/@me/library.ts
@@ -19,7 +19,7 @@
import { Router, Response, Request } from "express";
import { route } from "@spacebar/api";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
// TODO:
diff --git a/src/api/routes/users/@me/mfa/codes-verification.ts b/src/api/routes/users/@me/mfa/codes-verification.ts
index f71704a9..953648fb 100644
--- a/src/api/routes/users/@me/mfa/codes-verification.ts
+++ b/src/api/routes/users/@me/mfa/codes-verification.ts
@@ -26,7 +26,7 @@ import {
} from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
router.post(
"/",
diff --git a/src/api/routes/users/@me/mfa/codes.ts b/src/api/routes/users/@me/mfa/codes.ts
index f9cfc4c4..48f3d268 100644
--- a/src/api/routes/users/@me/mfa/codes.ts
+++ b/src/api/routes/users/@me/mfa/codes.ts
@@ -27,7 +27,7 @@ import {
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
// TODO: This route is replaced with users/@me/mfa/codes-verification in newer clients
diff --git a/src/api/routes/users/@me/mfa/totp/disable.ts b/src/api/routes/users/@me/mfa/totp/disable.ts
index 362152d7..8ec65736 100644
--- a/src/api/routes/users/@me/mfa/totp/disable.ts
+++ b/src/api/routes/users/@me/mfa/totp/disable.ts
@@ -27,7 +27,7 @@ import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
import { verifyToken } from "node-2fa";
-const router = Router();
+const router = Router({ mergeParams: true });
router.post(
"/",
diff --git a/src/api/routes/users/@me/mfa/totp/enable.ts b/src/api/routes/users/@me/mfa/totp/enable.ts
index 19836e4d..774c7487 100644
--- a/src/api/routes/users/@me/mfa/totp/enable.ts
+++ b/src/api/routes/users/@me/mfa/totp/enable.ts
@@ -28,7 +28,7 @@ import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
import { verifyToken } from "node-2fa";
-const router = Router();
+const router = Router({ mergeParams: true });
router.post(
"/",
diff --git a/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts b/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts
index 9cf42def..a0f42daa 100644
--- a/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts
+++ b/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts
@@ -19,7 +19,7 @@
import { route } from "@spacebar/api";
import { SecurityKey, User } from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
router.delete(
"/",
diff --git a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
index f383ffb7..78c7470d 100644
--- a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
+++ b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
@@ -33,7 +33,7 @@ import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
import { ExpectedAttestationResult } from "fido2-lib";
import { HTTPError } from "lambert-server";
-const router = Router();
+const router = Router({ mergeParams: true });
const isGenerateSchema = (
body: WebAuthnPostSchema,
diff --git a/src/api/routes/users/@me/notes.ts b/src/api/routes/users/@me/notes.ts
index 365e73b4..64d0032f 100644
--- a/src/api/routes/users/@me/notes.ts
+++ b/src/api/routes/users/@me/notes.ts
@@ -20,7 +20,7 @@ import { route } from "@spacebar/api";
import { Note, Snowflake, User, emitEvent } from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
router.get(
"/:id",
diff --git a/src/api/routes/users/@me/relationships.ts b/src/api/routes/users/@me/relationships.ts
index bce0a654..e8064615 100644
--- a/src/api/routes/users/@me/relationships.ts
+++ b/src/api/routes/users/@me/relationships.ts
@@ -31,7 +31,7 @@ import {
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
-const router = Router();
+const router = Router({ mergeParams: true });
const userProjection: (keyof User)[] = [
"relationships",
diff --git a/src/api/routes/users/@me/settings-proto/1.ts b/src/api/routes/users/@me/settings-proto/1.ts
index 0f21fee3..334a7015 100644
--- a/src/api/routes/users/@me/settings-proto/1.ts
+++ b/src/api/routes/users/@me/settings-proto/1.ts
@@ -30,7 +30,7 @@ import {
import { PreloadedUserSettings } from "discord-protos";
import { JsonValue } from "@protobuf-ts/runtime";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
//#region Protobuf
router.get(
diff --git a/src/api/routes/users/@me/settings-proto/2.ts b/src/api/routes/users/@me/settings-proto/2.ts
index 44d4eeed..9c989758 100644
--- a/src/api/routes/users/@me/settings-proto/2.ts
+++ b/src/api/routes/users/@me/settings-proto/2.ts
@@ -30,7 +30,7 @@ import {
import { FrecencyUserSettings } from "discord-protos";
import { JsonValue } from "@protobuf-ts/runtime";
-const router: Router = Router();
+const router: Router = Router({ mergeParams: true });
//#region Protobuf
router.get(
diff --git a/src/api/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts
index 172f779c..bdca9571 100644
--- a/src/api/routes/users/@me/settings.ts
+++ b/src/api/routes/users/@me/settings.ts
@@ -20,7 +20,7 @@ import { route } from "@spacebar/api";
import { User, UserSettingsSchema } from "@spacebar/util";
import { Request, Response, Router } from "express";
-const router = Router();
+const router = Router({ mergeParams: true });
router.get(
"/",
|