NoTrack API — referencia
Egy OpenAI-kompatibilis végpont, egy modell, egy kulcs. Ha a kódod már /v1/chat/completions-hoz beszél, cseréld ki az alap URL-t és a kulcsot, és velünk fog beszélni.
Alap URL és hitelesítés
Base URL: https://api.notrack.ai/v1
Header: Authorization: Bearer sk-notrack-…
A kulcsok itt jönnek létre: a kulcsok oldal. Egy kulcs csak egyszer jelenik meg, a létrehozásakor; mi egy hash-t és az utolsó hat karakterét tároljuk. Csak HTTPS-en és csak a Authorization fejben küldd el — soha ne URL-ben.
Minden JSON (Content-Type: application/json). A válaszok az OpenAI sémáját használják, így a hivatalos openai SDK-k és minden OpenAI-kompatibilis kliens változatlanul működik.
Modellek
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Egyetlen modell van, notrack-uncensored: saját modellünk, saját GPU-szervereinken futtatva. Amit model-ként megadsz, ahhoz irányítjuk; használd a nyilvános id-t, hogy a naplóid egyezzenek a mieinkkel.
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
}
Válasz — a szokásos forma, valós token-számokkal a usage-ban (ez alapján számlázunk):
{
"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 }
}
A system promptod irányítja a beszélgetést. Pontosan egy sort illesztünk elé — a modell identitását (hogy ez notrack-uncensored, a NoTrack készítette) — és semmi mást: nincs szabály, nincs témaszűrő. A system messaged ezt követi, és ez dönt a personáról, a stílusról és minden másról. Az egyetlen kivétel a Tartalompolitika-ban van.
Streaming
Állítsd be a "stream": true-t, és olvasd a server-sent eventeket, pont úgy, mint OpenAI-nál. Az utolsó darab hordozza a usage-t (mindig belefoglaljuk, kérted a stream_options-t vagy nem), majd a data: [DONE]-t.
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]
Paraméterek
| Mező | Megjegyzések |
|---|---|
messages | Kötelező. system, user, assistant szerepek. Jelenleg csak szöveg — a kép részek elutasításra kerülnek. |
model | Használd a notrack-uncensored-t. |
stream | true az SSE-hez. A stream_options.include_usage mindig be van kapcsolva. |
max_tokens | Felső korlát a completionre. A promptnak + a completionnek bele kell férnie a 100,000-tokenes ablakba. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Ugyanúgy átadva a modellnek, mint OpenAI-nál. Ha nem küldesz temperature-t, 0,85-öt használunk, mint a chatünkben. A n > 1 megsokszorozza a kimeneti költséget. |
tools, tool_choice | Támogatott: auto, none, required, vagy egy megnevezett függvény. A válasz hordozza a tool_calls-t és az finish_reason: "tool_calls"-t; az eredményt role: "tool" üzenetként küldd vissza. Ha tools van jelen, a streamelt válasz híváskénti egy darabban érkezik, nem tokenenként. |
response_format | A {"type": "json_object"} támogatott (mondd meg a promptban, milyen JSON-t szeretnél). A json_schema és a régi functions mező nem támogatott. |
Limitek és válaszfejek
| Limit | Érték | Túllépés esetén |
|---|---|---|
| Egyidejű kérések kulcsonként | 8 | 429 concurrency |
| Kérések percenként kulcsonként | 300 | 429 rate_limit |
| Kontextusablak (prompt + completion) | 100,000 token | 400 context_limit — csökkentsd az előzményt, és próbáld újra |
| Napi költés kulcsonként (opcionális) | te állítod be a kulcsok oldalon | 402 key_daily_cap 00:00 UTC-ig |
Próbakulcsok (az első feltöltés előtt): egyidejű kérések — 2, kérések percenként — 60. Az első feltöltés után a kulcs megkapja a teljes korlátokat: 8 és 300.
Minden sikeres válasz hordozza:
| Fej | Jelentés |
|---|---|
X-Request-Id | Idézd, ha a supportnak írsz; ez az egyetlen, amit egy kérésről megtartunk. |
X-NoTrack-Balance-USD | Az egyenleged a kérés megterhelése előtt, dollárban. |
X-RateLimit-Limit-Requests | Percenként engedélyezett kérések ennél a kulcsnál. |
X-RateLimit-Limit-Concurrency | Egyidejűleg engedélyezett kérések ennél a kulcsnál. |
X-NoTrack-Content-Flag | Csak tartalmi elutasításnál: minor_in_sexual_context vagy child_safety. |
Hibák
A hibák JSON formátumúak, stabil type-val; a message embereknek szól, és változhat.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
| HTTP | type | Mit tegyél |
|---|---|---|
| 400 | body | Érvénytelen JSON vagy nincs messages. |
| 400 | context_limit | A prompt túl hosszú a 100,000-tokenes ablakhoz. Dobd el a régebbi köröket. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | A jelenet szexuálisnak, egy karakter kiskorúnak olvasható. Tedd egyértelműen felnőtté a karaktereket, és küldd újra; nincs számlázva. |
| 401 | auth, invalid_key, key_revoked, key_expired | Javítsd vagy cseréld a kulcsot. |
| 402 | no_credit | Az egyenleg nulla. Egyenlegfeltöltés; a kérések azonnal folytatódnak. |
| 402 | key_daily_cap | Ez a kulcs elérte az általad beállított napi plafont. Emeld fel, vagy várj 00:00 UTC-ig. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Elutasítva, nincs számlázva. Lásd: Tartalompolitika. |
| 429 | rate_limit, concurrency | Lassíts, és próbáld újra; tartsd tiszteletben a két X-RateLimit-* fejet. |
| 502 | upstream | A modell nem válaszolt. Próbáld újra backoffal; nincs számlázva. |
| 503 | billing, safety | Egy függőségünk nem elérhető. Próbáld újra néhány másodperc múlva; nincs számlázva. |
Számlázás
Előre fizetett egyenleg, tokenenként számlázva minden válasz valós usage-ja alapján: $0.15 / 1M bemeneti token, $0.50 / 1M kimeneti token. A bemenet minden, amit elküldesz (system prompt, előzmény, az új üzenet); a kimenet az, amit a modell ír.
- Az első kulcsod $0.50 ingyenes egyenleggel érkezik, 7 napig érvényesen — elég az integráláshoz és teszteléshez. Egy kulcshoz megerősített e-mail szükséges (ide megy az „elfogy az egyenleg" értesítés). A fizetett egyenleg soha nem jár le.
- Az egyenleg nem jár le, nincs előfizetés, és semmi nem hosszabbodik meg magától. Tölts fel kártyával vagy USDT/USDC-vel a kulcsok oldalon.
- Az elutasított kérésekért (
4xx) vagy a sikertelenekért (5xx) semmit nem számlázunk. Egy kérés csak egyszer kerül számlázásra, a válasz után, aX-Request-Id-je alapján. - Ha elfogy az egyenleg →
402 no_credit, amíg nem töltesz fel. Állíts be napi plafont minden kulcson, hogy egy kiszivárgott kulcs ne tudja kiüríteni a fiókot. - A kreditek nem térítendők vissza, kivéve, ha nem tudjuk nyújtani a szolgáltatásunkat; sosem járnak le, és alkalmazhatók egy csomagra. Lásd Kreditek és visszatérítések.
Persona — csupasz modell vagy a NoTrack karaktere
Minden kulcsnak van egy stílusa, amelyet a kulcsok oldalon választhatsz, és bármikor átválthatsz:
- Csupasz (alapértelmezett) — a system promptod az egész prompt. Hozzáadunk egy sor identitást, és semmi mást.
- NoTrack persona — a chat karaktere és stílusa a notrack.ai-n: direkt, szűretlen, nem moralizál, a felhasználó nyelvén válaszol. Ugyanaz a modell, ugyanaz az ár, ugyanaz a tartalompolitika; csak az üzeneteid előtti prompt változik. A saját system messaged továbbra is ezt követi, és módosíthatja.
Egy kérés felülírhatja a kulcs beállítását, egy mezővel vagy egy modell-utótaggal (olyan klienseknek, amelyek csak modellnevet tudnak beállítani):
{ "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 nevek: notrack (az egyszerű karakter), concise, detailed, creative (ugyanazok a variánsok, amiket a chat kínál), bare. A válaszfej X-NoTrack-Persona megmondja, melyik érvényesült.
Tartalompolitika
Nem adunk hozzá system promptot, és nem futtatunk témaszűrőt. Felnőtt fikció, sötét témák, erős nyelvezet, erőszak a fikcióban — a modell úgy válaszol, ahogy megírtad. Egy szabály be van építve a kódba, és nem kapcsolható ki: minden, ami szexuális és kiskorút érint, elutasításra kerül.
403 child_safety— a kérés gyermeket érintő szexuális tartalmat keresett. Elutasítva, nincs számlázva, biztonsági eseményként naplózva.400 minor_in_sexual_context— a jelenet szexuális, és egy karakter 18 év alattinak olvasható (megadott életkor, iskolai környezet, „lány/fiú" megfogalmazás). Ez nem tiltás: tedd egyértelműen felnőtté az életkorokat és a megfogalmazást, és küldd újra.
Egy kulcson ismétlődő 403 a kulcs, majd a fiók lezárásához vezet. A teljes szöveg a elfogadható használati szabályzatban-ban található.
Adatvédelem
A promptokat és a completionöket nem írjuk lemezre — sem a gateway, sem a modell-szerverek. Kérésenként a kérés id-jét, a kulcs id-jét, a token-számokat és az árat tartjuk meg, mert ez alkotja a számlát. A biztonsági elutasításokat kategóriánként naplózzuk, szöveg nélkül. Semmilyen harmadik féltől származó modell-szolgáltató nem látja soha a forgalmadat: a modell a saját GPU-szervereinken fut.
Kliensek és SDK-k
A NoTrack weboldal és a NoTrack app a saját chatünk — nincs bennük mező API-kulcshoz, és nem is lesz. Egy kulcs külső programokhoz van: illeszd be az alábbi kliensek egyikébe, vagy a saját kódodba.
Python
from openai import OpenAI
client = OpenAI(base_url="https://api.notrack.ai/v1", api_key="sk-notrack-…")
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.notrack.ai/v1", apiKey: process.env.NOTRACK_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.notrack.ai/v1 → Custom API Key → Connect → Model notrack-uncensored. Streaming bekapcsolva. Tartsd a kontextusméretet 100,000 tokenen vagy alatta.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, OpenAI API Compatible mód → illeszd be az alap URL-t és a kulcsot, majd add hozzá a notrack-uncensored-t modellként.
NextChat
Settings → kapcsold be a Custom Endpoint-t (OpenAI-kompatibilis) → alap URL és kulcs, majd írd be a modell nevét a modell mezőbe.
Cherry Studio
Settings → Model Providers → Add Provider → írd be: OpenAI → alap URL és kulcs, majd „Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → engedélyezd a custom API endpoint-t, illeszd be az alap URL-t és a kulcsot, majd add hozzá a modellt a modelllistához.
Bármi más
LangChain, LlamaIndex, Open WebUI, Continue, a JanitorAI proxy-beállításai, curl — bármely kliens, amelyben van „OpenAI-kompatibilis" vagy „egyéni alap URL" opció.
A fenti menüszövegek app-verziónként változnak — ha egy címke nem egyezik pontosan, keresd azt a beállítást, amely „custom", „OpenAI-compatible" vagy „base URL" szót tartalmaz.
Ha egy kliens nem csatlakozik
- 401 / „invalid API key" — a kulcs sosem érkezett meg. Ellenőrizd, hogy a kliens a teljes kulcsot elküldi-e
Authorization: Bearer sk-notrack-…-ban, a előtaggal együtt. - 404 / ismeretlen végpont — a kliensek nem egyeznek abban, hogy maguk fűzik-e hozzá a
/v1-t. Ha ahttps://api.notrack.ai/v1404-et ad, próbáld ahttps://api.notrack.ai-t alap URL-ként (vagy fordítva). - „The Responses API is not supported yet" — néhány újabb kliens alapértelmezetten az OpenAI Responses API-ját használja. Mi csak Chat Completionst szolgálunk ki; állítsd át a klienst erre a módra.
- Üres modell-lista — néhány kliens csak egy érvényes kulcs-ellenőrzés után tölti fel. Írd be a
notrack-uncensored-t kézzel. - Egy Ollama / llama.cpp kliensben semmi nem történik — azok a saját protokolljukat beszélik, nem OpenAI-kompatibilisat. Használd inkább a fenti kliensek egyikét.
Kulcsok
- Fiókonként legfeljebb 20 aktív kulcs. Adj minden appnak saját kulcsot és saját napi plafont.
- Opcionális lejárati dátum; egy kulcs visszavonása azonnal leállítja, és nem vonható vissza — inkább adj ki egy újat.
- A kulcsok oldal megjeleníti a kulcsonkénti költést, a legutóbbi használatot és a fiók 30 napos összegeit.
Kérdés vagy megnézendő kérés-id: support · [email protected].