BestPrivateAI 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.bestprivateai.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 BestPrivateAI) — 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

FeldHinweise
messagesErforderlich. Rollen system, user, assistant. Vorerst nur Text — Bildteile werden abgelehnt.
modelVerwenden Sie notrack-uncensored.
streamtrue für SSE. stream_options.include_usage ist immer aktiv.
max_tokensObergrenze für die Completion. Prompt + Completion müssen in das 64,000-Token-Fenster passen.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nWird 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_choiceUnterstü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

LimitWertBei Überschreitung
Gleichzeitige Anfragen pro Key8429 concurrency
Anfragen pro Minute pro Key300429 rate_limit
Kontextfenster (Prompt + Completion)64,000 Tokens400 context_limit — Verlauf kürzen und erneut versuchen
Tägliche Ausgaben pro Key (optional)von Ihnen auf der Keys-Seite festgelegt402 key_daily_cap bis 00:00 UTC

Jede erfolgreiche Antwort enthält:

HeaderBedeutung
X-Request-IdGeben Sie ihn an, wenn Sie sich an den Support wenden; es ist das Einzige, was wir zu einer Anfrage speichern.
X-NoTrack-Balance-USDIhr Guthaben vor diese Anfrage belastet wurde, in Dollar.
X-RateLimit-Limit-RequestsFür diesen Key erlaubte Anfragen pro Minute.
X-RateLimit-Limit-ConcurrencyFür diesen Key erlaubte parallele Anfragen.
X-NoTrack-Content-FlagNur 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 bestprivateai.com/api-keys" } }
HTTPtypeWas zu tun ist
400bodyUngültiges JSON oder kein messages.
400context_limitPrompt zu lang für das 64,000-Token-Fenster. Entfernen Sie ältere Runden.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextDie Szene liest sich sexuell, und eine Figur liest sich minderjährig. Machen Sie die Figuren unzweifelhaft erwachsen und senden Sie erneut; wird nicht abgerechnet.
401auth, invalid_key, key_revoked, key_expiredKey korrigieren oder ersetzen.
402no_creditGuthaben ist null. Aufladen; Anfragen werden sofort fortgesetzt.
402key_daily_capDieser Key hat die von Ihnen festgelegte Tagesobergrenze erreicht. Erhöhen Sie sie oder warten Sie bis 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyAbgelehnt und nicht abgerechnet. Siehe Inhaltsrichtlinie.
429rate_limit, concurrencyVerlangsamen und erneut versuchen; beide X-RateLimit-*-Header beachten.
502upstreamDas Modell hat nicht geantwortet. Mit Backoff erneut versuchen; wird nicht abgerechnet.
503billing, safetyEine 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.

Persona — nacktes Modell oder BestPrivateAIs Charakter

Jeder Key hat einen Stil, auf der Keys-Seite gewählt und jederzeit umschaltbar:

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.

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 BestPrivateAI-Website und die BestPrivateAI-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.bestprivateai.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.bestprivateai.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.bestprivateai.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

Keys

Fragen oder eine zu prüfende Anfrage-ID: Support · bestprivateai.com/support.