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

FieldMga Tala
messagesRequired. Mga role na system, user, assistant. Text lang sa ngayon — tinatanggihan ang mga image part.
modelGamitin ang notrack-uncensored.
streamtrue para sa SSE. Palaging on ang stream_options.include_usage.
max_tokensCap sa completion. Ang prompt + completion ay dapat magkasya sa window na 100,000 token.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nIpinapasa 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_choiceSuportado: 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_formatSuportado 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

LimitasyonValueKapag lumampas
Sabay-sabay na request kada key8429 concurrency
Request kada minuto kada key300429 rate_limit
Context window (prompt + completion)100,000 token400 context_limit — bawasan ang history at ulitin
Pang-araw-araw na gastos kada key (opsyonal)itinakda mo sa keys page402 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:

HeaderKahulugan
X-Request-IdIsipin ito kapag sumulat sa support; ito lang ang iniimbak namin tungkol sa isang request.
X-NoTrack-Balance-USDAng credit mo bago nasingil ang request na ito, sa dolyar.
X-RateLimit-Limit-RequestsBilang ng request kada minuto na pinapayagan para sa key na ito.
X-RateLimit-Limit-ConcurrencyBilang ng sabay-sabay na request na pinapayagan para sa key na ito.
X-NoTrack-Content-FlagSa 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" } }
HTTPtypeAno ang gagawin
400bodyInvalid JSON o walang messages.
400context_limitMasyadong mahaba ang prompt para sa window na 100,000 token. Alisin ang mas lumang mga turn.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextAng 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.
401auth, invalid_key, key_revoked, key_expiredAyusin o palitan ang key.
402no_creditZero na ang balance. Mag-top up; agad magpapatuloy ang mga request.
402key_daily_capNaabot ng key na ito ang daily ceiling na itinakda mo. Itaas ito o hintayin ang 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyTinanggihan at hindi sinisingil. Tingnan ang Content policy.
429rate_limit, concurrencyMagpabagal at ulitin; sundin ang dalawang X-RateLimit-* header.
502upstreamHindi sumagot ang modelo. Ulitin gamit ang backoff; hindi sinisingil.
503billing, safetyMay 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.

Persona — bare model o ang character ng NoTrack

Bawat key ay may style, pinili sa keys page at maaaring palitan anumang oras:

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.

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

Mga Key

Mga tanong o isang request id na susuriin: support · [email protected].