NoTrack API — reference
Isang OpenAI-compatible endpoint, isang modelo, isang key. Kung ang code mo ay nakikipag-usap na sa /v1/chat/completions, palitan mo ang base URL at ang key, at makikipag-usap na ito sa amin.
Base URL at authentication
Base URL: https://api.notrack.ai/v1
Header: Authorization: Bearer sk-notrack-…
Ang mga key ay nilikha sa ang keys page. Ipinapakita lang ang key nang isang beses, sa paglikha nito; iniimbak namin ang isang hash at ang huling anim na character nito. Ipadala ito lamang sa HTTPS at lamang sa Authorization header — hindi kailanman sa URL.
Lahat ay JSON (Content-Type: application/json). Ang mga response ay gumagamit ng OpenAI schema, kaya ang mga opisyal na openai SDK at bawat OpenAI-compatible client ay gumagana nang walang pagbabago.
Mga Modelo
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
May isang modelo, notrack-uncensored: ang sarili naming modelo, na naka-serve sa sarili naming mga GPU server. Anuman ang ipasa mo bilang model ay iruruta dito; gamitin ang public id para tumugma ang mga log mo sa amin.
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
}
Response — ang standard na hugis, na may totoong token count sa usage (ito ang basehan ng pagsingil sa iyo):
{
"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 }
}
Ang system prompt mo ang namamahala sa pag-uusap. Nagdaragdag kami ng eksaktong isang linya sa una — ang identity ng modelo (na ito ay notrack-uncensored, gawa ng NoTrack) — at wala nang iba: walang rules, walang topic filter. Susunod ang system message mo at ito ang magpapasya sa persona, style, at lahat ng iba pa. Ang tanging eksepsiyon ay sa Content policy.
Streaming
I-set ang "stream": true at basahin ang server-sent events, eksaktong tulad sa OpenAI. Ang huling chunk ay may dalang usage (palagi naming isinasama ito, humingi ka man ng stream_options o hindi), pagkatapos 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]
Mga Parameter
| Field | Mga Tala |
|---|---|
messages | Required. Mga role na system, user, assistant. Text lang sa ngayon — tinatanggihan ang mga image part. |
model | Gamitin ang notrack-uncensored. |
stream | true para sa SSE. Palaging on ang stream_options.include_usage. |
max_tokens | Cap sa completion. Ang prompt + completion ay dapat magkasya sa window na 100,000 token. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Ipinapasa sa modelo tulad sa OpenAI. Kung walang ipadala kang temperature, ginagamit namin ang 0.85, kapareho ng chat namin. Ang n > 1 ay nagpaparami ng output cost. |
tools, tool_choice | Suportado: auto, none, required, o isang named function. Ang reply ay may dalang tool_calls at finish_reason: "tool_calls"; ibalik ang resulta bilang isang role: "tool" message. Kapag may tools, ang streamed reply ay dumarating bilang isang chunk kada tawag imbes na token by token. |
response_format | Suportado ang {"type": "json_object"} (sabihin sa prompt kung anong JSON ang gusto mo). Hindi suportado ang json_schema at ang legacy na functions field. |
Mga Limitasyon at response header
| Limitasyon | Value | Kapag lumampas |
|---|---|---|
| Sabay-sabay na request kada key | 8 | 429 concurrency |
| Request kada minuto kada key | 300 | 429 rate_limit |
| Context window (prompt + completion) | 100,000 token | 400 context_limit — bawasan ang history at ulitin |
| Pang-araw-araw na gastos kada key (opsyonal) | itinakda mo sa keys page | 402 key_daily_cap hanggang 00:00 UTC |
Mga trial key (bago ang unang top-up): sabay-sabay na request — 2, request kada minuto — 60. Pagkatapos ng unang top-up, makukuha ng key ang buong limit: 8 at 300.
Bawat matagumpay na response ay may dala ng:
| Header | Kahulugan |
|---|---|
X-Request-Id | Isipin ito kapag sumulat sa support; ito lang ang iniimbak namin tungkol sa isang request. |
X-NoTrack-Balance-USD | Ang credit mo bago nasingil ang request na ito, sa dolyar. |
X-RateLimit-Limit-Requests | Bilang ng request kada minuto na pinapayagan para sa key na ito. |
X-RateLimit-Limit-Concurrency | Bilang ng sabay-sabay na request na pinapayagan para sa key na ito. |
X-NoTrack-Content-Flag | Sa content refusal lang: minor_in_sexual_context o child_safety. |
Mga Error
Ang mga error ay JSON na may stable na type; ang message ay para sa tao at maaaring magbago.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
| HTTP | type | Ano ang gagawin |
|---|---|---|
| 400 | body | Invalid JSON o walang messages. |
| 400 | context_limit | Masyadong mahaba ang prompt para sa window na 100,000 token. Alisin ang mas lumang mga turn. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Ang eksena ay mababasang sekswal at ang isang karakter ay mababasang menor de edad. Gawin ang mga karakter na malinaw na adult at ipadala ulit; hindi sinisingil. |
| 401 | auth, invalid_key, key_revoked, key_expired | Ayusin o palitan ang key. |
| 402 | no_credit | Zero na ang balance. Mag-top up; agad magpapatuloy ang mga request. |
| 402 | key_daily_cap | Naabot ng key na ito ang daily ceiling na itinakda mo. Itaas ito o hintayin ang 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Tinanggihan at hindi sinisingil. Tingnan ang Content policy. |
| 429 | rate_limit, concurrency | Magpabagal at ulitin; sundin ang dalawang X-RateLimit-* header. |
| 502 | upstream | Hindi sumagot ang modelo. Ulitin gamit ang backoff; hindi sinisingil. |
| 503 | billing, safety | May patid ang isang dependency namin. Ulitin sa ilang segundo; hindi sinisingil. |
Pagsingil
Prepaid credit, sinisingil kada token batay sa totoong usage ng bawat response: $0.15 kada 1M input token, $0.50 kada 1M output token. Ang input ay lahat ng ipapadala mo (system prompt, history, ang bagong mensahe); ang output ay ang isusulat ng modelo.
- Ang unang key mo ay may kasamang $0.50 ng libreng credit, magandang gamitin sa 7 araw — sapat para sa integration at testing. Kailangan ng kumpirmadong e-mail para sa isang key (dito napupunta ang "paubos na ang credit" na abiso). Hindi kailanman mag-e-expire ang paid credit.
- Hindi mag-e-expire ang credit, walang subscription, at walang mag-renew nang mag-isa. Mag-top up gamit ang card o USDT/USDC sa keys page.
- Walang sisingilin para sa mga tinanggihang request (
4xx) o mga nabigo (5xx). Sinisingil ang isang request nang isang beses lang, pagkatapos ng response, batay saX-Request-Idnito. - Kapag naubos ang balance →
402 no_credithanggang mag-top up ka. Magtakda ng daily ceiling sa bawat key para hindi maubos ang account kung nag-leak ang isang key. - Hindi ibinabalik ang mga kredit maliban na lang kung hindi namin maipagbigay ang aming serbisyo; hindi sila kailanman nag-e-expire at maaaring ilapat sa isang plan. Tingnan Mga kredit at refund.
Persona — bare model o ang character ng NoTrack
Bawat key ay may style, pinili sa keys page at maaaring palitan anumang oras:
- Bare (default) — ang system prompt mo ang buong prompt. Nagdaragdag kami ng isang linya ng identity at wala nang iba.
- NoTrack persona — ang character at style ng chat sa notrack.ai: direkta, walang filter, hindi nagmoralize, sumasagot sa wika ng user. Kaparehong modelo, kaparehong presyo, kaparehong content policy; ang prompt lang na nauuna sa mga mensahe mo ang nagbabago. Ang system message mo mismo ay sumusunod pa rin dito at maaari itong i-adjust.
Maaaring i-override ng isang request ang setting ng key, gamit ang isang field o isang model suffix (para sa mga client na kayang lang magtakda ng model name):
{ "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
Mga pangalan ng persona: notrack (ang simpleng character), concise, detailed, creative (ang parehong mga variant na inaalok ng chat), bare. Sinasabi ng response header na X-NoTrack-Persona kung alin ang naaplay.
Content policy
Hindi kami nagdaragdag ng system prompt at hindi kami nagpapatakbo ng topic filter. Adult fiction, madidilim na tema, malakas na wika, karahasan sa fiction — sumasagot ang modelo ayon sa nakasulat. Isang panuntunan na ipinatupad sa code at hindi maaaring i-off: anumang sekswal na kaugnay ng isang menor de edad ay tinatanggihan.
403 child_safety— hinangad ng request ang sekswal na content na kaugnay ng bata. Tinanggihan, hindi sinisingil, na-log bilang safety event.400 minor_in_sexual_context— sekswal ang eksena at ang isang karakter ay mababasang wala pang 18 taong gulang (sinabing edad, school setting, "girl/boy" framing). Hindi ito ban: gawin ang mga edad at framing na malinaw na adult at ipadala ulit.
Ang paulit-ulit na 403 sa isang key ay hahantong sa pagsara ng key, at pagkatapos ng account. Ang buong teksto ay sa Acceptable Use policy.
Privacy
Ang mga prompt at completion ay hindi isinusulat sa disk — hindi ng gateway, hindi ng mga model server. Ang iniimbak namin kada request ay ang request id, ang key id, ang token count, at ang presyo, dahil ito ang basehan ng bill. Ang mga safety refusal ay naka-log ayon sa kategorya, walang teksto. Walang third-party model provider na makakakita ng traffic mo: tumatakbo ang modelo sa sarili naming mga GPU server.
Mga Client at SDK
Ang website ng NoTrack at ang app ng NoTrack ay ang sarili naming chat — walang field para sa isang API key at hinding-hindi magkakaroon. Ang isang key ay para sa mga iba pang program: i-paste ito sa isa sa mga client sa ibaba, o sa sariling code mo.
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 on. Panatilihin ang context size sa 100,000 token o mas mababa.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, mode OpenAI API Compatible → i-paste ang base URL at key, tapos idagdag ang notrack-uncensored bilang model.
NextChat
Settings → i-on ang Custom Endpoint (OpenAI-compatible) → base URL at key, tapos i-type ang model name sa model field.
Cherry Studio
Settings → Model Providers → Add Provider → i-type ang OpenAI → base URL at key, tapos "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → i-enable ang custom API endpoint, i-paste ang base URL at key, at idagdag ang model sa model list.
Iba pa
LangChain, LlamaIndex, Open WebUI, Continue, mga proxy setting ng JanitorAI, curl — anumang client na may "OpenAI-compatible" o "custom base URL" na opsyon.
Nagbabago ang mga menu wording sa itaas depende sa bersyon ng app — kung hindi eksaktong tumutugma ang isang label, hanapin ang setting na binabanggit ang "custom", "OpenAI-compatible", o "base URL".
Kung hindi makakonekta ang isang client
- 401 / "invalid API key" — hindi dumating ang key. Kumpirmahin na ipinapadala ng client ang
Authorization: Bearer sk-notrack-…na may buong key, kasama ang prefix. - 404 / hindi kilalang endpoint — hindi nagkakasundo ang mga client kung idinadagdag nila mismo ang
/v1. Kung nag-404 anghttps://api.notrack.ai/v1, subukan anghttps://api.notrack.aibilang base URL sa halip (o kabaligtaran). - "The Responses API is not supported yet" — gamit bilang default ng ilang mas bagong client ang Responses API ng OpenAI. Chat Completions lang ang sini-serve namin; palitan ang mode ng client sa iyon.
- Walang laman ang model list — ilang client ang nagpupuno nito matapos lang ng valid key check. I-type ang
notrack-uncensorednang de-kamay. - Walang nangyayari sa isang Ollama / llama.cpp client — sarili nilang protocol ang ginagamit nila, hindi OpenAI-compatible. Gamitin sa halip ang isa sa mga client sa itaas.
Mga Key
- Hanggang 20 active key kada account. Bigyan ang bawat app ng sariling key at sariling daily ceiling.
- Opsyonal na expiry date; agad na ihihinto ng pag-revoke ang key at hindi na maibabalik — mag-isyu ng bago sa halip.
- Ipinapakita ng keys page ang gastos kada key, huling paggamit, at ang 30-araw na kabuuan ng account.
Mga tanong o isang request id na susuriin: support · [email protected].