diff --git a/src/api/routes/gateway/bot.ts b/src/api/routes/gateway/bot.ts
new file mode 100644
index 00000000..f1dbb9df
--- /dev/null
+++ b/src/api/routes/gateway/bot.ts
@@ -0,0 +1,40 @@
+import { Config } from "@fosscord/util";
+import { Router, Response, Request } from "express";
+import { route, RouteOptions } from "@fosscord/api";
+
+const router = Router();
+
+export interface GatewayBotResponse {
+ url: string;
+ shards: number;
+ session_start_limit: {
+ total: number;
+ remaining: number;
+ reset_after: number;
+ max_concurrency: number;
+ };
+}
+
+const options: RouteOptions = {
+ test: {
+ response: {
+ body: "GatewayBotResponse"
+ }
+ }
+};
+
+router.get("/", route(options), (req: Request, res: Response) => {
+ const { endpointPublic } = Config.get().gateway;
+ res.json({
+ url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002",
+ shards: 1,
+ session_start_limit: {
+ total: 1000,
+ remaining: 999,
+ reset_after: 14400000,
+ max_concurrency: 1
+ }
+ });
+});
+
+export default router;
diff --git a/src/api/routes/gateway/index.ts b/src/api/routes/gateway/index.ts
new file mode 100644
index 00000000..9bad7478
--- /dev/null
+++ b/src/api/routes/gateway/index.ts
@@ -0,0 +1,24 @@
+import { Config } from "@fosscord/util";
+import { Router, Response, Request } from "express";
+import { route, RouteOptions } from "@fosscord/api";
+
+const router = Router();
+
+export interface GatewayResponse {
+ url: string;
+}
+
+const options: RouteOptions = {
+ test: {
+ response: {
+ body: "GatewayResponse"
+ }
+ }
+};
+
+router.get("/", route(options), (req: Request, res: Response) => {
+ const { endpointPublic } = Config.get().gateway;
+ res.json({ url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002" });
+});
+
+export default router;
|