NoTrack API — справочник
Една крайна точка, съвместима с OpenAI, един модел, един ключ. Ако кодът ви вече говори с /v1/chat/completions, смените базовия URL и ключа, и той ще говори с нас.
Базов URL и удостоверяване
Base URL: https://api.notrack.ai/v1
Header: Authorization: Bearer sk-notrack-…
Ключовете се създават на страницата с ключове. Ключ се показва само веднъж, при създаването; ние пазим хеш и последните му шест символа. Изпращайте го само през HTTPS и само в заглавката Authorization — никога в URL.
Всичко е JSON (Content-Type: application/json). Отговорите използват схемата на OpenAI, така че официалните openai SDK и всеки съвместим с OpenAI клиент работят без промяна.
Модели
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Има само един модел, notrack-uncensored: нашият собствен модел, обслужван на наши собствени GPU сървъри. Каквото подадете като model, се насочва към него; използвайте публичния id, за да съвпадат вашите логове с нашите.
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
}
Отговор — стандартната форма, с реален брой токени в usage (върху него се начислява таксата):
{
"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 }
}
Вашият системен промпт управлява разговора. Добавяме точно един ред отпред — идентичността на модела (че е notrack-uncensored, направен от NoTrack) — и нищо друго: без правила, без филтър по тема. Вашето системно съобщение следва след него и определя персона, стил и всичко останало. Единственото изключение е в Политика за съдържание.
Поточно предаване
Задайте "stream": true и четете server-sent events, точно както при OpenAI. Последният откъс носи usage (винаги го включваме, независимо дали сте поискали stream_options), след което 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]
Параметри
| Поле | Бележки |
|---|---|
messages | Задължително. Роли system, user, assistant. Само текст засега — частите с изображения се отхвърлят. |
model | Използвайте notrack-uncensored. |
stream | true за SSE. stream_options.include_usage е винаги включено. |
max_tokens | Таван за завършването. Промпт + завършване трябва да се вместят в прозорец от 100,000 токени. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Предава се към модела както при OpenAI. Ако не изпратите temperature, използваме 0.85, същото както в нашия чат. n > 1 умножава цената на изхода. |
tools, tool_choice | Поддържа се: auto, none, required, или именувана функция. Отговорът носи tool_calls и finish_reason: "tool_calls"; изпратете резултата обратно като съобщение role: "tool". При наличие на инструменти поточен отговор пристига като по един откъс за всяко извикване, а не токен по токен. |
response_format | {"type": "json_object"} се поддържа (кажете какъв JSON искате в промпта). json_schema и старото поле functions не се поддържат. |
Лимити и заглавки на отговора
| Лимит | Стойност | При превишаване |
|---|---|---|
| Едновременни заявки на ключ | 8 | 429 concurrency |
| Заявки в минута на ключ | 300 | 429 rate_limit |
| Контекстен прозорец (промпт + завършване) | 100,000 токени | 400 context_limit — съкратете историята и опитайте отново |
| Дневен разход на ключ (по избор) | зададено от вас на страницата с ключове | 402 key_daily_cap до 00:00 UTC |
Пробни ключове (до първото зареждане): едновременни заявки — 2, заявки в минута — 60. След първото зареждане ключът получава пълните лимити: 8 и 300.
Всеки успешен отговор носи:
| Заглавка | Значение |
|---|---|
X-Request-Id | Посочвайте го при писане до поддръжката; това е единственото, което пазим за заявка. |
X-NoTrack-Balance-USD | Вашият кредит преди тази заявка беше таксувана, в долари. |
X-RateLimit-Limit-Requests | Заявки в минута, разрешени за този ключ. |
X-RateLimit-Limit-Concurrency | Паралелни заявки, разрешени за този ключ. |
X-NoTrack-Content-Flag | Само при отказ поради съдържание: minor_in_sexual_context или child_safety. |
Грешки
Грешките са JSON със стабилен type; message е за хора и може да се променя.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
| HTTP | type | Какво да направите |
|---|---|---|
| 400 | body | Невалиден JSON или няма messages. |
| 400 | context_limit | Промптът е твърде дълъг за прозореца от 100,000 токени. Премахнете по-стари реплики. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Сцената се възприема като сексуална, а един от героите — като непълнолетен. Направете героите категорично пълнолетни и изпратете отново; не се таксува. |
| 401 | auth, invalid_key, key_revoked, key_expired | Поправете или заменете ключа. |
| 402 | no_credit | Балансът е нулев. Заредете; заявките се възобновяват веднага. |
| 402 | key_daily_cap | Този ключ достигна дневния таван, който сте зададили. Повишете го или изчакайте до 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Отказано и не се таксува. Вижте Политика за съдържание. |
| 429 | rate_limit, concurrency | Изчакайте и опитайте отново; спазвайте двете заглавки X-RateLimit-*. |
| 502 | upstream | Моделът не отговори. Опитайте отново с нарастващо изчакване; не се таксува. |
| 503 | billing, safety | Една от нашите зависимости не работи. Опитайте отново след няколко секунди; не се таксува. |
Таксуване
Предплатен кредит, таксуван на токен въз основа на реалния usage на всеки отговор: $0.15 на 1M входни токени, $0.50 на 1M изходни токени. Входът е всичко, което изпращате (системен промпт, история, новото съобщение); изходът е това, което пише моделът.
- Първият ви ключ идва с $0.50 безплатен кредит, валиден 7 дни — достатъчно за интеграция и тестване. Необходим е потвърден имейл за ключ (там пристига "кредитът привършва"). Платеният кредит никога не изтича.
- Кредитът не изтича, няма абонамент и нищо не се обновява само. Заредете с карта или в USDT/USDC на страницата с ключове.
- Нищо не се таксува за отказани заявки (
4xx) или неуспешни (5xx). Заявка се таксува веднъж, след отговора, по нейнияX-Request-Id. - Балансът свършва →
402 no_credit, докато го заредите. Задайте дневен таван на всеки ключ, за да не може изтекъл ключ да изчерпи сметката. - Кредитите не се възстановяват, освен когато не можем да предоставим услугата си; те никога не изтичат и могат да бъдат приложени към план. Вижте Кредити и възстановяване.
Персона — гол модел или персонажът на NoTrack
Всеки ключ има стил, избран на страницата с ключове и превключваем във всеки момент:
- Чист (по подразбиране) — вашият системен промпт е целият промпт. Добавяме един ред идентичност и нищо друго.
- Персона на NoTrack — характерът и стилът на чата на notrack.ai: директен, нефилтриран, без морализаторство, отговаря на езика на потребителя. Същият модел, същата цена, същата политика за съдържание; сменя се само промптът пред вашите съобщения. Вашето собствено системно съобщение продължава да следва след него и може да го коригира.
Заявка може да замести настройката на ключа, било с поле, било със суфикс към името на модела (за клиенти, които могат да задават само име на модел):
{ "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
Имена на персони: notrack (обикновеният персонаж), concise, detailed, creative (същите варианти, които предлага чатът), bare. Заглавката на отговора X-NoTrack-Persona показва кой е приложен.
Политика за съдържание
Не добавяме системен промпт и не пускаме филтър по теми. Художествена литература за възрастни, тъмни теми, силен език, насилие в художествен текст — моделът отговаря така, както е написано. Едно правило се прилага в кода и не може да бъде изключено: всяко сексуално съдържание с непълнолетен се отказва.
403 child_safety— заявката е търсила сексуално съдържание с дете. Отказано, не се таксува, регистрирано като инцидент за сигурност.400 minor_in_sexual_context— сцената е сексуална и герой изглежда под 18 години (посочена възраст, училищна обстановка, назоваване "момиче/момче"). Не е забрана: направете възрастта и обстановката категорично пълнолетни и изпратете отново.
Повтарящи се 403 на ключ водят до затваряне първо на ключа, после на сметката. Пълният текст е в Политика за допустимо използване.
Поверителност
Промптовете и завършванията не се записват на диск — нито от gateway, нито от серверите на модела. Това, което пазим за заявка, е id на заявката, id на ключа, брой токени и цена, защото това е сметката. Отказите по сигурност се регистрират по категория, без текста. Никой външен доставчик на модел не вижда трафика ви: моделът работи на наши собствени GPU сървъри.
Клиенти и SDK
Уебсайтът на NoTrack и приложението на NoTrack са нашият собствен чат — те нямат поле за API ключ и никога няма да имат. Ключ е за друг програми: поставете го в един от клиентите по-долу или в собствения си код.
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 включено. Дръжте размера на контекста на 100,000 токени или по-малко.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, режим OpenAI API Compatible → поставете базовия URL и ключа, след което добавете notrack-uncensored като модел.
NextChat
Settings → включете Custom Endpoint (съвместим с OpenAI) → базов URL и ключ, след което напишете името на модела в полето за модел.
Cherry Studio
Settings → Model Providers → Add Provider → напишете OpenAI → базов URL и ключ, след което "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → включете custom API endpoint, поставете базовия URL и ключа, и добавете модела в списъка с модели.
Всичко останало
LangChain, LlamaIndex, Open WebUI, Continue, настройки на JanitorAI proxy, curl — всеки клиент с опция "OpenAI-compatible" или "custom base URL".
Формулировките на менютата по-горе се различават между версиите на приложенията — ако етикетът не съвпада точно, търсете настройка, която споменава "custom", "OpenAI-compatible" или "base URL".
Ако клиентът не се свързва
- 401 / "invalid API key" — ключът никога не е пристигнал. Проверете дали клиентът изпраща
Authorization: Bearer sk-notrack-…с целия ключ, включително префикса. - 404 / непозната крайна точка — клиентите не са единодушни дали сами добавят
/v1. Акоhttps://api.notrack.ai/v1дава 404, опитайтеhttps://api.notrack.aiкато базов URL вместо това (или обратното). - "The Responses API is not supported yet" — някои по-нови клиенти по подразбиране използват Responses API на OpenAI. Ние обслужваме само Chat Completions; превключете клиента на този режим.
- Празен списък с модели — някои клиенти го попълват само след валидна проверка на ключ. Въведете
notrack-uncensoredръчно. - Нищо не се случва в клиент за Ollama / llama.cpp — те говорят собствен протокол, несъвместим с OpenAI. Използвайте вместо това един от клиентите по-горе.
Ключове
- До 20 активни ключа на сметка. Дайте на всяко приложение собствен ключ и собствен дневен таван.
- По избор дата на изтичане; отнемането на ключ го спира веднага и не може да бъде отменено — издайте нов вместо това.
- Страницата с ключове показва разход по ключ, последна употреба и 30-дневните обороти на сметката.
Въпроси или id на заявка за проверка: поддръжка · [email protected].