diff --git a/src/routes/users/#id/profile.ts b/src/routes/users/#id/profile.ts
new file mode 100644
index 00000000..6fc8d5e4
--- /dev/null
+++ b/src/routes/users/#id/profile.ts
@@ -0,0 +1,24 @@
+import { Router, Request, Response } from "express";
+import { getPublicUser } from "../../../util/User";
+
+const router: Router = Router();
+
+router.get("/", async (req: Request, res: Response) => {
+ const user = await getPublicUser(req.params.id, { user_data: true })
+
+ res.json({
+ connected_accounts: user.user_data.connected_accounts,
+ premium_guild_since: null, // TODO
+ premium_since: null, // TODO
+ user: {
+ username: user.username,
+ discriminator: user.discriminator,
+ id: user.id,
+ public_flags: user.public_flags,
+ avatar: user.avatar,
+ bio: req.user_bot ? null : user.bio,
+ }
+ });
+});
+
+export default router;
diff --git a/src/routes/users/@me/profile.ts b/src/routes/users/@me/profile.ts
new file mode 100644
index 00000000..353607d4
--- /dev/null
+++ b/src/routes/users/@me/profile.ts
@@ -0,0 +1,24 @@
+import { Router, Request, Response } from "express";
+import { getPublicUser } from "../../../util/User";
+
+const router: Router = Router();
+
+router.get("/", async (req: Request, res: Response) => {
+ const user = await getPublicUser(req.user_id, { user_data: true })
+
+ res.json({
+ connected_accounts: user.user_data.connected_accounts,
+ premium_guild_since: null, // TODO
+ premium_since: null, // TODO
+ user: {
+ username: user.username,
+ discriminator: user.discriminator,
+ id: user.id,
+ public_flags: user.public_flags,
+ avatar: user.avatar,
+ bio: user.bio,
+ }
+ });
+});
+
+export default router;
|