NoTrack API — rujukan
Satu endpoint serasi OpenAI, satu model, satu key. Jika kod anda sudah berkomunikasi dengan /v1/chat/completions, tukar base URL dan key, dan ia akan berkomunikasi dengan kami.
Base URL & pengesahan
Base URL: https://api.notrack.ai/v1
Header: Authorization: Bearer sk-notrack-…
Key dicipta di halaman key. Sesuatu key dipaparkan sekali sahaja, semasa dicipta; kami menyimpan hash-nya dan enam aksara terakhirnya. Hantar hanya melalui HTTPS dan hanya dalam header Authorization — jangan sekali-kali dalam URL.
Semuanya JSON (Content-Type: application/json). Respons menggunakan skema OpenAI, jadi SDK rasmi openai dan setiap klien yang serasi OpenAI berfungsi tanpa perubahan.
Model
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Hanya ada satu model, notrack-uncensored: model kami sendiri, dijalankan pada pelayan GPU kami sendiri. Apa sahaja yang anda hantar sebagai model akan dihalakan kepadanya; gunakan id awamnya supaya log anda sepadan dengan log kami.
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 — bentuk standard, dengan kiraan token sebenar dalam usage (itulah asas pengebilan anda):
{
"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 }
}
System prompt anda mengawal perbualan. Kami menambah tepat satu baris di hadapan — identiti model (bahawa ia adalah notrack-uncensored, dibuat oleh NoTrack) — dan tidak ada apa-apa lagi: tanpa peraturan, tanpa penapis topik. Mesej sistem anda mengikutinya dan menentukan persona, gaya dan selebihnya. Satu-satunya pengecualian ada dalam Dasar kandungan.
Streaming
Tetapkan "stream": true dan baca server-sent events, sama seperti pada OpenAI. Chunk terakhir membawa usage (kami sentiasa memasukkannya, sama ada anda meminta stream_options atau tidak), kemudian 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]
Parameter
| Field | Nota |
|---|---|
messages | Wajib. Peranan system, user, assistant. Teks sahaja buat masa ini — bahagian imej akan ditolak. |
model | Gunakan notrack-uncensored. |
stream | true untuk SSE. stream_options.include_usage sentiasa aktif. |
max_tokens | Had untuk completion. Prompt + completion mesti muat dalam tetingkap 100,000 token. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Dihantar ke model seperti dalam OpenAI. Jika anda tidak menghantar temperature, kami menggunakan 0.85, sama seperti chat kami. n > 1 mendarab kos output. |
tools, tool_choice | Disokong: auto, none, required, atau fungsi bernama. Balasan membawa tool_calls dan finish_reason: "tool_calls"; hantar semula hasilnya sebagai mesej role: "tool". Dengan tool hadir, balasan streaming datang sebagai satu chunk bagi setiap panggilan berbanding token demi token. |
response_format | {"type": "json_object"} disokong (nyatakan dalam prompt JSON jenis apa yang anda mahu). json_schema dan field lama functions tidak disokong. |
Had & header respons
| Had | Nilai | Apabila dilampaui |
|---|---|---|
| Permintaan serentak bagi setiap key | 8 | 429 concurrency |
| Permintaan seminit bagi setiap key | 300 | 429 rate_limit |
| Tetingkap konteks (prompt + completion) | 100,000 token | 400 context_limit — kurangkan sejarah dan cuba lagi |
| Perbelanjaan harian bagi setiap key (pilihan) | ditetapkan oleh anda pada halaman key | 402 key_daily_cap sehingga 00:00 UTC |
Kunci percubaan (sebelum tambah nilai pertama): permintaan serentak — 2, permintaan seminit — 60. Selepas tambah nilai pertama, kunci mendapat had penuh: 8 dan 300.
Setiap respons yang berjaya membawa:
| Header | Maksud |
|---|---|
X-Request-Id | Nyatakan ini semasa menghubungi support; ia satu-satunya perkara yang kami simpan tentang sesuatu permintaan. |
X-NoTrack-Balance-USD | Baki anda sebelum permintaan ini dikenakan bayaran, dalam dolar. |
X-RateLimit-Limit-Requests | Permintaan seminit yang dibenarkan untuk key ini. |
X-RateLimit-Limit-Concurrency | Permintaan selari yang dibenarkan untuk key ini. |
X-NoTrack-Content-Flag | Hanya apabila kandungan ditolak: minor_in_sexual_context atau child_safety. |
Ralat
Ralat adalah JSON dengan type yang stabil; message adalah untuk manusia dan boleh berubah.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
| HTTP | type | Apa yang perlu dilakukan |
|---|---|---|
| 400 | body | JSON tidak sah atau tiada messages. |
| 400 | context_limit | Prompt terlalu panjang untuk tetingkap 100,000 token. Buang giliran yang lebih lama. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Babak itu terbaca sebagai seksual dan satu watak terbaca sebagai bawah umur. Jadikan watak jelas dewasa dan hantar semula; tidak dikenakan bayaran. |
| 401 | auth, invalid_key, key_revoked, key_expired | Betulkan atau gantikan key. |
| 402 | no_credit | Baki adalah sifar. Tambah nilai; permintaan disambung semula dengan segera. |
| 402 | key_daily_cap | Key ini mencapai siling harian yang anda tetapkan. Naikkan siling itu atau tunggu sehingga 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Ditolak dan tidak dikenakan bayaran. Lihat Dasar kandungan. |
| 429 | rate_limit, concurrency | Perlahankan dan cuba lagi; patuhi kedua-dua header X-RateLimit-*. |
| 502 | upstream | Model tidak menjawab. Cuba lagi dengan backoff; tidak dikenakan bayaran. |
| 503 | billing, safety | Salah satu dependency kami sedang down. Cuba lagi dalam beberapa saat; tidak dikenakan bayaran. |
Pengebilan
Baki prabayar, dikenakan bayaran mengikut token berdasarkan usage sebenar setiap respons: $0.15 bagi setiap 1 juta token input, $0.50 bagi setiap 1 juta token output. Input adalah segala yang anda hantar (system prompt, sejarah, mesej baharu); output adalah apa yang ditulis oleh model.
- Key pertama anda disertakan dengan $0.50 baki percuma, sah selama 7 hari — cukup untuk mengintegrasi dan menguji. E-mel yang disahkan diperlukan untuk sesuatu key (di situlah notifikasi "baki hampir habis" akan pergi). Baki berbayar tidak pernah luput.
- Baki tidak luput, tiada subscription dan tiada apa-apa yang diperbaharui secara automatik. Tambah nilai dengan kad atau dalam USDT/USDC pada halaman key.
- Tidak ada bayaran dikenakan untuk permintaan yang ditolak (
4xx) atau gagal (5xx). Sesuatu permintaan dikenakan bayaran sekali sahaja, selepas respons, berdasarkanX-Request-Id-nya. - Baki habis →
402 no_creditsehingga anda menambah nilai. Tetapkan siling harian pada setiap key supaya key yang tersebar tidak boleh menghabiskan akaun. - Kredit tidak boleh dipulangkan kecuali apabila kami tidak dapat menyediakan perkhidmatan kami; ia tidak pernah luput dan boleh digunakan untuk pelan. Lihat Kredit dan pembayaran balik.
Persona — model kosong atau watak NoTrack
Setiap key mempunyai gaya, dipilih pada halaman key dan boleh ditukar pada bila-bila masa:
- Kosong (lalai) — system prompt anda adalah keseluruhan prompt. Kami menambah satu baris identiti dan tidak ada apa-apa lagi.
- Persona NoTrack — watak dan gaya chat pada notrack.ai: terus terang, tidak ditapis, tidak bermoral-moral, menjawab dalam bahasa pengguna. Model sama, harga sama, dasar kandungan sama; hanya prompt di hadapan mesej anda yang berubah. Mesej sistem anda sendiri masih mengikutinya dan boleh menyesuaikannya.
Sesuatu permintaan boleh mengatasi tetapan key, sama ada dengan field atau dengan sufiks model (untuk klien yang hanya boleh menetapkan nama model):
{ "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
Nama persona: notrack (watak biasa), concise, detailed, creative (varian yang sama yang ditawarkan oleh chat), bare. Header respons X-NoTrack-Persona menyatakan mana satu yang digunakan.
Dasar kandungan
Kami tidak menambah sebarang system prompt dan tidak menjalankan penapis topik. Fiksyen dewasa, tema gelap, bahasa kasar, keganasan dalam fiksyen — model menjawab sebagaimana ditulis. Satu peraturan dikuatkuasakan dalam kod dan tidak boleh dimatikan: apa-apa yang bersifat seksual yang melibatkan bawah umur akan ditolak.
403 child_safety— permintaan itu mencari kandungan seksual yang melibatkan kanak-kanak. Ditolak, tidak dikenakan bayaran, direkodkan sebagai kejadian keselamatan.400 minor_in_sexual_context— babak itu bersifat seksual dan satu watak terbaca bawah 18 tahun (umur dinyatakan, latar sekolah, framing "gadis/budak lelaki"). Bukan sekatan kekal: jadikan umur dan framing jelas dewasa dan hantar semula.
403 yang berulang pada sesuatu key membawa kepada penutupan key, kemudian akaun. Teks penuh ada dalam Acceptable Use policy.
Privasi
Prompt dan completion tidak ditulis ke cakera — bukan oleh gateway, bukan oleh pelayan model. Apa yang kami simpan bagi setiap permintaan adalah id permintaan, id key, kiraan token dan harga, kerana itulah asas bil. Penolakan keselamatan direkodkan mengikut kategori, tanpa teksnya. Tidak ada penyedia model pihak ketiga yang pernah melihat trafik anda: model berjalan pada pelayan GPU kami sendiri.
Klien & SDK
Laman web NoTrack dan aplikasi NoTrack adalah chat kami sendiri — kedua-duanya tidak mempunyai field untuk API key dan tidak akan sekali-kali mempunyainya. Sesuatu key adalah untuk program lain: tampalkannya ke dalam salah satu klien di bawah, atau kod anda sendiri.
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 dihidupkan. Kekalkan saiz konteks pada atau di bawah 100,000 token.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, mod OpenAI API Compatible → tampalkan base URL dan key, kemudian tambah notrack-uncensored sebagai model.
NextChat
Settings → hidupkan Custom Endpoint (serasi OpenAI) → base URL dan key, kemudian taip nama model dalam field model.
Cherry Studio
Settings → Model Providers → Add Provider → taip OpenAI → base URL dan key, kemudian "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → hidupkan custom API endpoint, tampalkan base URL dan key, dan tambah model ke dalam senarai model.
Selain itu
LangChain, LlamaIndex, Open WebUI, Continue, tetapan proksi JanitorAI, curl — mana-mana klien dengan pilihan "serasi OpenAI" atau "base URL custom".
Perkataan menu di atas berubah antara versi aplikasi — jika label tidak sepadan tepat, cari tetapan yang menyebut "custom", "OpenAI-compatible", atau "base URL".
Jika klien tidak dapat menyambung
- 401 / "invalid API key" — key tidak pernah sampai. Sahkan klien menghantar
Authorization: Bearer sk-notrack-…dengan key penuh, termasuk prefiks. - 404 / endpoint tidak dikenali — klien tidak konsisten sama ada mereka menambah
/v1sendiri. Jikahttps://api.notrack.ai/v1memberikan 404, cubahttps://api.notrack.aisebagai base URL sebaliknya (atau sebaliknya). - "The Responses API is not supported yet" — sesetengah klien lebih baharu secara lalai menggunakan Responses API milik OpenAI. Kami hanya menyediakan Chat Completions; tukar klien kepada mod itu.
- Senarai model kosong — sesetengah klien hanya mengisinya selepas semakan key yang sah. Taip
notrack-uncensoredsecara manual. - Tidak ada apa-apa berlaku pada klien Ollama / llama.cpp — klien tersebut menggunakan protokol sendiri, bukan serasi OpenAI. Gunakan salah satu klien di atas sebagai gantinya.
Key
- Sehingga 20 key aktif bagi setiap akaun. Berikan setiap aplikasi key sendiri dan siling harian sendiri.
- Tarikh luput pilihan; membatalkan sesuatu key menghentikannya serta-merta dan tidak boleh dibuat asal — keluarkan key baharu sebagai gantinya.
- Halaman key menunjukkan perbelanjaan bagi setiap key, penggunaan terakhir dan jumlah 30 hari akaun.
Soalan atau id permintaan untuk disemak: support · [email protected].