BestPrivateAI API — referanse
Ett OpenAI-kompatibelt endepunkt, én modell, én nøkkel. Hvis koden din allerede snakker med /v1/chat/completions, endrer du base-URL-en og nøkkelen, og den snakker med oss.
Base-URL og autentisering
Base URL: https://api.bestprivateai.com/v1
Header: Authorization: Bearer sk-…
Nøkler opprettes på nøkkelsiden. En nøkkel vises kun én gang, ved opprettelse; vi lagrer en hash og de siste seks tegnene. Send den kun over HTTPS og kun i Authorization-headeren — aldri i en URL.
Alt er JSON (Content-Type: application/json). Responser bruker OpenAI-skjemaet, så de offisielle openai-SDK-ene og alle OpenAI-kompatible klienter fungerer uten endringer.
Modeller
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Det finnes én modell, notrack-uncensored: vår egen companion-tune, kjørt på vår egen maskinvare. Uansett hva du sender som model, blir det rutet til den; bruk den offentlige id-en slik at loggene dine matcher våre.
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
}
Respons — standardformen, med faktiske token-tall i usage (det er dette du faktureres for):
{
"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 }
}
Systempromptet ditt styrer samtalen. Vi setter inn nøyaktig én linje først — modellens identitet (at den er notrack-uncensored, laget av BestPrivateAI) — og ingenting annet: ingen regler, ingen temafilter. Systemmeldingen din følger etter og bestemmer persona, stil og alt annet. Det eneste unntaket er i Innholdspolicy.
Streaming
Sett "stream": true og les server-sent events, nøyaktig som med OpenAI. Den siste chunken inneholder usage (vi tar alltid med den, uansett om du ber om stream_options eller ikke), deretter 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]
Parametere
| Felt | Merknader |
|---|---|
messages | Obligatorisk. Roller system, user, assistant. Kun tekst foreløpig — bildedeler avvises. |
model | Bruk notrack-uncensored. |
stream | true for SSE. stream_options.include_usage er alltid på. |
max_tokens | Grense for completion. Prompt + completion må passe innenfor vinduet på 64,000 tokens. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Sendes videre til modellen som i OpenAI. Sender du ingen temperature, bruker vi 0,85, samme som chatten vår. n > 1 multipliserer output-kostnaden. |
tools, tool_choice | Støttet: auto, none, required, eller en navngitt funksjon. Svaret inneholder tool_calls og finish_reason: "tool_calls"; send resultatet tilbake som en role: "tool"-melding. Med tools til stede kommer et strømmet svar som én chunk per kall i stedet for token for token. |
response_format | {"type": "json_object"} er støttet (si i prompten hvilken JSON du vil ha). json_schema og det utgåtte functions-feltet er ikke det. |
Grenser og response-headere
| Grense | Verdi | Ved overskridelse |
|---|---|---|
| Samtidige forespørsler per nøkkel | 8 | 429 concurrency |
| Forespørsler per minutt per nøkkel | 300 | 429 rate_limit |
| Kontekstvindu (prompt + completion) | 64,000 tokens | 400 context_limit — kort ned historikken og prøv igjen |
| Daglig forbruk per nøkkel (valgfritt) | angitt av deg på nøkkelsiden | 402 key_daily_cap til 00:00 UTC |
Hver vellykkede respons inneholder:
| Header | Betydning |
|---|---|
X-Request-Id | Referer til denne når du skriver til support; det er det eneste vi lagrer om en forespørsel. |
X-NoTrack-Balance-USD | Saldoen din før denne forespørselen ble belastet, i dollar. |
X-RateLimit-Limit-Requests | Forespørsler per minutt tillatt for denne nøkkelen. |
X-RateLimit-Limit-Concurrency | Parallelle forespørsler tillatt for denne nøkkelen. |
X-NoTrack-Content-Flag | Kun ved et innholdsavslag: minor_in_sexual_context eller child_safety. |
Feil
Feil er JSON med en stabil type; message er for mennesker og kan endres.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
| HTTP | type | Hva du skal gjøre |
|---|---|---|
| 400 | body | Ugyldig JSON eller ingen messages. |
| 400 | context_limit | Prompt for lang for vinduet på 64,000 tokens. Fjern eldre runder. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Scenen leses som seksuell og en karakter leses som mindreårig. Gjør karakterene utvetydig voksne og send på nytt; ikke fakturert. |
| 401 | auth, invalid_key, key_revoked, key_expired | Fiks eller erstatt nøkkelen. |
| 402 | no_credit | Saldo er null. Fyll på; forespørsler gjenopptas umiddelbart. |
| 402 | key_daily_cap | Denne nøkkelen har nådd det daglige taket du satte. Øk det eller vent til 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Avslått og ikke fakturert. Se Innholdspolicy. |
| 429 | rate_limit, concurrency | Trapp ned og prøv igjen; respekter de to X-RateLimit-*-headerne. |
| 502 | upstream | Modellen svarte ikke. Prøv igjen med backoff; ikke fakturert. |
| 503 | billing, safety | En av våre avhengigheter er nede. Prøv igjen om noen sekunder; ikke fakturert. |
Fakturering
Forhåndsbetalt saldo, belastet per token basert på faktisk usage for hver respons: $0.25 per 1M input-tokens, $1.00 per 1M output-tokens. Input er alt du sender (systemprompt, historikk, den nye meldingen); output er det modellen skriver.
- Din første nøkkel kommer med $0.50 gratis saldo, gyldig i 7 dager — nok til å integrere og teste. En bekreftet e-postadresse er nødvendig for en nøkkel (det er dit "saldoen tar slutt" går). Betalt saldo utløper aldri.
- Saldo utløper ikke, det finnes ingen abonnement, og ingenting fornyes automatisk. Fyll på med kort eller i USDT/USDC på nøkkelsiden.
- Det belastes ingenting for avslåtte (
4xx) eller mislykkede (5xx) forespørsler. En forespørsel faktureres én gang, etter responsen, knyttet tilX-Request-Id. - Saldoen tar slutt →
402 no_credittil du fyller på. Sett et daglig tak på hver nøkkel, slik at en lekket nøkkel ikke kan tømme kontoen. - Kreditter kan refunderes hvis de ikke er brukt innen 24 timer etter kjøpet, eller senere brukes mot et abonnement. Se Kreditter og refusjoner.
Persona — ren modell eller BestPrivateAIs karakter
Hver nøkkel har en stil, valgt på nøkkelsiden og kan endres når som helst:
- Ren (standard) — systempromptet ditt er hele prompten. Vi legger til én linje identitet og ingenting annet.
- BestPrivateAI-persona — karakteren og stilen fra chatten på bestprivateai.com: direkte, ufiltrert, ingen moralisering, svarer på brukerens språk. Samme modell, samme pris, samme innholdspolicy; bare prompten før meldingene dine endres. Din egen systemmelding følger fortsatt etter og kan justere den.
En forespørsel kan overstyre nøkkelens innstilling, enten med et felt eller med et modellsuffiks (for klienter som bare kan angi et modellnavn):
{ "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-navn: notrack (den vanlige karakteren), concise, detailed, creative (de samme variantene som chatten tilbyr), bare. Response-headeren X-NoTrack-Persona viser hvilken som ble brukt.
Innholdspolicy
Vi legger ikke til noe systemprompt og kjører ingen temafilter. Voksenfiksjon, mørke temaer, sterkt språk, vold i fiksjon — modellen svarer som skrevet. Én regel er kodefestet og kan ikke slås av: alt seksuelt som involverer en mindreårig, avslås.
403 child_safety— forespørselen søkte seksuelt innhold som involverer et barn. Avslått, ikke fakturert, logget som en sikkerhetshendelse.400 minor_in_sexual_context— scenen er seksuell og en karakter leses som under 18 (alder angitt, skolemiljø, "jente/gutt"-framing). Ikke et forbud: gjør aldre og framing utvetydig voksne og send på nytt.
Gjentatte 403-er på en nøkkel fører til at nøkkelen, og deretter kontoen, stenges. Hele teksten finnes i Acceptable Use policy.
Personvern
Prompter og completions skrives ikke til disk — ikke av gatewayen, ikke av modell-serverne. Det vi lagrer per forespørsel er forespørsels-id, nøkkel-id, token-tall og pris, fordi det er det fakturaen bygger på. Sikkerhetsavslag logges etter kategori, uten teksten. Ingen tredjeparts modellleverandør ser noensinne trafikken din: modellen kjører på maskinvare vi leier og kontrollerer.
Klienter og SDK-er
BestPrivateAI-nettsiden og BestPrivateAI-appen er vår egen chat — de har ikke noe felt for en API-nøkkel, og vil aldri få det. En nøkkel er for andre-programmer: lim den inn i en av klientene nedenfor, eller din egen kode.
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 på. Hold kontekststørrelsen på eller under 64,000 tokens.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, modus OpenAI API Compatible → lim inn base-URL-en og nøkkelen, legg deretter til notrack-uncensored som modell.
NextChat
Settings → slå på Custom Endpoint (OpenAI-kompatibel) → base-URL og nøkkel, skriv deretter modellnavnet i modellfeltet.
Cherry Studio
Settings → Model Providers → Add Provider → skriv OpenAI → base-URL og nøkkel, deretter «Add model» → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → slå på custom API endpoint, lim inn base-URL-en og nøkkelen, og legg modellen til modellisten.
Noe annet
LangChain, LlamaIndex, Open WebUI, Continue, JanitorAI proxy-innstillinger, curl — enhver klient med et «OpenAI-kompatibel»- eller «egendefinert base-URL»-alternativ.
Menytekstene ovenfor endres mellom appversjoner — hvis en etikett ikke stemmer eksakt, se etter innstillingen som nevner «custom», «OpenAI-compatible» eller «base URL».
Hvis en klient ikke kobler til
- 401 / «invalid API key» — nøkkelen kom aldri fram. Bekreft at klienten sender
Authorization: Bearer sk-…med hele nøkkelen, prefiks inkludert. - 404 / ukjent endepunkt — klienter er ikke samstemte om de legger til
/v1selv. Hvishttps://api.bestprivateai.com/v1gir 404, prøvhttps://api.bestprivateai.comsom base-URL i stedet (eller omvendt). - «The Responses API is not supported yet» — noen nyere klienter bruker som standard OpenAIs Responses API. Vi tilbyr kun Chat Completions; bytt klienten til den modusen.
- Tom modelliste — noen klienter fyller den kun etter en gyldig nøkkelsjekk. Skriv
notrack-uncensoredinn manuelt. - Ingenting skjer i en Ollama- / llama.cpp-klient — de snakker sin egen protokoll, ikke OpenAI-kompatibel. Bruk en av klientene ovenfor i stedet.
Nøkler
- Opptil 20 aktive nøkler per konto. Gi hver app sin egen nøkkel og sitt eget daglige tak.
- Valgfri utløpsdato; å tilbakekalle en nøkkel stopper den umiddelbart og kan ikke reverseres — opprett en ny i stedet.
- Nøkkelsiden viser forbruk per nøkkel, siste bruk og kontoens 30-dagerstotal.
Spørsmål eller en forespørsels-id å se på: support · bestprivateai.com/support.