few changes
diff --git a/src/api/index.ts b/src/api/index.ts
new file mode 100644
index 0000000..bd15679
--- /dev/null
+++ b/src/api/index.ts
@@ -0,0 +1,70 @@
+import { HaikuClient } from 'jshaiku';
+import express from 'express';
+import bodyParser from 'body-parser';
+import generateEmojiEmbed from "../utils/generateEmojiEmbed.js";
+
+const jsonParser = bodyParser.json();
+const app = express();
+const port = 10000;
+
+const runServer = (client: HaikuClient) => {
+    app.get('/', (req, res) => {
+        res.send(client.ws.ping);
+    });
+
+    app.post('/verify/:code', jsonParser, async function (req, res) {
+        const code = req.params.code;
+        const secret = req.body.secret;
+        if (secret === client.config.verifySecret) {
+            let guild = await client.guilds.fetch(client.verify[code].gID);
+            if (!guild) { return res.status(404) }
+            let member = await guild.members.fetch(client.verify[code].uID);
+            if (!member) { return res.status(404) }
+            if (member.roles.cache.has(client.verify[code].rID)) { return res.status(200) }
+            await member.roles.add(client.verify[code].rID);
+
+            let interaction = client.verify[code].interaction;
+            if (interaction) {
+                interaction.editReply({embeds: [new generateEmojiEmbed()
+                    .setTitle("Verify")
+                    .setDescription(`Verification complete`)
+                    .setStatus("Success")
+                    .setEmoji("MEMBER.JOIN")
+                ], components: []});
+            }
+            res.status(200).send();
+        } else {
+            res.status(403).send();
+        }
+    });
+
+    app.patch('/verify/:code', (req, res) => {
+        const code = req.params.code;
+        try {
+            let interaction = client.verify[code].interaction;
+            if (interaction) {
+                interaction.editReply({embeds: [new generateEmojiEmbed()
+                    .setTitle("Verify")
+                    .setDescription(`Verify was opened in another tab or window, please complete the CAPTCHA there to continue`)
+                    .setStatus("Success")
+                    .setEmoji("MEMBER.JOIN")
+                ]});
+            }
+        } catch {}
+        res.status(200).send();
+    })
+
+    app.get('/verify/:code', jsonParser, function (req, res) {
+        const code = req.params.code;
+        if (client.verify[code]) {
+            let data = structuredClone(client.verify[code])
+            delete data.interaction;
+            return res.status(200).send(data);
+        }
+        return res.status(404).send();
+    })
+
+    app.listen(port);
+}
+
+export default runServer;
\ No newline at end of file