Uncensored Tools API — tài liệu tham khảo
Một endpoint tương thích OpenAI, một model, một key. Nếu code của bạn đã nói chuyện với /v1/chat/completions, chỉ cần đổi base URL và key, nó sẽ nói chuyện với chúng tôi.
Base URL & xác thực
Base URL: https://api.uncensoredaitools.com/v1
Header: Authorization: Bearer sk-…
Key được tạo tại trang key. Key chỉ hiển thị một lần, khi tạo; chúng tôi lưu hash của nó và sáu ký tự cuối. Chỉ gửi key qua HTTPS và chỉ trong header Authorization — không bao giờ đặt trong URL.
Mọi thứ đều là JSON (Content-Type: application/json). Phản hồi dùng schema của OpenAI, nên các SDK chính thức của openai và mọi client tương thích OpenAI hoạt động mà không cần thay đổi gì.
Model
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Chỉ có một model, notrack-uncensored: model riêng của chúng tôi, chạy trên máy chủ GPU riêng của chúng tôi. Bất kể bạn gửi gì làm model, nó đều được định tuyến đến model này; hãy dùng id công khai để log của bạn khớp với log của chúng tôi.
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
}
Phản hồi — cấu trúc chuẩn, với số token thực trong usage (đây là thứ bạn bị tính tiền):
{
"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 của bạn kiểm soát cuộc trò chuyện. Chúng tôi chỉ thêm đúng một dòng ở đầu — nhận diện model (rằng đó là notrack-uncensored, do Uncensored Tools tạo ra) — và không gì khác: không quy tắc, không bộ lọc chủ đề. System message của bạn theo sau nó và quyết định persona, phong cách và mọi thứ còn lại. Ngoại lệ duy nhất nằm ở Chính sách nội dung.
Streaming
Đặt "stream": true và đọc server-sent event, giống hệt như OpenAI. Đoạn cuối cùng mang usage (chúng tôi luôn kèm theo, bất kể bạn có yêu cầu stream_options hay không), sau đó là 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]
Tham số
| Trường | Ghi chú |
|---|---|
messages | Bắt buộc. Vai trò system, user, assistant. Hiện chỉ hỗ trợ văn bản — các phần hình ảnh sẽ bị từ chối. |
model | Dùng notrack-uncensored. |
stream | true cho SSE. stream_options.include_usage luôn được bật. |
max_tokens | Giới hạn cho completion. Prompt + completion phải nằm trong cửa sổ 100,000 token. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Được chuyển đến model như trong OpenAI. Nếu bạn không gửi temperature, chúng tôi dùng 0.85, giống như chat của chúng tôi. n > 1 sẽ nhân chi phí đầu ra. |
tools, tool_choice | Hỗ trợ: auto, none, required, hoặc một hàm được đặt tên. Phản hồi mang tool_calls và finish_reason: "tool_calls"; gửi kết quả trở lại dưới dạng message role: "tool". Khi có tools, phản hồi dạng stream sẽ đến thành một đoạn cho mỗi lần gọi, không phải từng token. |
response_format | {"type": "json_object"} được hỗ trợ (nói rõ JSON bạn muốn trong prompt). json_schema và trường cũ functions không được hỗ trợ. |
Giới hạn & header phản hồi
| Giới hạn | Giá trị | Khi vượt quá |
|---|---|---|
| Số request đồng thời mỗi key | 8 | 429 concurrency |
| Số request mỗi phút mỗi key | 300 | 429 rate_limit |
| Context window (prompt + completion) | 100,000 token | 400 context_limit — cắt lịch sử và thử lại |
| Chi tiêu hàng ngày mỗi key (tùy chọn) | do bạn đặt trên trang key | 402 key_daily_cap đến 00:00 UTC |
Khóa dùng thử (trước lần nạp đầu tiên): yêu cầu đồng thời — 2, yêu cầu mỗi phút — 60. Sau lần nạp đầu tiên, khóa được nhận giới hạn đầy đủ: 8 và 300.
Mỗi phản hồi thành công mang theo:
| Header | Ý nghĩa |
|---|---|
X-Request-Id | Trích dẫn khi liên hệ hỗ trợ; đây là thứ duy nhất chúng tôi lưu về một request. |
X-NoTrack-Balance-USD | Số dư của bạn trước khi request này bị trừ tiền, tính bằng đô la. |
X-RateLimit-Limit-Requests | Số request mỗi phút được phép cho key này. |
X-RateLimit-Limit-Concurrency | Số request song song được phép cho key này. |
X-NoTrack-Content-Flag | Chỉ khi bị từ chối nội dung: minor_in_sexual_context hoặc child_safety. |
Lỗi
Lỗi là JSON với type cố định; message dành cho con người và có thể thay đổi.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at uncensoredaitools.com/api-keys" } }
| HTTP | type | Việc cần làm |
|---|---|---|
| 400 | body | JSON không hợp lệ hoặc thiếu messages. |
| 400 | context_limit | Prompt quá dài cho cửa sổ 100,000 token. Bỏ các lượt hội thoại cũ hơn. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Cảnh này đọc như mang tính khiêu dâm và một nhân vật đọc như là trẻ vị thành niên. Hãy làm cho các nhân vật rõ ràng là người trưởng thành không mập mờ và gửi lại; không bị tính tiền. |
| 401 | auth, invalid_key, key_revoked, key_expired | Sửa hoặc thay key. |
| 402 | no_credit | Số dư bằng không. Nạp tiền; request sẽ tiếp tục ngay lập tức. |
| 402 | key_daily_cap | Key này đã đạt trần chi tiêu hàng ngày mà bạn đặt. Tăng trần hoặc chờ đến 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Bị từ chối và không bị tính tiền. Xem Chính sách nội dung. |
| 429 | rate_limit, concurrency | Giảm tốc và thử lại; tuân theo cả hai header X-RateLimit-*. |
| 502 | upstream | Model không trả lời. Thử lại với backoff; không bị tính tiền. |
| 503 | billing, safety | Một dịch vụ phụ thuộc của chúng tôi đang gặp sự cố. Thử lại sau vài giây; không bị tính tiền. |
Thanh toán
Tín dụng trả trước, được tính theo token dựa trên usage thực của mỗi phản hồi: $0.15 cho mỗi 1 triệu token đầu vào, $0.50 cho mỗi 1 triệu token đầu ra. Đầu vào là mọi thứ bạn gửi (system prompt, lịch sử, message mới); đầu ra là những gì model viết ra.
- Key đầu tiên của bạn đi kèm $0.50 tín dụng miễn phí, có hiệu lực 7 ngày — đủ để tích hợp và thử nghiệm. Cần một email đã xác nhận để tạo key (đây là nơi thông báo "tín dụng sắp hết" được gửi đến). Tín dụng đã trả tiền không bao giờ hết hạn.
- Tín dụng không hết hạn, không có subscription và không có gì tự động gia hạn. Nạp tiền bằng thẻ hoặc bằng USDT/USDC trên trang key.
- Không tính phí cho các request bị từ chối (
4xx) hoặc thất bại (5xx). Một request chỉ bị tính phí một lần, sau khi có phản hồi, dựa trênX-Request-Idcủa nó. - Khi hết số dư →
402 no_creditcho đến khi bạn nạp thêm. Đặt trần chi tiêu hàng ngày cho mỗi key để một key bị lộ không thể rút cạn tài khoản. - Tín dụng không được hoàn lại trừ khi chúng tôi không thể cung cấp dịch vụ; chúng không bao giờ hết hạn và có thể được áp dụng cho một gói dịch vụ. Xem Tín dụng và hoàn tiền.
Persona — model thuần hoặc nhân vật của Uncensored Tools
Mỗi key có một phong cách, được chọn trên trang key và có thể chuyển đổi bất cứ lúc nào:
- Thuần (mặc định) — system prompt của bạn là toàn bộ prompt. Chúng tôi chỉ thêm một dòng nhận diện và không gì khác.
- Persona Uncensored Tools — nhân vật và phong cách của chat trên uncensoredaitools.com: trực tiếp, không lọc, không lên lớp đạo đức, trả lời bằng ngôn ngữ của người dùng. Cùng model, cùng giá, cùng chính sách nội dung; chỉ có prompt đặt trước message của bạn thay đổi. System message riêng của bạn vẫn theo sau nó và có thể điều chỉnh nó.
Một request có thể ghi đè cài đặt của key, bằng một trường hoặc bằng hậu tố tên model (cho các client chỉ có thể đặt tên 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
Tên persona: notrack (nhân vật đơn giản), concise, detailed, creative (các biến thể giống như chat cung cấp), bare. Header phản hồi X-NoTrack-Persona cho biết loại nào đã được áp dụng.
Chính sách nội dung
Chúng tôi không thêm system prompt nào và không chạy bộ lọc chủ đề nào. Tiểu thuyết dành cho người lớn, chủ đề đen tối, ngôn ngữ mạnh, bạo lực trong hư cấu — model trả lời đúng như được viết. Có một quy tắc được thực thi trong code và không thể tắt: mọi nội dung khiêu dâm liên quan đến trẻ vị thành niên đều bị từ chối.
403 child_safety— request tìm kiếm nội dung khiêu dâm liên quan đến trẻ em. Bị từ chối, không bị tính tiền, được ghi lại như một sự cố an toàn.400 minor_in_sexual_context— cảnh mang tính khiêu dâm và một nhân vật đọc như dưới 18 tuổi (tuổi được nêu, bối cảnh trường học, cách gọi "cô bé/chàng trai"). Không phải là lệnh cấm: hãy làm cho tuổi và bối cảnh rõ ràng là người trưởng thành và gửi lại.
Việc lặp lại 403 trên một key sẽ dẫn đến việc khóa key đó, rồi khóa tài khoản. Toàn văn nằm trong Chính sách Sử dụng Được phép.
Quyền riêng tư
Prompt và completion không được ghi vào đĩa — không phải bởi gateway, không phải bởi các máy chủ model. Những gì chúng tôi lưu cho mỗi request là request id, key id, số lượng token và giá, vì đó là hóa đơn. Các lần từ chối vì lý do an toàn được ghi lại theo danh mục, không kèm văn bản. Không nhà cung cấp model bên thứ ba nào từng thấy lưu lượng của bạn: model chạy trên các máy chủ GPU của chính chúng tôi.
Client & SDK
Website Uncensored Tools và app Uncensored Tools là chat riêng của chúng tôi — chúng không có trường nhập API key và sẽ không bao giờ có. Key dành cho các chương trình khác: dán nó vào một trong các client dưới đây, hoặc vào code của riêng bạn.
Python
from openai import OpenAI
client = OpenAI(base_url="https://api.uncensoredaitools.com/v1", api_key="sk-…")
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.uncensoredaitools.com/v1", apiKey: process.env.API_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.uncensoredaitools.com/v1 → Custom API Key → Connect → Model notrack-uncensored. Bật Streaming. Giữ kích thước context ở mức bằng hoặc thấp hơn 100,000 token.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, mode OpenAI API Compatible → dán base URL và key, sau đó thêm notrack-uncensored làm model.
NextChat
Settings → bật Custom Endpoint (tương thích OpenAI) → base URL và key, sau đó gõ tên model vào trường model.
Cherry Studio
Settings → Model Providers → Add Provider → gõ OpenAI → base URL và key, sau đó "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → bật custom API endpoint, dán base URL và key, và thêm model vào danh sách model.
Thứ khác
LangChain, LlamaIndex, Open WebUI, Continue, cài đặt proxy của JanitorAI, curl — bất kỳ client nào có tùy chọn "OpenAI-compatible" hoặc "custom base URL".
Cách diễn đạt menu ở trên thay đổi giữa các phiên bản app — nếu một nhãn không khớp chính xác, hãy tìm cài đặt nào đề cập đến "custom", "OpenAI-compatible", hoặc "base URL".
Nếu một client không kết nối được
- 401 / "invalid API key" — key chưa bao giờ đến được. Xác nhận client gửi
Authorization: Bearer sk-…với toàn bộ key, bao gồm cả tiền tố. - 404 / endpoint không xác định — các client không đồng nhất về việc có tự thêm
/v1hay không. Nếuhttps://api.uncensoredaitools.com/v1trả về 404, hãy thửhttps://api.uncensoredaitools.comlàm base URL thay thế (hoặc ngược lại). - "The Responses API is not supported yet" — một số client mới hơn mặc định dùng Responses API của OpenAI. Chúng tôi chỉ hỗ trợ Chat Completions; hãy chuyển client sang chế độ đó.
- Danh sách model trống — một số client chỉ điền vào sau khi kiểm tra key hợp lệ. Gõ
notrack-uncensoredvào bằng tay. - Không có gì xảy ra trong client Ollama / llama.cpp — những client này dùng giao thức riêng, không tương thích OpenAI. Hãy dùng một trong các client trên thay thế.
Key
- Tối đa 20 key hoạt động cho mỗi tài khoản. Cho mỗi app một key riêng và một trần chi tiêu hàng ngày riêng.
- Ngày hết hạn tùy chọn; hủy một key sẽ dừng nó ngay lập tức và không thể hoàn tác — hãy tạo một key mới thay thế.
- Trang key hiển thị chi tiêu theo từng key, lần sử dụng gần nhất và tổng 30 ngày của tài khoản.
Câu hỏi hoặc request id cần xem xét: hỗ trợ · uncensoredaitools.com/support.