مرجع No Restrictions 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، لذا تعمل SDKs الرسمية لـ openai وأي عميل متوافق مع OpenAI دون أي تغيير.
الموديلات
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
يوجد موديل واحد فقط، notrack-uncensored: نسختنا المرافقة الخاصة، تعمل على عتادنا الخاص. أي قيمة ترسلها في model تُوجَّه إليه؛ استخدم المعرّف العام حتى تطابق سجلاتك سجلاتنا.
إكمالات المحادثة
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
}
الاستجابة — الشكل القياسي، مع عدد رموز (tokens) حقيقي في 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 }
}
system prompt الخاص بك هو الذي يتحكم في المحادثة. نضيف سطرًا واحدًا فقط في المقدمة — هوية الموديل (أنه notrack-uncensored، من إنتاج No Restrictions) — ولا شيء آخر: لا قواعد، لا فلترة مواضيع. رسالة النظام (system message) الخاصة بك تأتي بعده وتحدد الشخصية والأسلوب وكل ما تبقى. الاستثناء الوحيد موجود في سياسة المحتوى.
البث
فعّل "stream": true واقرأ أحداث server-sent، بالضبط كما مع OpenAI. تحمل القطعة (chunk) الأخيرة 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 | حد أقصى للإكمال. يجب أن يتسع الـ prompt + الإكمال ضمن نافذة 64,000 رمزًا (token). |
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". مع وجود أدوات (tools) يصل الرد المبثوث كقطعة واحدة لكل استدعاء، لا رمزًا برمز. |
response_format | {"type": "json_object"} مدعوم (اذكر شكل JSON الذي تريده في الـ prompt). json_schema والحقل القديم functions غير مدعومَين. |
الحدود وترويسات الاستجابة
| الحد | القيمة | عند التجاوز |
|---|---|---|
| الطلبات المتزامنة لكل مفتاح | 8 | 429 concurrency |
| الطلبات في الدقيقة لكل مفتاح | 300 | 429 rate_limit |
| نافذة السياق (prompt + إكمال) | 64,000 رمزًا | 400 context_limit — قصّ السجل التاريخي وأعد المحاولة |
| الصرف اليومي لكل مفتاح (اختياري) | يحدده أنت على صفحة المفاتيح | 402 key_daily_cap حتى الساعة 00:00 UTC |
كل استجابة ناجحة تحمل:
| الترويسة | المعنى |
|---|---|
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 aiwithnorestrictions.com/api-keys" } }
| HTTP | type | ما يجب فعله |
|---|---|---|
| 400 | body | JSON غير صالح أو لا يوجد messages. |
| 400 | context_limit | الـ prompt أطول من أن يتسع في نافذة 64,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.25 لكل مليون رمز إدخال، $1.00 لكل مليون رمز إخراج. الإدخال هو كل ما ترسله (system prompt، السجل، الرسالة الجديدة)؛ الإخراج هو ما يكتبه الموديل.
- يأتي أول مفتاح لك برصيد مجاني $0.50، صالح لمدة 7 يومًا — كافٍ للدمج والاختبار. يلزم بريد إلكتروني مؤكَّد للحصول على مفتاح (إليه تُرسل تنبيهات "الرصيد ينتهي"). الرصيد المدفوع لا تنتهي صلاحيته أبدًا.
- الرصيد لا تنتهي صلاحيته، ولا يوجد اشتراك، ولا شيء يتجدد بنفسه. أعد الشحن ببطاقة أو بـ USDT/USDC على صفحة المفاتيح؛ يمكن استرداد الرصيد غير المستخدم خلال 14 يومًا.
- لا يُحتسب أي شيء على الطلبات المرفوضة (
4xx) أو الفاشلة (5xx). يُحتسب الطلب مرة واحدة فقط، بعد الاستجابة، بالاستناد إلىX-Request-Idالخاص به. - ينتهي الرصيد ←
402 no_creditحتى تعيد الشحن. حدد سقفًا يوميًا لكل مفتاح حتى لا يستنزف مفتاح مسرَّب الحساب.
الشخصية — الموديل العاري أو شخصية No Restrictions
لكل مفتاح أسلوب، يُختار على صفحة المفاتيح ويمكن تبديله في أي وقت:
- خام (الافتراضي) — system prompt الخاص بك هو الـ prompt بأكمله. نضيف سطرًا واحدًا للهوية ولا شيء آخر.
- شخصية No Restrictions — شخصية وأسلوب المحادثة على aiwithnorestrictions.com: مباشر، غير مصفّى، بلا وعظ، يجيب بلغة المستخدم. نفس الموديل، نفس السعر، نفس سياسة المحتوى؛ يتغيّر فقط الـ prompt الذي يسبق رسائلك. رسالة النظام الخاصة بك لا تزال تأتي بعده وتستطيع تعديله.
يمكن لطلب أن يتجاوز إعداد المفتاح، إما بحقل أو بلاحقة على اسم الموديل (للعملاء الذين لا يمكنهم ضبط سوى اسم الموديل):
{ "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 تحدد أيّها طُبِّق.
سياسة المحتوى
لا نضيف system prompt ولا نشغّل أي فلتر مواضيع. الخيال للبالغين، المواضيع الحالكة، اللغة القوية، العنف في الخيال — يجيب الموديل كما كُتب. قاعدة واحدة مطبَّقة في الكود ولا يمكن تعطيلها: أي محتوى جنسي يتعلق بقاصر يُرفض.
403 child_safety— طلب سعى إلى محتوى جنسي يتعلق بطفل. مرفوض، غير محتسَب، ومسجَّل كحدث أمان.400 minor_in_sexual_context— المشهد جنسي وشخصية تُقرأ على أنها تحت 18 عامًا (عمر مذكور، سياق مدرسي، وصف "فتاة/فتى"). ليس حظرًا: اجعل الأعمار والسياق بالغَين بلا غموض وأعد الإرسال.
تكرار 403 على مفتاح يؤدي إلى إغلاق المفتاح، ثم الحساب. النص الكامل في سياسة الاستخدام المقبول.
الخصوصية
لا تُكتب الـ prompts والإكمالات على القرص — لا من طرف البوابة ولا من طرف خوادم الموديل. ما نحتفظ به لكل طلب هو معرّف الطلب، ومعرّف المفتاح، وعدّادات الرموز والسعر، لأن ذلك هو الفاتورة. تُسجَّل حالات رفض الأمان بحسب الفئة، دون النص. لا يرى أي مزوّد موديل خارجي حركة بياناتك مطلقًا: يعمل الموديل على عتاد نستأجره ونتحكم فيه.
العملاء و SDKs
موقع No Restrictions وتطبيق No Restrictions هما محادثتنا الخاصة — لا يحتويان على حقل لمفتاح 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. البث مفعّل. حافظ على حجم السياق عند 64,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، curl — أي عميل لديه خيار "OpenAI-compatible" أو "custom base URL".
صياغة القوائم أعلاه تختلف بين إصدارات التطبيقات — إذا لم يطابق التسمية بدقة، ابحث عن أي إعداد يذكر "custom" أو "OpenAI-compatible" أو "base URL".
إذا لم يتصل العميل
- 401 / "invalid API key" — المفتاح لم يصل أبدًا. تأكد من أن العميل يرسل
Authorization: Bearer sk-notrack-…بالمفتاح كاملًا، بما فيه البادئة (prefix). - 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 يومًا.
أسئلة أو معرّف طلب لمراجعته: الدعم · [email protected].