# Lovable API Key: wohin damit und wie Sie ihn schützen

> Wohin Ihr Lovable API Key gehört, warum er in die Secrets und eine Backend-Funktion gehört, und wie Sie GPT, Claude oder DeepSeek sicher anbinden.

- Canonical HTML: https://omniakey.com/de/blog/lovable-api-key
- Markdown: https://omniakey.com/de/blog/lovable-api-key.md
- Published: 2026-11-02 (updated 2026-11-02)
- Author: Kiki, COO at OmniaKey
- Language: de
- Category: API setup
- Reading time: 10 min
- All posts: https://omniakey.com/blog/llms.txt

---

In Lovable gehört Ihr Lovable API Key in die Secrets: Öffnen Sie in der Projektleiste More → Settings → Secrets oder nutzen Sie das Formular Add secret, das Lovable im Projekt-Chat zeigt. Der Backend-Code liest den Schlüssel dort, deshalb erreicht er nie den Browser. Eine Chat-Nachricht oder Frontend-Code macht ihn für alle sichtbar.

## Kurze Antwort

- **Eigener Schlüssel** (GPT, Claude, Resend): Secrets oder das Formular des Connectors.
- **Lovables eigene Schlüssel**: `LOVABLE_API_KEY` wird automatisch erzeugt; ein Workspace-Schlüssel (`lov_…`) setzt Business oder Enterprise voraus.
- **GPT, Claude oder DeepSeek mit eigenem Schlüssel**: Lassen Sie Lovable eine Backend-Funktion schreiben, denn der eingebaute AI-Connector kann Ihren Schlüssel nicht nutzen.
- **Bei einem Leak**: zuerst beim Anbieter widerrufen, dann den Wert in den Secrets ersetzen.

## Welchen Lovable API Key brauchen Sie?

Lovable API Key kann vier verschiedene Dinge meinen.

|Das wollen Sie|Schlüssel|Herkunft|
|-|-|-|
|GPT, Resend oder einen anderen kostenpflichtigen Dienst aufrufen|Ihren eigenen Schlüssel des Dienstes|Secrets oder ein Connector-Formular|
|Lovables eingebaute KI nutzen|`LOVABLE_API_KEY`|Lovable erzeugt ihn pro Projekt|
|Projekte über die Lovable API verwalten|Einen Workspace-Schlüssel (`lov_…`)|Workspace settings → API keys & OAuth → Workspace access tokens → New API key, Business oder Enterprise, owner oder admin|
|Den MCP-Server oder Build with URL nutzen|Keinen API-Schlüssel|OAuth bei MCP; nichts bei Build with URL|

Der Workspace-Schlüssel geht nur an die Lovable API, im Header `Lovable-API-Key`, und sein Wert wird einmal angezeigt ([API-Key-Dokumentation](https://docs.lovable.dev/features/api-keys), geprüft am 2. November 2026). Er verwaltet und deployt Projekte; KI-Modelle ruft er nicht auf und Apps baut er nicht ([Lovable API](https://docs.lovable.dev/integrations/lovable-api)), und er ist nicht der `LOVABLE_API_KEY` des Projekts ([KI-Dokumentation](https://docs.lovable.dev/features/ai)).

Alles Weitere betrifft die erste Zeile: Ihren eigenen Schlüssel.

## Wohin der API-Schlüssel in Lovable gehört

1. Lovable fragt. Braucht ein Feature einen Schlüssel, öffnet sich im Projekt-Chat das Formular Add secret. Tragen Sie den Wert dort ein, nicht als Chat-Nachricht: Das Formular speichert ihn direkt in den Secrets des Projekts und hält ihn aus dem Chat-Verlauf heraus ([Dokumentation zu eigenen APIs](https://docs.lovable.dev/integrations/any-api), geprüft am 2. November 2026).
2. Sie tragen ihn ein. Öffnen Sie in der Projektleiste More → Settings → Secrets, klicken Sie auf Add secret und geben Sie ein oder mehrere Paare aus Name und Wert ein ([Secrets-Dokumentation](https://docs.lovable.dev/features/secrets)).

Das Lovable-Changelog vom 26. August 2026 nennt diesen Weg More → Cloud → Secrets. Schauen Sie dort nach, wenn Ihr Menü anders aussieht ([Changelog](https://docs.lovable.dev/changelog)).

Regeln, an denen viele hängen bleiben:

- Nur schreiben: Ein Wert lässt sich ersetzen oder löschen, aber nie zurücklesen.
- Namen mit `VITE_` werden abgelehnt; sie werden beim Build eingebaut, sind im Browser sichtbar und gehören in `.env`.
- Namen mit `SUPABASE_` und `LOVABLE_` sind reserviert und werden automatisch gefüllt.
- Secrets gehören zu einem Projekt. Nach einem Remix tragen Sie Ihre eigenen neu ein, denn nur von Lovable erzeugte Schlüssel werden neu angelegt.

Im eigenen Supabase-Projekt hat die Backend-Ansicht einen Button Manage secrets, der das Supabase-Dashboard öffnet; dort liegt der Speicher in Edge Function Secrets ([Supabase-Secrets](https://supabase.com/docs/guides/functions/secrets), geprüft am 2. November 2026). Teilen sich zwei Lovable-Projekte ein Supabase-Projekt, überschreiben sie gegenseitig ihre Secrets, `LOVABLE_API_KEY` eingeschlossen ([Supabase-Integration](https://docs.lovable.dev/integrations/supabase)).

## Wohin gehören die Schlüssel von Resend, Stripe und Google Maps?

Nicht jeder Schlüssel landet direkt in den Secrets: Für diese Dienste gibt es Connector-Formulare ([Stripe](https://docs.lovable.dev/integrations/stripe), [Resend](https://docs.lovable.dev/integrations/resend), [eigene APIs](https://docs.lovable.dev/integrations/any-api), geprüft am 2. November 2026).

|Dienst|Wohin der Schlüssel gehört|Gut zu wissen|
|-|-|-|
|Stripe|Das Formular Connect Stripe im Projekt-Chat|Den Schlüssel nie als Chat-Nachricht senden|
|Resend|Das Verbindungsformular|Schlüssel beginnen mit `re_`|
|Google Maps|Zwei Schlüssel im Verbindungsformular|Server-Schlüssel privat; Browser-Schlüssel absichtlich öffentlich|
|Jeder andere Dienst|Ein eigener Connector oder der Schlüssel in den Secrets|Serverseitiger Code liest das Secret|

Google Maps ist die Ausnahme. Sein Browser-Schlüssel ist absichtlich öffentlich und erreicht Ihr Frontend als `VITE_LOVABLE_CONNECTOR_GOOGLE_MAPS_BROWSER_KEY`; die Website-Beschränkung verhindert, dass andere Seiten ihn weiterverwenden ([Google Maps](https://docs.lovable.dev/integrations/google-maps), geprüft am 2. November 2026). Der Server-Schlüssel bleibt privat. Connector-Zugangsdaten werden verschlüsselt gespeichert, und niemand kann sie zurücklesen, auch Lovable nicht ([Sicherheit der Integrationen](https://docs.lovable.dev/integrations/security)).

## GPT, Claude oder DeepSeek mit eigenem Schlüssel anbinden

Prüfen Sie zuerst, ob Sie einen Schlüssel brauchen: Der eingebaute AI-Connector braucht keinen. Lovable erzeugt pro Projekt einen `LOVABLE_API_KEY` und führt standardmäßig [GPT-6 Astra](https://omniakey.com/de/gpt-6-astra) aus; Claude-Chatmodelle gibt es nur in neueren TanStack-Start-Apps ab dem 13. Mai 2026 ([KI-Dokumentation](https://docs.lovable.dev/features/ai), [AI chat](https://docs.lovable.dev/features/ai-chat), geprüft am 2. November 2026).

Dieser Connector kann Ihren Schlüssel nicht nutzen: Er läuft immer über Lovable und rechnet Workspace-Credits ab. Die Lovable-Dokumentation, wie wir sie am 2. November 2026 gelesen haben, erwähnt DeepSeek nicht. Für Ihren eigenen Schlüssel lassen Sie Lovable den Anbieter aus einer Backend-Funktion aufrufen, mit dem Schlüssel in den Secrets.

Einen Button zum Anlegen gibt es nicht: Beschreiben Sie die Funktion im Projekt-Chat, dann schreibt und deployt Lovable sie ([Edge functions](https://docs.lovable.dev/features/edge-functions)). Neuere TanStack-Start-Apps (erstellt ab dem 13. Mai 2026, bei Enterprise ab dem 22. Juni 2026) bekommen eine Server-Funktion; ältere React-+-Vite-Apps bekommen eine Edge Function, also Code, der auf dem Server läuft.

Unser Code nutzt die [OpenAI-kompatible API](https://docs.omniakey.com/en/api/openai-compatible) von OmniaKey, weil ein Schlüssel [GPT-6.1 Terra](https://omniakey.com/de/gpt-6-1-terra), [Claude Sonnet 5.5](https://omniakey.com/de/claude-sonnet-5-5) und [DeepSeek](https://omniakey.com/de/deepseek-flash) erreicht.

1. Legen Sie einen Schlüssel beim Anbieter an. Bei OmniaKey: registrieren Sie sich auf omniakey.com und öffnen Sie Dashboard → tokens ([Schnellstart](https://docs.omniakey.com/en/quick-start)).

2. Fügen Sie diesen Prompt in den Projekt-Chat ein:

   ```text
   Add an AI chat feature that uses my own API key, not the built-in AI connector.
   Create a backend function named "chat". It reads OMNIAKEY_API_KEY from Secrets and calls
   POST https://api.omniakey.com/v1/chat/completions with the model and messages the frontend sends.
   Only allow these models: gpt-6.1-terra, claude-sonnet-5-5, deepseek-flash.
   Require a signed-in user. Never put the key in frontend code.
   Ask me for the key with the Add secret form.
   ```

3. Tragen Sie den Schlüssel im Formular Add secret unter dem Namen `OMNIAKEY_API_KEY` ein.

Diesen Prompt haben wir nicht in Lovable ausgeführt, weil wir kein Lovable-Konto haben; die Lovable-Schritte stammen aus der Dokumentation. Die Funktion sollte so aussehen; diese Fassung haben wir auf unserem eigenen Rechner ausgeführt.

```ts
// supabase/functions/chat/index.ts
// Der Browser sendet { model, messages }; diese Funktion ergänzt den API-Schlüssel auf dem Server.
const corsHeaders = {
  "Access-Control-Allow-Origin": "*",
  "Access-Control-Allow-Headers": "authorization, x-client-info, apikey, content-type",
};

const ALLOWED_MODELS = ["gpt-6.1-terra", "claude-sonnet-5-5", "deepseek-flash"];

function json(body: unknown, status = 200) {
  return new Response(JSON.stringify(body), {
    status,
    headers: { ...corsHeaders, "Content-Type": "application/json" },
  });
}

Deno.serve(async (req) => {
  if (req.method === "OPTIONS") {
    return new Response("ok", { headers: corsHeaders });
  }

  const apiKey = Deno.env.get("OMNIAKEY_API_KEY");
  if (!apiKey) {
    return json({ error: "OMNIAKEY_API_KEY is not set" }, 500);
  }

  const { model, messages } = await req.json();
  if (!ALLOWED_MODELS.includes(model)) {
    return json({ error: `model must be one of: ${ALLOWED_MODELS.join(", ")}` }, 400);
  }

  const upstream = await fetch("https://api.omniakey.com/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ model, messages, max_tokens: 800 }),
  });

  const data = await upstream.json();
  if (!upstream.ok) {
    return json({ error: data.error?.message ?? "upstream error" }, upstream.status);
  }
  return json({ reply: data.choices[0].message.content, model: data.model, usage: data.usage });
});
```

Unsere Testfassung lässt die Anmelde-Prüfung weg, damit wir sie aus einem Skript aufrufen konnten; der Prompt oben lässt Lovable sie ergänzen, weil Lovables Sicherheits-Best-Practices verlangen, dass Authentifizierung auf dem Server entschieden wird ([Best Practices](https://docs.lovable.dev/tips-tricks/security-best-practices)).

Aus dem Browser sieht der Aufruf so aus ([supabase-js](https://supabase.com/docs/reference/javascript/functions-invoke)):

```ts
const { data, error } = await supabase.functions.invoke("chat", {
  body: { model: "deepseek-flash", messages: [{ role: "user", content: "Say hello in five words." }] },
});
```

Bei einem anderen Anbieter ändern Sie URL und Modell-IDs auf die Werte aus dessen Dokumentation. Ein OmniaKey-Schlüssel funktioniert auch für einen [eigenen API-Schlüssel in Cline](https://omniakey.com/de/blog/cline-custom-api-key) und für [eigene Modelle in Factory Droid](https://omniakey.com/de/blog/factory-droid-custom-models).

## Was beim Ausführen herauskam

Wir haben die Funktion auf unserem eigenen Rechner ausgeführt, nicht in Lovable, mit Deno 2.9.8 am 2. November 2026, und sie wie ein Browser aufgerufen, mit einem `Origin`-Header und einem CORS-Preflight.

|Test|Status|Antwort|
|-|-|-|
|Preflight (`OPTIONS`)|200|`*` und die Liste der erlaubten Header|
|`gpt-6.1-terra`|200 in 3.28 s|Eine Antwort, 53 Tokens insgesamt|
|`claude-sonnet-5-5`|200 in 2.85 s|Eine Antwort, 134 Tokens insgesamt|
|`deepseek-flash`|200 in 1.75 s|Eine Antwort, 92 Tokens insgesamt|
|Modell außerhalb der Liste|400|`model must be one of: gpt-6.1-terra, claude-sonnet-5-5, deepseek-flash`|
|Secret fehlt|500|`OMNIAKEY_API_KEY is not set`|
|Falscher Schlüssel|401|`Invalid token (request id: …)`|

Ein Aufruf pro Modell, jedes Mal also eine Stichprobe; `deepseek-flash` antwortete als `deepseek-v4-1-flash-261017`.

### Warum Sie nur "non-2xx status code" sehen

Bei einem Fehler gibt `supabase.functions.invoke` nur `Edge Function returned a non-2xx status code` zurück, und `data` ist null. Die echte Meldung der Funktion steht in `await error.context.json()`:

```ts
if (error) {
  const details = await error.context.json();
  console.error(details.error);
}
```

- 401: Der Schlüssel ist falsch. Bei uns stand `Invalid token (request id: …)`.
- 500 mit `OMNIAKEY_API_KEY is not set`: Das Secret fehlt oder heißt anders.
- 400: Das Modell steht nicht auf Ihrer Liste.

## Prüfen, ob Ihr Schlüssel offenliegt

Ein Schlüssel im Frontend-Code ist für Nutzer sichtbar und gilt als kompromittiert ([Best Practices](https://docs.lovable.dev/tips-tricks/security-best-practices), geprüft am 2. November 2026).

- Quick security scan läuft bei jeder Veröffentlichung automatisch.
- Deep security scan nicht: Starten Sie ihn in der Security view des Projekts ([Security view](https://docs.lovable.dev/features/security-view)).
- Suchen Sie die Gruppe Leaked secrets & credentials.
- Beide Scans sind kostenlos; nur Massenkorrekturen verbrauchen die 10 kostenlosen Korrekturen und danach Credits ([Security-Scans](https://docs.lovable.dev/features/security)).

Von Hand: Öffnen Sie in Chrome die Entwicklertools Ihrer veröffentlichten App, drücken Sie auf einem Mac Command+Option+F und unter Windows und Linux Control+Shift+F, und suchen Sie in den geladenen Dateien nach den ersten Zeichen Ihres Schlüssels. Steckt ein privater Schlüssel in einem `VITE_`-Wert, handeln Sie, denn solche Werte werden für den Browser gebaut ([Suche in DevTools](https://developer.chrome.com/docs/devtools/search)). Eine saubere Suche deckt nur die Dateien ab, die der Aufruf geladen hat, deshalb führen Sie zusätzlich den Scan aus.

Den Schlüssel zu verstecken hindert Fremde nicht am Aufruf Ihrer Funktion: Jeder kann eine Funktion ohne Anmelde-Prüfung aufrufen, und jeder Aufruf verbraucht Ihren Schlüssel. Lovables Dokumentation verlangt die Anmeldeprüfung auf dem Server; unsere Erlaubnisliste und `max_tokens: 800` begrenzen jeden Aufruf; OmniaKeys Dokumentation empfiehlt einen eigenen Schlüssel pro Umgebung mit Ausgabenlimit ([OmniaKeys API-Dokumentation](https://docs.omniakey.com/en/api/authentication)).

## Was tun, wenn ein Schlüssel offenlag

1. Widerrufen Sie ihn beim ausgebenden Dienst und legen Sie dort einen neuen an; Lovables Dokumentation bietet Rotate nur für den eigenen Schlüssel ([Secrets-Dokumentation](https://docs.lovable.dev/features/secrets)).
2. Ersetzen Sie den Wert in den Secrets, im Connector-Formular oder in Supabase. Bei Supabase liest die Funktion das neue Secret sofort, ohne neues Deployment ([Supabase-Secrets](https://supabase.com/docs/guides/functions/secrets)). Ob Lovables eingebautes Backend Cloud dasselbe tut, steht nicht in der Dokumentation; rufen Sie die Funktion einmal auf und prüfen Sie es.
3. Nehmen Sie den Schlüssel aus dem Frontend-Code oder aus `.env` und starten Sie den Deep security scan erneut.
4. Sehen Sie auf der Nutzungsseite des Anbieters nach Aufrufen, die nicht von Ihnen stammen.

Lovables eigene Schlüssel laufen anders. `LOVABLE_API_KEY` hat eine Aktion Rotate für Editor und höher, die einen neuen Schlüssel ausgibt und die Umgebung der Edge Function aktualisiert. Ein Workspace-Schlüssel (`lov_…`), den GitHub secret scanning meldet, wird automatisch widerrufen; überall sonst widerrufen Sie ihn selbst ([API-Key-Dokumentation](https://docs.lovable.dev/features/api-keys)).

## Was es kostet

Lovables Rechnung und die Ihres Anbieters sind getrennt: Mit eigenem Schlüssel rechnet der Anbieter die Modellnutzung ab, und Ihre App nutzt Cloud nur, um die Funktion auszuführen ([KI-Dokumentation](https://docs.lovable.dev/features/ai), [Cloud](https://docs.lovable.dev/features/cloud), geprüft am 2. November 2026).

Der eingebaute AI-Connector rechnet Workspace-Credits ab: Free, Pro und Business erhalten monatlich ein 4-credit-Kontingent für KI, ist es aufgebraucht, kommt 402, und über dem Rate Limit kommt 429. Der Free-Plan gibt zusätzlich 5 build credits pro Tag, bis zu 30 im Monat, plus 20 Cloud credits ([Preise](https://lovable.dev/pricing)); Lovables Plantabelle nennt 100 credits für $25 im Monat bei Pro ([Abo-Pläne](https://docs.lovable.dev/introduction/subscription-plans), geprüft am 2. November 2026).

Für OmniaKey finden Sie die aktuellen Preise auf den Seiten [GPT-6.1 Terra](https://omniakey.com/de/gpt-6-1-terra), [Claude Sonnet 5.5](https://omniakey.com/de/claude-sonnet-5-5) und [DeepSeek](https://omniakey.com/de/deepseek-flash).

## Häufige Fragen

### Wo finde ich meinen Lovable API Key?

Das hängt vom Schlüssel ab. `LOVABLE_API_KEY` wird pro Projekt erzeugt und liegt in den Secrets dieses Projekts; dort lässt er sich rotieren, aber nie lesen. Ein Workspace-Schlüssel kommt aus Workspace settings → API keys & OAuth → Workspace access tokens und wird einmal angezeigt.

### Gibt es einen kostenlosen Lovable API Key?

Am nächsten kommt `LOVABLE_API_KEY`: Der eingebaute AI-Connector erzeugt ihn für jedes Projekt, und Free-, Pro- und Business-Workspaces haben monatlich ein 4-credit-Kontingent dafür. Ein Workspace-Schlüssel braucht Business oder Enterprise.

### Kann ich meinen eigenen OpenAI-Schlüssel mit Lovable AI nutzen?

Mit dem eingebauten AI-Connector nicht, denn er läuft immer über Lovable und rechnet Workspace-Credits ab. Für Ihren eigenen Schlüssel lassen Sie Lovable eine Backend-Funktion schreiben, die den Anbieter direkt aufruft, mit dem Schlüssel in den Secrets.

### Gehört der API-Schlüssel in Secrets oder in .env?

In die Secrets, wenn der Schlüssel privat ist und Backend-Code ihn liest. `.env` ist für `VITE_`-Werte, die in die App gebaut werden und im Browser sichtbar sind.

### Warum verbindet Lovable nicht mit GPT, Claude oder DeepSeek?

Lesen Sie zuerst die Meldung der Funktion, sie nennt das Problem:

- 500 mit `OMNIAKEY_API_KEY is not set`: Das Secret fehlt oder ist unter einem anderen Namen gespeichert.
- 401: Der Schlüssel ist falsch oder widerrufen.
- 400: Die Modell-ID steht nicht auf Ihrer Erlaubnisliste.
- 404: Die Basis-URL ist falsch; unsere endet auf `/v1/chat/completions`, und die meisten Einrichtungsfehler kommen von einem falschen Protokoll-Suffix ([OmniaKeys Fehlerdokumentation](https://docs.omniakey.com/en/api/errors)).

Im Browser sehen Sie nur `Edge Function returned a non-2xx status code`; protokollieren Sie `error.context` wie oben, um zu sehen, welcher Fall vorliegt.

## Geprüfte Quellen

- [Lovables Secrets-Dokumentation](https://docs.lovable.dev/features/secrets), geprüft am 2. November 2026
- [Lovable API-Keys](https://docs.lovable.dev/features/api-keys), geprüft am 2. November 2026
- [Lovable API](https://docs.lovable.dev/integrations/lovable-api), geprüft am 2. November 2026
- [Lovable MCP-Server](https://docs.lovable.dev/integrations/lovable-mcp-server), geprüft am 2. November 2026
- [Build with URL](https://docs.lovable.dev/integrations/build-with-url), geprüft am 2. November 2026
- [Lovables KI-Funktionen](https://docs.lovable.dev/features/ai), geprüft am 2. November 2026
- [Lovable AI chat](https://docs.lovable.dev/features/ai-chat), geprüft am 2. November 2026
- [Lovable Edge functions](https://docs.lovable.dev/features/edge-functions), geprüft am 2. November 2026
- [Lovable Cloud](https://docs.lovable.dev/features/cloud), geprüft am 2. November 2026
- [Eigene APIs und Connectoren](https://docs.lovable.dev/integrations/any-api), geprüft am 2. November 2026
- [Stripe-Integration](https://docs.lovable.dev/integrations/stripe), geprüft am 2. November 2026
- [Resend-Integration](https://docs.lovable.dev/integrations/resend), geprüft am 2. November 2026
- [Google-Maps-Integration](https://docs.lovable.dev/integrations/google-maps), geprüft am 2. November 2026
- [Sicherheit der Integrationen](https://docs.lovable.dev/integrations/security), geprüft am 2. November 2026
- [Supabase-Integration](https://docs.lovable.dev/integrations/supabase), geprüft am 2. November 2026
- [Lovable-Sicherheit](https://docs.lovable.dev/features/security), geprüft am 2. November 2026
- [Lovable Security view](https://docs.lovable.dev/features/security-view), geprüft am 2. November 2026
- [Lovables Sicherheits-Best-Practices](https://docs.lovable.dev/tips-tricks/security-best-practices), geprüft am 2. November 2026
- [Lovables Abo-Pläne](https://docs.lovable.dev/introduction/subscription-plans), geprüft am 2. November 2026
- [Lovable-Changelog](https://docs.lovable.dev/changelog), geprüft am 2. November 2026
- [Lovable-Preise](https://lovable.dev/pricing), geprüft am 2. November 2026
- [Supabase Edge Function Secrets](https://supabase.com/docs/guides/functions/secrets), geprüft am 2. November 2026
- [Supabase functions.invoke](https://supabase.com/docs/reference/javascript/functions-invoke), geprüft am 2. November 2026
- [Suche in Chrome DevTools](https://developer.chrome.com/docs/devtools/search), geprüft am 2. November 2026

OmniaKeys eigene Dokumentation, geprüft am 2. November 2026: [Schnellstart](https://docs.omniakey.com/en/quick-start), [OpenAI-kompatible API](https://docs.omniakey.com/en/api/openai-compatible), [Authentifizierung](https://docs.omniakey.com/en/api/authentication) und [Fehler](https://docs.omniakey.com/en/api/errors).
