NotTrack AI API — Referenz
Ein OpenAI-kompatibler Endpoint, ein Modell, ein Key. Wenn Ihr Code bereits mit /v1/chat/completions spricht, ändern Sie nur die Basis-URL und den Key — schon spricht er mit uns.
Basis-URL & Authentifizierung
Base URL: https://api.nottrackai.com/v1
Header: Authorization: Bearer sk-…
Keys werden auf der Keys-Seite erstellt. Ein Key wird nur einmal angezeigt, bei der Erstellung; wir speichern einen Hash und seine letzten sechs Zeichen. Senden Sie ihn nur über HTTPS und nur im Authorization-Header — niemals in einer URL.
Alles ist JSON (Content-Type: application/json). Antworten verwenden das OpenAI-Schema, sodass die offiziellen openai-SDKs und jeder OpenAI-kompatible Client unverändert funktionieren.
Modelle
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Es gibt ein Modell, notrack-uncensored: unser eigenes Companion-Tuning, betrieben auf unserer eigenen Hardware. Was Sie auch als model übergeben, wird dorthin geroutet; verwenden Sie die öffentliche ID, damit Ihre Logs mit unseren übereinstimmen.
Chat Completions
POST /v1/chat/completions
{
"model": "notrack-uncensored",
"messages": [
{ "role": "system", "content": "You are Mira, a wry bartender in 1920s Berlin." },
{ "role": "user", "content": "Evening. What's good tonight?" }
],
"max_tokens": 400,
"temperature": 0.9
}
Antwort — die Standardform, mit echten Token-Zahlen in usage (danach wird abgerechnet):
{
"id": "chatcmpl-…", "object": "chat.completion", "model": "notrack-uncensored",
"choices": [ { "index": 0, "finish_reason": "stop",
"message": { "role": "assistant", "content": "…" } } ],
"usage": { "prompt_tokens": 41, "completion_tokens": 118, "total_tokens": 159 }
}
Ihr System-Prompt steuert die Konversation. Wir stellen genau eine Zeile voran — die Identität des Modells (dass es notrack-uncensored ist, hergestellt von NotTrack AI) — und sonst nichts: keine Regeln, kein Themenfilter. Ihre System-Nachricht folgt danach und bestimmt Persona, Stil und alles Weitere. Die einzige Ausnahme ist in Inhaltsrichtlinie.
Streaming
Setzen Sie "stream": true und lesen Sie Server-Sent Events, genau wie bei OpenAI. Der letzte Chunk enthält usage (wir fügen es immer ein, unabhängig davon, ob Sie stream_options anfordern), danach data: [DONE].
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Ev"}}]}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"ening"}}]}
…
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[],"usage":{"prompt_tokens":41,"completion_tokens":118,"total_tokens":159}}
data: [DONE]
Parameter
| Feld | Hinweise |
|---|---|
messages | Erforderlich. Rollen system, user, assistant. Vorerst nur Text — Bildteile werden abgelehnt. |
model | Verwenden Sie notrack-uncensored. |
stream | true für SSE. stream_options.include_usage ist immer aktiv. |
max_tokens | Obergrenze für die Completion. Prompt + Completion müssen in das 64,000-Token-Fenster passen. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Wird wie bei OpenAI an das Modell weitergegeben. Senden Sie kein temperature, verwenden wir 0,85, dasselbe wie in unserem Chat. n > 1 vervielfacht die Ausgabekosten. |
tools, tool_choice | Unterstützt: auto, none, required, oder eine benannte Funktion. Die Antwort enthält tool_calls und finish_reason: "tool_calls"; senden Sie das Ergebnis als role: "tool"-Nachricht zurück. Sind Tools vorhanden, kommt eine gestreamte Antwort als ein Chunk pro Aufruf statt Token für Token. |
response_format | {"type": "json_object"} wird unterstützt (geben Sie im Prompt an, welches JSON Sie möchten). json_schema und das veraltete Feld functions werden nicht unterstützt. |
Limits & Response-Header
| Limit | Wert | Bei Überschreitung |
|---|---|---|
| Gleichzeitige Anfragen pro Key | 8 | 429 concurrency |
| Anfragen pro Minute pro Key | 300 | 429 rate_limit |
| Kontextfenster (Prompt + Completion) | 64,000 Tokens | 400 context_limit — Verlauf kürzen und erneut versuchen |
| Tägliche Ausgaben pro Key (optional) | von Ihnen auf der Keys-Seite festgelegt | 402 key_daily_cap bis 00:00 UTC |
Jede erfolgreiche Antwort enthält:
| Header | Bedeutung |
|---|---|
X-Request-Id | Geben Sie ihn an, wenn Sie sich an den Support wenden; es ist das Einzige, was wir zu einer Anfrage speichern. |
X-NoTrack-Balance-USD | Ihr Guthaben vor diese Anfrage belastet wurde, in Dollar. |
X-RateLimit-Limit-Requests | Für diesen Key erlaubte Anfragen pro Minute. |
X-RateLimit-Limit-Concurrency | Für diesen Key erlaubte parallele Anfragen. |
X-NoTrack-Content-Flag | Nur bei einer Inhaltsablehnung: minor_in_sexual_context oder child_safety. |
Fehler
Fehler sind JSON mit einem stabilen type; die message ist für Menschen gedacht und kann sich ändern.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at nottrackai.com/api-keys" } }
| HTTP | type | Was zu tun ist |
|---|---|---|
| 400 | body | Ungültiges JSON oder kein messages. |
| 400 | context_limit | Prompt zu lang für das 64,000-Token-Fenster. Entfernen Sie ältere Runden. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Die Szene liest sich sexuell, und eine Figur liest sich minderjährig. Machen Sie die Figuren unzweifelhaft erwachsen und senden Sie erneut; wird nicht abgerechnet. |
| 401 | auth, invalid_key, key_revoked, key_expired | Key korrigieren oder ersetzen. |
| 402 | no_credit | Guthaben ist null. Aufladen; Anfragen werden sofort fortgesetzt. |
| 402 | key_daily_cap | Dieser Key hat die von Ihnen festgelegte Tagesobergrenze erreicht. Erhöhen Sie sie oder warten Sie bis 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Abgelehnt und nicht abgerechnet. Siehe Inhaltsrichtlinie. |
| 429 | rate_limit, concurrency | Verlangsamen und erneut versuchen; beide X-RateLimit-*-Header beachten. |
| 502 | upstream | Das Modell hat nicht geantwortet. Mit Backoff erneut versuchen; wird nicht abgerechnet. |
| 503 | billing, safety | Eine unserer Abhängigkeiten ist ausgefallen. In ein paar Sekunden erneut versuchen; wird nicht abgerechnet. |
Abrechnung
Vorausbezahltes Guthaben, abgerechnet pro Token nach der tatsächlichen usage jeder Antwort: $0.25 pro 1 Mio. Input-Tokens, $1.00 pro 1 Mio. Output-Tokens. Input ist alles, was Sie senden (System-Prompt, Verlauf, die neue Nachricht); Output ist, was das Modell schreibt.
- Ihr erster Key kommt mit $0.50 kostenlosem Guthaben, gültig für 7 Tage — genug, um zu integrieren und zu testen. Für einen Key ist eine bestätigte E-Mail erforderlich (dort geht "Guthaben wird knapp" hin). Bezahltes Guthaben verfällt niemals.
- Guthaben verfällt nicht, es gibt kein Abonnement, und nichts erneuert sich von selbst. Auf der Keys-Seite per Karte oder in USDT/USDC aufladen.
- Für abgelehnte (
4xx) oder fehlgeschlagene Anfragen (5xx) wird nichts berechnet. Eine Anfrage wird einmal berechnet, nach der Antwort, anhand ihrerX-Request-Id. - Guthaben erschöpft →
402 no_credit, bis Sie aufladen. Legen Sie für jeden Key eine Tagesobergrenze fest, damit ein durchgesickerter Key das Konto nicht leerräumen kann. - Guthaben wird nicht erstattet, es sei denn, wir können unseren Dienst nicht erbringen; es verfällt nie und kann auf einen Plan angerechnet werden. Siehe Guthaben und Rückzahlungen.
Persona — nacktes Modell oder NotTrack AIs Charakter
Jeder Key hat einen Stil, auf der Keys-Seite gewählt und jederzeit umschaltbar:
- Unverändert (Standard) — Ihr System-Prompt ist der gesamte Prompt. Wir fügen eine Zeile Identität hinzu und sonst nichts.
- NotTrack AI-Persona — der Charakter und Stil des Chats auf nottrackai.com: direkt, ungefiltert, ohne Moralisieren, antwortet in der Sprache des Nutzers. Gleiches Modell, gleicher Preis, gleiche Inhaltsrichtlinie; nur der Prompt vor Ihren Nachrichten ändert sich. Ihre eigene System-Nachricht folgt weiterhin danach und kann ihn anpassen.
Eine Anfrage kann die Einstellung des Keys überschreiben, entweder mit einem Feld oder mit einem Modell-Suffix (für Clients, die nur einen Modellnamen festlegen können):
{ "model": "notrack-uncensored", "notrack": { "persona": "notrack" }, "messages": [ … ] }
{ "model": "notrack-uncensored:notrack", "messages": [ … ] } // same thing, by model name
{ "model": "notrack-uncensored:bare", "messages": [ … ] } // force the bare model on a persona key
Persona-Namen: notrack (der einfache Charakter), concise, detailed, creative (dieselben Varianten, die der Chat bietet), bare. Der Response-Header X-NoTrack-Persona gibt an, welche angewendet wurde.
Inhaltsrichtlinie
Wir fügen keinen System-Prompt hinzu und betreiben keinen Themenfilter. Fiktion für Erwachsene, dunkle Themen, derbe Sprache, Gewalt in der Fiktion — das Modell antwortet, wie es geschrieben ist. Eine Regel ist im Code erzwungen und kann nicht abgeschaltet werden: Alles Sexuelle mit Beteiligung einer minderjährigen Person wird abgelehnt.
403 child_safety— die Anfrage suchte sexuelle Inhalte mit Beteiligung eines Kindes. Abgelehnt, nicht abgerechnet, als Sicherheitsereignis protokolliert.400 minor_in_sexual_context— die Szene ist sexuell, und eine Figur liest sich unter 18 (Alter genannt, Schulumgebung, "Mädchen/Junge"-Rahmung). Kein Verbot: Machen Sie Alter und Rahmung unzweifelhaft erwachsen und senden Sie erneut.
Wiederholte 403 auf einem Key führen zur Schließung des Keys, dann des Kontos. Der vollständige Text steht in der Richtlinie zur zulässigen Nutzung.
Datenschutz
Prompts und Completions werden nicht auf Festplatte geschrieben — weder vom Gateway noch von den Modell-Servern. Was wir pro Anfrage speichern, sind Anfrage-ID, Key-ID, Token-Zahlen und Preis, denn das ist die Rechnung. Sicherheitsablehnungen werden nach Kategorie protokolliert, ohne den Text. Kein Drittanbieter-Modellanbieter sieht jemals Ihren Traffic: Das Modell läuft auf Hardware, die wir mieten und kontrollieren.
Clients & SDKs
Die NotTrack AI-Website und die NotTrack AI-App sind unser eigener Chat — sie haben kein Feld für einen API-Key und werden nie eines haben. Ein Key ist für andere Programme gedacht: fügen Sie ihn in einen der unten genannten Clients ein, oder in Ihren eigenen Code.
Python
from openai import OpenAI
client = OpenAI(base_url="https://api.nottrackai.com/v1", api_key="sk-…")
stream = client.chat.completions.create(model="notrack-uncensored",
messages=[{"role": "user", "content": "Hello"}], stream=True)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nottrackai.com/v1", apiKey: process.env.API_KEY });
const r = await client.chat.completions.create({ model: "notrack-uncensored",
messages: [{ role: "user", content: "Hello" }] });
console.log(r.choices[0].message.content);
SillyTavern
API Connections → API: Chat Completion → Source: Custom (OpenAI-compatible) → Custom Endpoint https://api.nottrackai.com/v1 → Custom API Key → Connect → Model notrack-uncensored. Streaming aktiviert. Kontextgröße bei 64,000 Tokens oder darunter halten.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, Modus OpenAI API Compatible → Basis-URL und Key einfügen, dann notrack-uncensored als Modell hinzufügen.
NextChat
Settings → Custom Endpoint aktivieren (OpenAI-kompatibel) → Basis-URL und Key, dann den Modellnamen in das Modellfeld eingeben.
Cherry Studio
Settings → Model Providers → Add Provider → OpenAI eingeben → Basis-URL und Key, dann "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → custom API endpoint aktivieren, Basis-URL und Key einfügen, und das Modell zur Modellliste hinzufügen.
Alles Andere
LangChain, LlamaIndex, Open WebUI, Continue, JanitorAI-Proxy-Einstellungen, curl — jeder Client mit einer Option "OpenAI-compatible" oder "custom base URL".
Die Menüformulierungen oben ändern sich zwischen App-Versionen — falls eine Bezeichnung nicht exakt passt, suchen Sie nach der Einstellung, die "custom", "OpenAI-compatible" oder "base URL" erwähnt.
Wenn sich ein Client nicht verbindet
- 401 / "invalid API key" — der Key ist nie angekommen. Prüfen Sie, ob der Client
Authorization: Bearer sk-…mit dem gesamten Key inklusive Präfix sendet. - 404 / unbekannter Endpoint — Clients sind sich uneinig, ob sie
/v1selbst anhängen. Wennhttps://api.nottrackai.com/v1404 liefert, versuchen Sie stattdessenhttps://api.nottrackai.comals Basis-URL (oder umgekehrt). - "The Responses API is not supported yet" — einige neuere Clients verwenden standardmäßig die Responses API von OpenAI. Wir bedienen nur Chat Completions; stellen Sie den Client auf diesen Modus um.
- Leere Modellliste — manche Clients füllen sie erst nach einer gültigen Key-Prüfung. Geben Sie
notrack-uncensoredmanuell ein. - In einem Ollama-/llama.cpp-Client passiert nichts — die sprechen ihr eigenes Protokoll, nicht OpenAI-kompatibel. Verwenden Sie stattdessen einen der oben genannten Clients.
Keys
- Bis zu 20 aktive Keys pro Konto. Geben Sie jeder App ihren eigenen Key und ihre eigene Tagesobergrenze.
- Optionales Ablaufdatum; das Widerrufen eines Keys stoppt ihn sofort und kann nicht rückgängig gemacht werden — stellen Sie stattdessen einen neuen aus.
- Die Keys-Seite zeigt Ausgaben pro Key, letzte Nutzung und die 30-Tage-Summen des Kontos.
Fragen oder eine zu prüfende Anfrage-ID: Support · nottrackai.com/support.