NoTrack API — referenca
Jedan OpenAI-kompatibilan endpoint, jedan model, jedan ključ. Ako vaš kod već razgovara s /v1/chat/completions, promijenite osnovni URL i ključ, i razgovarat će s nama.
Osnovni URL i autentikacija
Base URL: https://api.notrack.ai/v1
Header: Authorization: Bearer sk-notrack-…
Ključevi se stvaraju na stranica s ključevima. Ključ se prikazuje samo jednom, pri stvaranju; mi pohranjujemo hash i njegovih posljednjih šest znakova. Šaljite ga samo preko HTTPS-a i samo u zaglavlju Authorization — nikad u URL-u.
Sve je u JSON-u (Content-Type: application/json). Odgovori koriste OpenAI shemu, tako da službeni openai SDK-ovi i svaki OpenAI-kompatibilan klijent radi bez promjena.
Modeli
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Postoji jedan model, notrack-uncensored: naš vlastiti model, poslužen na našim vlastitim GPU poslužiteljima. Sve što proslijedite kao model usmjerava se na njega; koristite javni id kako bi se vaši zapisi poklapali s našima.
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
}
Odgovor — standardni oblik, sa stvarnim brojem tokena u usage (na temelju toga vam se naplaćuje):
{
"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 }
}
Vaš system prompt upravlja razgovorom. Dodajemo točno jedan redak na početku — identitet modela (da je riječ o notrack-uncensored, koji je izradio NoTrack) — i ništa drugo: nema pravila, nema filtra tema. Vaša sistemska poruka slijedi ga i odlučuje o personi, stilu i svemu ostalom. Jedina iznimka je u Pravila o sadržaju.
Streaming
Postavite "stream": true i čitajte server-sent evente, potpuno kao kod OpenAI-a. Posljednji dio nosi usage (uvijek ga uključujemo, bez obzira tražite li stream_options ili ne), zatim 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]
Parametri
| Polje | Napomene |
|---|---|
messages | Obavezno. Uloge system, user, assistant. Za sada samo tekst — dijelovi sa slikama se odbijaju. |
model | Koristite notrack-uncensored. |
stream | true za SSE. stream_options.include_usage je uvijek uključen. |
max_tokens | Gornja granica za completion. Prompt + completion moraju stati u prozor od 100,000 tokena. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Prosljeđuje se modelu kao kod OpenAI-a. Ako ne pošaljete temperature, koristimo 0.85, isto kao u našem chatu. n > 1 množi trošak izlaza. |
tools, tool_choice | Podržano: auto, none, required, ili imenovana funkcija. Odgovor nosi tool_calls i finish_reason: "tool_calls"; rezultat vratite kao poruku role: "tool". Kada su tools prisutni, streamani odgovor stiže kao jedan dio po pozivu, a ne token po token. |
response_format | {"type": "json_object"} je podržan (u promptu navedite kakav JSON želite). json_schema i stariji functions nisu. |
Ograničenja i zaglavlja odgovora
| Ograničenje | Vrijednost | Kad se prekorači |
|---|---|---|
| Istovremeni zahtjevi po ključu | 8 | 429 concurrency |
| Zahtjevi u minuti po ključu | 300 | 429 rate_limit |
| Kontekstni prozor (prompt + completion) | 100,000 tokena | 400 context_limit — smanjite povijest i pokušajte ponovno |
| Dnevna potrošnja po ključu (neobavezno) | postavljate vi na stranici s ključevima | 402 key_daily_cap do 00:00 UTC |
Probni ključevi (prije prve uplate): istodobnih zahtjeva — 2, zahtjeva u minuti — 60. Nakon prve uplate ključ dobiva pune limite: 8 i 300.
Svaki uspješan odgovor nosi:
| Zaglavlje | Značenje |
|---|---|
X-Request-Id | Navedite ga kad pišete podršci; to je jedino što čuvamo o zahtjevu. |
X-NoTrack-Balance-USD | Vaše stanje kredita prije naplate ovog zahtjeva, u dolarima. |
X-RateLimit-Limit-Requests | Broj zahtjeva u minuti dopušten za ovaj ključ. |
X-RateLimit-Limit-Concurrency | Broj paralelnih zahtjeva dopušten za ovaj ključ. |
X-NoTrack-Content-Flag | Samo kod odbijanja sadržaja: minor_in_sexual_context ili child_safety. |
Pogreške
Pogreške su u JSON-u sa stabilnim type; message je za ljude i može se promijeniti.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
| HTTP | type | Što učiniti |
|---|---|---|
| 400 | body | Nevažeći JSON ili nema messages. |
| 400 | context_limit | Prompt je previše dugačak za prozor od 100,000 tokena. Uklonite starije poruke. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Scena se čita kao seksualna, a lik se čita kao maloljetan. Učinite likove nedvojbeno odraslima i ponovno pošaljite; ne naplaćuje se. |
| 401 | auth, invalid_key, key_revoked, key_expired | Ispravite ili zamijenite ključ. |
| 402 | no_credit | Stanje je nula. Dopuna; zahtjevi se odmah nastavljaju. |
| 402 | key_daily_cap | Ovaj ključ dosegnuo je dnevnu granicu koju ste postavili. Podignite je ili pričekajte do 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Odbijeno i ne naplaćuje se. Vidi Pravila o sadržaju. |
| 429 | rate_limit, concurrency | Smanjite tempo i pokušajte ponovno; poštujte oba X-RateLimit-* zaglavlja. |
| 502 | upstream | Model nije odgovorio. Pokušajte ponovno s odgodom; ne naplaćuje se. |
| 503 | billing, safety | Jedna od naših ovisnosti je nedostupna. Pokušajte ponovno za nekoliko sekundi; ne naplaćuje se. |
Naplata
Unaprijed plaćeni kredit, naplaćuje se po tokenu na temelju stvarnog usage svakog odgovora: $0.15 po 1M ulaznih tokena, $0.50 po 1M izlaznih tokena. Ulaz je sve što pošaljete (system prompt, povijest, nova poruka); izlaz je ono što model napiše.
- Vaš prvi ključ dolazi s $0.50 besplatnog kredita, valjanog 7 dana — dovoljno za integraciju i testiranje. Za ključ je potreban potvrđen e-mail (tamo stiže obavijest "kredit se troši"). Plaćeni kredit nikad ne istječe.
- Kredit ne istječe, nema pretplate i ništa se ne obnavlja samo od sebe. Dopunite karticom ili u USDT/USDC-u na stranici s ključevima.
- Ništa se ne naplaćuje za odbijene zahtjeve (
4xx) ili neuspjele (5xx). Zahtjev se naplaćuje jednom, nakon odgovora, prema njegovomX-Request-Id. - Stanje se potroši →
402 no_creditdok ne dopunite. Postavite dnevnu granicu na svakom ključu tako da procurjeli ključ ne može isprazniti račun. - Krediti se ne vraćaju novcem osim ako ne možemo pružiti našu uslugu; nikada ne istječu i mogu se primijeniti na pretplatu. Pogledajte Krediti i povrat novca.
Persona — goli model ili NoTrackov karakter
Svaki ključ ima stil, odabran na stranici s ključevima i promjenjiv u bilo kojem trenutku:
- Čisti (zadano) — vaš system prompt je cijeli prompt. Dodajemo jedan redak identiteta i ništa drugo.
- NoTrack persona — karakter i stil chata na notrack.ai: direktan, nefiltriran, ne moralizira, odgovara na jeziku korisnika. Isti model, ista cijena, ista pravila o sadržaju; mijenja se samo prompt ispred vaših poruka. Vaša vlastita sistemska poruka i dalje ga slijedi i može ga prilagoditi.
Zahtjev može zamijeniti postavku ključa, bilo poljem ili sufiksom modela (za klijente koji mogu postaviti samo naziv modela):
{ "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
Nazivi persona: notrack (jednostavan karakter), concise, detailed, creative (iste varijante koje nudi chat), bare. Zaglavlje odgovora X-NoTrack-Persona govori koja je primijenjena.
Pravila o sadržaju
Ne dodajemo nikakav system prompt i ne pokrećemo filtar tema. Fikcija za odrasle, mračne teme, grub jezik, nasilje u fikciji — model odgovara onako kako je napisano. Jedno pravilo provodi se u kodu i ne može se isključiti: sve seksualno što uključuje maloljetnika se odbija.
403 child_safety— zahtjev je tražio seksualni sadržaj koji uključuje dijete. Odbijeno, ne naplaćuje se, zabilježeno kao sigurnosni događaj.400 minor_in_sexual_context— scena je seksualna, a lik se čita kao mlađi od 18 godina (navedena dob, školsko okruženje, formulacija "djevojčica/dječak"). Nije zabrana: učinite dob i formulaciju nedvojbeno odraslima i ponovno pošaljite.
Ponovljeni 403 na ključu dovode do zatvaranja ključa, a zatim računa. Cjelovit tekst nalazi se u pravilima prihvatljivog korištenja.
Privatnost
Promptovi i completioni se ne zapisuju na disk — ni od gatewaya, ni od poslužitelja modela. Po zahtjevu čuvamo id zahtjeva, id ključa, broj tokena i cijenu, jer to čini račun. Sigurnosna odbijanja se bilježe po kategoriji, bez teksta. Nijedan pružatelj modela treće strane nikada ne vidi vaš promet: model radi na našim vlastitim GPU poslužiteljima.
Klijenti i SDK-ovi
NoTrack web-stranica i NoTrack aplikacija naš su vlastiti chat — nemaju polje za API ključ i nikad neće imati. Ključ je namijenjen vanjskim programima: zalijepite ga u jedan od klijenata ispod, ili u svoj vlastiti kod.
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 uključen. Držite veličinu konteksta na 100,000 tokena ili manje.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, način OpenAI API Compatible → zalijepite osnovni URL i ključ, zatim dodajte notrack-uncensored kao model.
NextChat
Settings → uključite Custom Endpoint (OpenAI-kompatibilan) → osnovni URL i ključ, zatim upišite naziv modela u polje za model.
Cherry Studio
Settings → Model Providers → Add Provider → upišite OpenAI → osnovni URL i ključ, zatim "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → omogućite custom API endpoint, zalijepite osnovni URL i ključ, i dodajte model na popis modela.
Sve ostalo
LangChain, LlamaIndex, Open WebUI, Continue, postavke proxya za JanitorAI, curl — svaki klijent s opcijom "OpenAI-compatible" ili "custom base URL".
Tekst izbornika iznad razlikuje se između verzija aplikacije — ako se natpis ne poklapa točno, potražite postavku koja spominje "custom", "OpenAI-compatible" ili "base URL".
Ako se klijent ne povezuje
- 401 / "invalid API key" — ključ nikad nije stigao. Provjerite šalje li klijent
Authorization: Bearer sk-notrack-…s cijelim ključem, uključujući prefiks. - 404 / nepoznat endpoint — klijenti se ne slažu oko toga dodaju li sami
/v1. Akohttps://api.notrack.ai/v1vraća 404, umjesto toga probajtehttps://api.notrack.aikao osnovni URL (ili obrnuto). - "The Responses API is not supported yet" — neki noviji klijenti zadano koriste OpenAI Responses API. Mi poslužujemo samo Chat Completions; prebacite klijenta na taj način.
- Prazan popis modela — neki klijenti ga popunjavaju samo nakon uspješne provjere ključa. Upišite
notrack-uncensoredručno. - U Ollama / llama.cpp klijentu se ništa ne događa — oni govore svoj vlastiti protokol, koji nije OpenAI-kompatibilan. Umjesto toga koristite jedan od klijenata iznad.
Ključevi
- Do 20 aktivnih ključeva po računu. Dajte svakoj aplikaciji svoj ključ i svoju dnevnu granicu.
- Neobavezan datum isteka; opoziv ključa odmah ga zaustavlja i to se ne može poništiti — umjesto toga izdajte novi.
- Stranica s ključevima prikazuje potrošnju po ključu, posljednju upotrebu i 30-dnevne ukupne vrijednosti računa.
Pitanja ili id zahtjeva za pregled: podrška · [email protected].