مستنداتراهنمای اتصال

شروع در ۶۰ ثانیه

Sinox یک API سازگار با OpenAI و Anthropic است. هر کدی که با آن‌ها کار می‌کند، با Sinox هم کار می‌کند — فقط آدرس سرور و کلید را عوض کنید. سه قدم:

  1. کلید بگیرید: داشبورد ← کلیدهای API ← «کلید جدید».
  2. آدرس سرور را بگذارید: https://sinoxapi.com/v1 (دقت کنید: با /v1).
  3. یک مدل انتخاب کنید از داشبورد ← مدل‌ها و اولین درخواست را بزنید:
همین بود.
اگر جواب گرفتید، تمام. بقیه‌ی این صفحه فقط جزئیات است: کدام شناسه‌ی مدل، فرمت Anthropic برای Claude Code، چطور حساب می‌شود و اگر خطا گرفتید.

Base URL — آدرس سرور

این تنها جایی است که بیشترین اشتباه رخ می‌دهد، پس دقیق بخوانید. آدرس بسته به کتابخانه‌ای که استفاده می‌کنید فرق دارد:

کتابخانه/ابزارِ OpenAI‑سازگارOpenAI SDK، Cursor، Cline، LangChain، LiteLLM، SillyTavern، NextChat، Hermes…
https://sinoxapi.com/v1
با /v1 در انتها. کتابخانه خودش /chat/completions را اضافه می‌کند.
کتابخانه/ابزارِ AnthropicAnthropic SDK، Claude Code، ANTHROPIC_BASE_URL
https://sinoxapi.com
بدون /v1. این کتابخانه خودش /v1/messages را اضافه می‌کند.
اشتباه رایج (۹۰٪ تیکت‌ها)
✗base_url="https://sinoxapi.com"در OpenAI SDK → خطای 404
✓base_url="https://sinoxapi.com/v1"درست
✗ANTHROPIC_BASE_URL=https://sinoxapi.com/v1در Claude Code → مسیر /v1/v1/messages می‌شود
✓ANTHROPIC_BASE_URL=https://sinoxapi.comدرست

اگر مطمئن نیستید، مسیر کامل را تست کنید — این دو آدرسِ نهایی‌اند که سرور می‌شنود:

POSThttps://sinoxapi.com/v1/chat/completions
POSThttps://sinoxapi.com/v1/messages

کلید API

کلید را از داشبورد ← کلیدهای API بسازید. موقع ساخت، نوع کلید را انتخاب می‌کنید (ریکوستی یا توکنی — همان نوعِ پکیجی که خریده‌اید). کلید فقط یک‌بار نمایش داده می‌شود؛ همان لحظه کپی کنید.

کلید در هدر می‌رود — کتابخانه‌ها خودشان این را می‌گذارند:

کلید را در مرورگر نگذارید
هر کسی که کد فرانت‌اند را ببیند، کلید شما را هم می‌بیند. کلید فقط سمت سرور، ترجیحاً در متغیر محیطی مثل SINOX_API_KEY.
سقف اختیاری برای هر کلید
موقع ساخت کلید می‌توانید سقف مصرف بگذارید (مثلاً ۵۰۰ رکوست یا ۱۰۰٬۰۰۰ توکن) — برای کلیدی که به همکار یا یک پروژه‌ی آزمایشی می‌دهید. از همان‌جا قابل ویرایش/ریست است.

شناسه‌ی مدل‌ها

هر مدل دو شناسه دارد و باید با نوع کلیدتان یکی باشد:

کلید ریکوستیclaude-sonnet-5بدون پیشوند — هر درخواست = ۱ واحد
کلید توکنیt-claude-sonnet-5با پیشوند t- — بر اساس توکن

جابه‌جا بفرستید، خطای billing_type_mismatch (402) می‌گیرید. ساده‌ترین راه: داشبورد ← مدل‌ها، نوع پلن را انتخاب و شناسه را کپی کنید. یا از API:

فهرست فعلی مدل‌های فعال (زنده):

شناسه مدلنام
در حال بارگذاری فهرست مدل‌ها…

فرمت OpenAI — Chat Completions

POSThttps://sinoxapi.com/v1/chat/completions

دقیقاً همان فرمت OpenAI. پارامترهایی که واقعاً لازم دارید:

پارامترنوعتوضیح
model الزامیstringشناسه‌ی مدل، هم‌نوع با کلید (بالا)
messages الزامیarrayآرایه‌ی {role, content}؛ نقش‌ها: system، user، assistant، tool
streambooleanپاسخ تکه‌تکه (SSE) — Streaming
max_tokensintegerسقف خروجی. بیشتر از ۸۰۰۰ بفرستید، بی‌صدا به ۸۰۰۰ محدود می‌شود.
temperaturefloat۰ تا ۲ — پیش‌فرض ۱
tools / tool_choicearrayFunction calling طبق استاندارد OpenAI — پشتیبانی می‌شود
response_formatobjectمثلاً {"type":"json_object"} — به مدل پاس داده می‌شود

سایر پارامترهای استاندارد OpenAI (top_p، stop، presence_penalty…) عیناً به مدل پاس داده می‌شوند.

شکل پاسخ

json

Streaming — پاسخ تکه‌تکه

stream: true بگذارید؛ پاسخ به‌صورت SSE (data: …) می‌آید و با data: [DONE] تمام می‌شود. کتابخانه‌ها خودشان پارس می‌کنند:

چند نکته
• اگر وسط پاسخ قطع کنید، فقط همان مقداری که دریافت کرده‌اید حساب می‌شود.
• آخرین چانک، usage را هم دارد.
• برای درخواست‌های خیلی بزرگ، اولین بایت ممکن است تا ~۲ دقیقه طول بکشد (زمان آماده‌سازی کانتکست) — تایم‌اوت کلاینت را کم نگذارید.

فرمت Anthropic (Claude)

POSThttps://sinoxapi.com/v1/messages

برای ابزارهایی که «Anthropic‑native» هستند (Claude Code، Anthropic SDK). فقط مدل‌های claude-* از این مسیر قابل استفاده‌اند. یادآوری: اینجا Base URL بدون /v1 است.

Streaming، system، tools، tool_result و بلاک‌های thinking همگی پشتیبانی می‌شوند — دقیقاً مثل Anthropic.

Claude Code

سه متغیر محیطی کافی است. چون Claude Code کانتکست بزرگ می‌فرستد، پکیج توکنی (شناسه‌ی t-) مناسب‌تر است.

تنظیمات
Base URLhttps://sinoxapi.com
کلیدYOUR_API_KEY
مدلt-claude-sonnet-5
Base URL اینجا بدون /v1 است.
اگر Claude Code خطای 401 داد
یعنی به‌جای کلید Sinox، لاگین قبلی Anthropic فعال است. یک‌بار claude logout بزنید یا ANTHROPIC_API_KEY قدیمی را پاک کنید.

Cursor

پلن رایگان Cursor کلید شخصی را قبول نمی‌کند.
از دی ۱۴۰۴ (ژانویه ۲۰۲۶) Cursor استفاده از کلید API شخصی (BYOK) را فقط برای پلن Pro به بالا باز گذاشته. اگر با پلن Hobby/رایگان خطای Free plans can only use Auto می‌گیرید، از سمت Sinox نیست؛ یا Cursor Pro بگیرید یا از Cline / Roo Code / Continue (داخل خودِ Cursor یا VS Code، رایگان و با همه‌ی مدل‌ها) یا Claude Code استفاده کنید.

Settings ← Models ← بخش OpenAI API Key:

تنظیمات
OpenAI API KeyYOUR_API_KEY
Override OpenAI Base URLhttps://sinoxapi.com/v1
Model (Add model)claude-sonnet-5
بعد از وارد کردن، دکمه‌ی Verify را بزنید. مدل را با «+ Add model» با همان شناسه‌ی Sinox اضافه کنید.

Cline / Continue / Roo Code

در همه‌ی این افزونه‌ها یک Provider از نوع OpenAI Compatible بسازید:

تنظیمات
API ProviderOpenAI Compatible
Base URLhttps://sinoxapi.com/v1
API KeyYOUR_API_KEY
Model IDclaude-sonnet-5
yaml

OpenAI SDK (Python / JS)

همان کدِ بخش شروع. فقط دو خط فرق دارد: base_url و api_key. برای متغیر محیطی:

bash

مدل تصمیم‌گیری Jev — /v1/decisions

Jev مدل چت نیست. یک «وضعیت» (state) می‌گیرد و به چند سؤالِ تایپ‌شده با احتمال جواب می‌دهد: noul (بله/خیر با احتمال ۰ تا ۱)، choice (انتخاب از چند گزینه با احتمال هر گزینه) و score (یک سطح از یک مقیاس مرتب). مناسب مسیریابی تیکت، دسته‌بندی، فیلتر و گیت‌های تصمیم داخل نرم‌افزار؛ پاسخ در کسری از ثانیه می‌آید و JSON آماده است، بدون پرامپت‌نویسی و پارس کردن.

شناسه‌ی مدل: jev-1.13 برای کلید ریکوستی (هر فراخوانی یک ریکوست) و t-jev-1.13 برای کلید توکنی (فقط نصفِ توکن‌های ورودی از سهمیه کم می‌شود؛ خروجی رایگان است). چند سؤال در یک درخواست، هم‌زمان روی همان state جواب داده می‌شود. حداکثر کانتکست ۳۲ هزار توکن.

bash

نمونه‌ی پاسخ:

json

state می‌تواند رشته، آبجکت یا آرایه باشد (مثلاً کل رکورد سفارش). criteria در choice آبجکتِ گزینه→توضیح، در score آرایه‌ی سطح‌ها از کم به زیاد (۲ تا ۱۰ سطح)، و در noul اختیاری است ({"true": "…", "false": "…"}). این مدل روی /v1/chat/completions کار نمی‌کند و خطای راهنما می‌دهد.

LangChain / LlamaIndex / LiteLLM

SillyTavern / NextChat / Open WebUI

SillyTavern
APIChat Completion → Custom (OpenAI-compatible)
Custom Endpointhttps://sinoxapi.com/v1
API KeyYOUR_API_KEY
Modelclaude-sonnet-5
NextChat
Endpoint (Custom)https://sinoxapi.com
API KeyYOUR_API_KEY
Custom Modelsclaude-sonnet-5,claude-opus-5
NextChat خودش /v1 را اضافه می‌کند — اینجا بدون /v1.
Open WebUI
OpenAI API Base URLhttps://sinoxapi.com/v1
API KeyYOUR_API_KEY

Hermes Agent

در نسخه‌های جدید Hermes حتماً provider: custom (گزینه‌ی «Custom endpoint» در hermes model) را انتخاب کنید؛ گزینه‌ی «OpenAI» به مسیر /v1/responses می‌رود و ۴۰۴ می‌گیرد. بعد از تغییر تنظیمات، Hermes را ری‌استارت کنید.

افزونه‌ی وردپرس Sinox AI

افزونه‌ی Sinox AI تولید مقاله، متای سئو (Rank Math / Yoast) و alt تصاویر را مستقیم داخل وردپرس انجام می‌دهد. نسخه‌ی اول در حال آماده‌سازی است؛ این بخش با انتشار افزونه کامل می‌شود.

نصب و اتصال (۳ قدم)
۱) فایل zip افزونه را از پیشخوان → افزونه‌ها → افزودن نصب و فعال کنید. ۲) در منوی «Sinox AI» روی اتصال به Sinox بزنید؛ به صفحه‌ی ورود Sinox می‌روید (اگر حساب ندارید همان‌جا ثبت‌نام کنید). ۳) اشتراک توکنی‌تان را انتخاب و تأیید کنید؛ خودکار به وردپرس برمی‌گردید و کلید ساخته می‌شود. کلید فقط برای همان سایت و فقط برای تولید متن کار می‌کند و سقف روزانه‌اش را از داشبورد → کلیدهای API تنظیم می‌کنید.
پکیج توکنیتوصیه‌شده برای افزونه. یک مقاله‌ی ۱۵۰۰ کلمه‌ای ≈ ۱۵ تا ۲۵ هزار توکن (۶ تا ۸ درخواست).
پکیج ریکوستیهر مقاله ≈ ۶ تا ۸ ریکوست. امبدینگ (embeddings) با هر دو نوع کلید کار می‌کند و یک‌دهم قیمت مدل‌های متنی است: هر فراخوانی یک‌دهم ریکوست، یا یک‌دهم توکن‌های ورودی.

هاست شما به Sinox وصل نمی‌شود؟ اگر «بررسی اتصال» افزونه خطای cURL 7/28 یا DNS داد، هاست دسترسی خروجی HTTPS به sinoxapi.com را بسته است. اول آدرس داخلی https://sinox.babaii.ir را در تنظیمات افزونه امتحان کنید؛ اگر باز هم نشد، این متن را برای پشتیبانی هاست بفرستید: «لطفاً دسترسی خروجی HTTPS (پورت 443) از سایت من به دامنه‌های sinoxapi.com و sinox.babaii.ir را باز کنید.»

برای توسعه‌دهندگان — همان جریان اتصال را هر افزونه یا اپ دیگری هم می‌تواند استفاده کند:

تغییرات افزونه‌ی وردپرس

فهرست کامل تغییرات هر نسخه در فایل readme.txt داخل افزونه و در تب «پیشرفته» → «درباره» خود افزونه نمایش داده می‌شود. آخرین نسخه: ۱.۳.۱ — embeddings با هر دو نوع کلید (یک‌دهم قیمت)، ایده‌ها و پیشنهاد عنوان، تخمین هزینه و بازبینی سرفصل‌ها قبل از نوشتن، بازبینی هوشمند محتوا، ویراستاری فارسی، پروفایل برند و قالب‌های پرامپت، دسترسی نقش‌ها و سقف روزانه، اعلان و گزارش ماهانه، تنظیمات تب‌بندی‌شده، به‌روزرسانی خودکار از sinoxapi.com. دانلود: sinox-ai-1.3.0.zip · صفحه‌ی معرفی: /wordpress

نحوه‌ی شمارش مصرف

پکیج ریکوستیهر درخواستِ موفق = ۱ واحد، فارغ از طول متن. درخواست ناموفق (خطای سرور) حساب نمی‌شود.
پکیج توکنیورودی + خروجی، به توکن. شفاف و قابل پیش‌بینی — جزئیات پایین.

توکن ورودی = کلِ چیزی که در هر درخواست می‌فرستید: پیام‌ها، system، تعریف ابزارها و نتیجه‌ی ابزارها (tool_result). ابزارهای agentic (مثل Claude Code) در هر مرحله کلِ گفتگو را دوباره می‌فرستند؛ به همین دلیل مصرفشان زیاد است — این رفتار خودِ ابزار است، نه Sinox.

توکن خروجی = متنی که مدل تولید کرده (شامل بلاک‌های thinking و tool_use). اگر وسط streaming قطع کنید، فقط همان مقدارِ دریافت‌شده حساب می‌شود.

شمارش سمت Sinox و مستقل از سرور بالادستی انجام می‌شود؛ مقدار دقیق هر درخواست را در داشبورد ← لاگ مصرف می‌بینید. مقدار usage در پاسخ، برای اطلاع شماست.

کمتر مصرف کنید
• تاریخچه‌ی گفتگو را کوتاه نگه دارید (پیام‌های قدیمی را خلاصه کنید).
• max_tokens را متناسب با نیاز بگذارید.
• برای کارهای ساده مدل ارزان‌تر انتخاب کنید (Flash / Mini).

سقف‌ها و محدودیت‌ها

موردمقدار
حداکثر max_tokens۸٬۰۰۰ (مقدار بیشتر بی‌صدا محدود می‌شود)
حداکثر اندازه‌ی ورودیحدود ۴۰۰٬۰۰۰ کاراکتر متن — بیشتر از آن خطای 400
تایم‌اوت اولین بایت۲۰ ثانیه برای درخواست‌های عادی تا ۱۵۰ ثانیه برای ورودی‌های خیلی بزرگ؛ پس از آن به‌طور خودکار مسیر جایگزین امتحان می‌شود
تایم‌اوت کل۱۸۰ ثانیه سکوت در streaming / ۱۲۰ ثانیه بدون stream
تعداد کلید فعال هر حساب۲۰
سقف اختیاری هر کلیدقابل تنظیم موقع ساخت کلید (رکوست یا توکن)؛ با رسیدن به سقف، خطای 402 با کد key_limit_reached

کدهای خطا و راه‌حل

خطاها به فرمت استاندارد برمی‌گردند ({"error":{"message","type","code"}} برای OpenAI و {"type":"error","error":{…}} برای Anthropic). پیام‌ها فارسی و راهنما هستند.

کدیعنیچه کنم؟
401کلید نامعتبر یا حذف‌شدهکلید را از داشبورد چک کنید؛ پیشوند Bearer جا نیفتاده باشد؛ کلید با فاصله/خط جدید کپی نشده باشد.
402سهمیه تمام/منقضی، یا نوع کلید با مدل نمی‌خواند (billing_type_mismatch)، یا سقفِ کلید پر شده (key_limit_reached)پکیج را تمدید کنید؛ شناسه‌ی هم‌نوع با کلید بفرستید (t- برای توکنی)؛ سقف کلید را از داشبورد ریست/ویرایش کنید.
400پارامتر نامعتبر یا ورودی خیلی بزرگmodel، messages و (در فرمت Anthropic) max_tokens را چک کنید؛ متن را کوتاه کنید.
404مدل وجود ندارد، یا مسیر اشتباه استشناسه را از داشبورد ← مدل‌ها کپی کنید. اگر کلِ درخواست 404 است، تقریباً همیشه Base URL بدون /v1 است.
429درخواست‌های هم‌زمان زیادکمی صبر کنید و با backoff نمایی دوباره بفرستید.
503 / 504 / 529همه‌ی مسیرهای مدل موقتاً در دسترس نیستندچند ثانیه بعد دوباره تلاش کنید یا مدل مشابه دیگری بفرستید. برای این خطاها چیزی از سهمیه کم نمی‌شود. وضعیت زنده: /health
هنوز حل نشد؟
از داشبورد ← تیکت پیام بدهید و این سه چیز را بنویسید: مدل، ساعت دقیق، و متن کامل خطا. آدم واقعی جواب می‌دهد.

سوالات متداول

کد قبلی‌ام با OpenAI کار می‌کرد؛ چی را عوض کنم؟
فقط دو چیز: base_url را https://sinoxapi.com/v1 بگذارید و api_key را کلید Sinox. اسم مدل را هم از داشبورد بردارید.
ریکوستی بخرم یا توکنی؟
چت‌های کوتاه و اپ‌های معمولی → ریکوستی (هر درخواست ۱ واحد، قابل پیش‌بینی). ابزارهای agentic (Claude Code، Cursor، Cline) و کانتکست‌های بزرگ → توکنی.
چرا 404 می‌گیرم؟
۹۰٪ مواقع Base URL بدون /v1 است (در ابزارهای OpenAI‑سازگار). ۱۰٪ بقیه: شناسه‌ی مدل غلط.
چرا billing_type_mismatch؟
کلیدتان یک نوع است و شناسه‌ی مدل نوع دیگر. کلید توکنی ← فقط t-…؛ کلید ریکوستی ← بدون پیشوند.
می‌توانم چند کلید داشته باشم؟
بله، تا ۲۰ کلید فعال. برای هر کلید می‌توانید سقف مصرف جدا بگذارید.
آیا Function calling / JSON mode / Vision پشتیبانی می‌شود؟
بله — هر چیزی که مدل بالادستی پشتیبانی کند، عیناً پاس داده می‌شود (tools، response_format، تصویر در content).
پاسخ‌ها لاگ می‌شوند؟
فقط شمارش (مدل، تعداد توکن، زمان، وضعیت). متن درخواست و پاسخ ذخیره نمی‌شود.