Entwickler-Preview

Die LuNa API.

Bring LuNas Denken — und ihren Code-Stil — in deine eigenen Apps. Ein sauberer Endpoint, vorhersehbares JSON, keine Überraschungen.

POST https://api.luna-chat.xyz/v1/chat
Alle Systeme laufen

Schnellstart

In drei Schritten zur ersten Antwort. LuNa spricht reines HTTP — jede Sprache funktioniert.

1
API-Key holen

Unten Zugang anfragen — du bekommst einen Key wie luna_sk_…

2
Nachricht senden

Sende deine Nachricht per POST an /v1/chat mit dem Key im Header.

3
Antwort lesen

LuNa antwortet als JSON — der Text steht in reply.

Beispiel-Anfrage

curl https://api.luna-chat.xyz/v1/chat \ -H "Authorization: Bearer $LUNA_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "luna-0.2", "message": "Hilf mir, das durchzudenken." }'

Authentifizierung

Jede Anfrage braucht deinen geheimen Key im Authorization-Header als Bearer-Token.

Authorization: Bearer luna_sk_xxxxxxxxxxxxxxxx

Bewahre deinen Key auf dem Server auf. Schick ihn nie im Client-Code mit — jeder könnte ihn lesen.

Chat-Endpoint

Sende eine einzelne Nachricht und erhalte LuNas Antwort. Der ganze Vertrag passt in eine Tabelle.

POST/v1/chat

Body-Parameter

Feld Typ Beschreibung
messagerequiredstringWas du LuNa sagen möchtest.
modelstringWelche LuNa verwendet wird. Standard: luna-0.2.
temperaturenumber0–1. Niedriger = fokussiert, höher = kreativ. Standard 0.6.
streambooleanTokens streamen, während sie entstehen. Standard false.

Antwort

Ein vorhersehbares JSON-Objekt. Der Text, den du willst, steht in reply.

{ "id": "msg_8f2a1c…", "model": "luna-0.2", "reply": "Klar — lass uns das zusammen durchdenken. Erzähl mir…", "usage": { "input_tokens": 12, "output_tokens": 96 } }

Streaming

Mit "stream": true liefert LuNa die Antwort als Server-Sent Events — Token für Token, sobald sie entstehen. Perfekt für ein Chat-Gefühl wie auf luna-chat.xyz.

// Antwort als Stream lesen — jedes Event ist ein Stück Text const res = await fetch("https://api.luna-chat.xyz/v1/chat", { method: "POST", headers: { "Authorization": `Bearer ${KEY}` }, body: JSON.stringify({ model: "luna-0.2", message: "Erklär mir Closures", stream: true }) }); const reader = res.body.getReader(); const dec = new TextDecoder(); while (true) { const { done, value } = await reader.read(); if (done) break; render(dec.decode(value)); // Text ankommen lassen, während LuNa denkt }

Konversationen

Für mehrstufige Gespräche schickst du statt message ein messages-Array — die ganze bisherige Unterhaltung, LuNa antwortet auf den letzten Eintrag.

{ "model": "luna-0.2", "messages": [ { "role": "user", "content": "Schreib mir eine debounce-Funktion." }, { "role": "assistant", "content": "Gern! Hier ist sie: …" }, { "role": "user", "content": "Jetzt mit TypeScript-Typen bitte." } ] }

Tipp: Schick nur die letzten ~10 Nachrichten mit — das spart Tokens und reicht LuNa fast immer als Gedächtnis.

Modelle

Dieselben Modelle wie im Chat — wähle eines über das model-Feld.

luna-0.1
LuNa 0.1

Schnell & solide für alltägliche Fragen.

luna-0.2
LuNa 0.2 · Standard

Ausgewogen — der empfohlene Standard.

luna-0.3-preview
LuNa 0.3 Preview

Neueste Fähigkeiten, noch experimentell.

Fehler & Limits

Fehler kommen als JSON mit klarem code — keine Rätselraten. Bei 429 und 503 sagt dir retry_after (Sekunden), wann du es wieder versuchen kannst.

{ "error": { "code": "rate_limited", "message": "Zu viele Anfragen — bitte kurz warten.", "retry_after": 12 } }

Fehlercodes

StatusCodeBedeutung
400bad_requestAnfrage fehlerhaft — z. B. unbekannte Modell-ID oder fehlendes message-Feld.
401invalid_tokenAPI-Key fehlt, ist abgelaufen oder ungültig.
429rate_limitedRate-Limit erreicht (30 Anfragen/Minute) — warte retry_after Sekunden.
503unavailableLuNa-Server gerade nicht erreichbar — kurz warten und erneut versuchen.

Rate-Limits

LimitWertHinweis
Anfragen30 / MinutePro API-Key, über alle Modelle hinweg.
Gleichzeitig2 StreamsParallele Streaming-Verbindungen pro Key.
AnfragegrößeKontextfenster2K Tokens pro Anfrage (Modell-Blockgröße). Schick die letzten ~10 Nachrichten — das reicht fast immer.

Ob gerade alles läuft, siehst du live auf der Status-Seite — inkl. Verfügbarkeit pro Modell. Die Preise pro Modell stehen auf der Preise-Seite.

Zugang erhalten

Wenn du einen LuNa-Zugangs-Token hast, kannst du sofort API-Keys erstellen — kostenlos, ohne Warten. Melde dich an, öffne die Key-Verwaltung und erzeuge einen Key wie luna_sk_…

Zur Key-Verwaltung Anmelden

Noch keinen Token? LuNa ist im privaten Zugang — frag nach einem.