diff --git a/docker/.env.example b/docker/.env.example
index 5ea5ce609da9707b58e640f046207d2d47a19a3d..3f99e52d436bb781ec9532160f94b637c8c2552d 100644
--- a/docker/.env.example
+++ b/docker/.env.example
@@ -74,6 +74,7 @@ GID='1000'
 # LLM_PROVIDER='textgenwebui'
 # TEXT_GEN_WEB_UI_BASE_PATH='http://127.0.0.1:5000/v1'
 # TEXT_GEN_WEB_UI_TOKEN_LIMIT=4096
+# TEXT_GEN_WEB_UI_API_KEY='sk-123abc'
 
 # LLM_PROVIDER='generic-openai'
 # GENERIC_OPEN_AI_BASE_PATH='http://proxy.url.openai.com/v1'
diff --git a/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx b/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx
index ec29222d24482696272b7b92dad47e328d6a8e69..50bb841545b835696199f2698bd2af90d288e6d2 100644
--- a/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx
@@ -32,6 +32,20 @@ export default function TextGenWebUIOptions({ settings }) {
           autoComplete="off"
         />
       </div>
+      <div className="flex flex-col w-60">
+        <label className="text-white text-sm font-semibold block mb-4">
+          API Key (Optional)
+        </label>
+        <input
+          type="password"
+          name="TextGenWebUIAPIKey"
+          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:border-white block w-full p-2.5"
+          placeholder="TextGen Web UI API Key"
+          defaultValue={settings?.TextGenWebUIAPIKey ? "*".repeat(20) : ""}
+          autoComplete="off"
+          spellCheck={false}
+        />
+      </div>
     </div>
   );
 }
diff --git a/server/.env.example b/server/.env.example
index 008d90d2fc7d94294932b2cff58a4259fe933fb9..8f424d82a6eba6688d926f46744e6cb83999db79 100644
--- a/server/.env.example
+++ b/server/.env.example
@@ -71,6 +71,7 @@ JWT_SECRET="my-random-string-for-seeding" # Please generate random string at lea
 # LLM_PROVIDER='textgenwebui'
 # TEXT_GEN_WEB_UI_BASE_PATH='http://127.0.0.1:5000/v1'
 # TEXT_GEN_WEB_UI_TOKEN_LIMIT=4096
+# TEXT_GEN_WEB_UI_API_KEY='sk-123abc'
 
 # LLM_PROVIDER='generic-openai'
 # GENERIC_OPEN_AI_BASE_PATH='http://proxy.url.openai.com/v1'
diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js
index 21d7af217975d17d505960f44778d006f00d0971..3c23a7d3925cfc64afbcfe2379a254238af34f4e 100644
--- a/server/models/systemSettings.js
+++ b/server/models/systemSettings.js
@@ -367,6 +367,7 @@ const SystemSettings = {
       // Text Generation Web UI Keys
       TextGenWebUIBasePath: process.env.TEXT_GEN_WEB_UI_BASE_PATH,
       TextGenWebUITokenLimit: process.env.TEXT_GEN_WEB_UI_MODEL_TOKEN_LIMIT,
+      TextGenWebUIAPIKey: !!process.env.TEXT_GEN_WEB_UI_API_KEY,
 
       // Generic OpenAI Keys
       GenericOpenAiBasePath: process.env.GENERIC_OPEN_AI_BASE_PATH,
diff --git a/server/utils/AiProviders/textGenWebUI/index.js b/server/utils/AiProviders/textGenWebUI/index.js
index ae0282a30fce4579a6f5eafc7c8e7b089a9052a8..dfce76a5a5ec50dd40ae202981c6f493ef91f455 100644
--- a/server/utils/AiProviders/textGenWebUI/index.js
+++ b/server/utils/AiProviders/textGenWebUI/index.js
@@ -14,7 +14,7 @@ class TextGenWebUILLM {
     this.basePath = process.env.TEXT_GEN_WEB_UI_BASE_PATH;
     this.openai = new OpenAIApi({
       baseURL: this.basePath,
-      apiKey: null,
+      apiKey: process.env.TEXT_GEN_WEB_UI_API_KEY ?? null,
     });
     this.model = null;
     this.limits = {
diff --git a/server/utils/agents/aibitat/providers/textgenwebui.js b/server/utils/agents/aibitat/providers/textgenwebui.js
index 767577d423c0c1841ba5fb05596c9c9a7d869260..d1e424255a4a298e3df45049bcf85f70dd5f56e8 100644
--- a/server/utils/agents/aibitat/providers/textgenwebui.js
+++ b/server/utils/agents/aibitat/providers/textgenwebui.js
@@ -13,7 +13,7 @@ class TextWebGenUiProvider extends InheritMultiple([Provider, UnTooled]) {
     super();
     const client = new OpenAI({
       baseURL: process.env.TEXT_GEN_WEB_UI_BASE_PATH,
-      apiKey: null,
+      apiKey: process.env.TEXT_GEN_WEB_UI_API_KEY ?? null,
       maxRetries: 3,
     });
 
diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js
index e2f5c7526e9ae0562d011f7e47f4a7aeab7e5cbb..947fbc62492e51de25bf21e02bd8fd7b60b49021 100644
--- a/server/utils/helpers/updateENV.js
+++ b/server/utils/helpers/updateENV.js
@@ -155,6 +155,10 @@ const KEY_MAPPING = {
     envKey: "TEXT_GEN_WEB_UI_MODEL_TOKEN_LIMIT",
     checks: [nonZero],
   },
+  TextGenWebUIAPIKey: {
+    envKey: "TEXT_GEN_WEB_UI_API_KEY",
+    checks: [],
+  },
 
   // Generic OpenAI InferenceSettings
   GenericOpenAiBasePath: {