مستندات و مرجع کامل API سابیار
تمامی قابلیتهای هوشمند سابیار را با چند خط کد در برنامهها، رباتها و خط لولههای خود ادغام کنید. شامل دریافت مدلهای هوش مصنوعی، قالبها و لحنهای ترجمه، ارسال فایل و شروع جاب ترجمه، مکالمات چت تعاملی و ابزارهای اصلاح RTL.
آدرس پایه سرویس (Base URL)
تمام درخواستها باید به نشانی زیر ارسال شوند:
احراز هویت سریع (X-API-Key)
کلید امن خود را در هدر درخواست قرار دهید:
فرمت پاسخها (JSON Response)
کلیه پاسخها دارای کدهای HTTP استاندارد و فرمت یکپارچه JSON هستند.
مدلها و سرویسدهندگان (AI Models)
دریافت فهرست مدلهای در دسترس (Google Gemini, OpenRouter, Claude, GPT و ...) جهت انتخاب در ترجمه و مکالمات.
پیش از ارسال جاب یا شروع مکالمه، با این اندپوینت میتوانید لیست مدلهای مجاز را دریافت کرده و در فیلد model قرار دهید.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| refresh (query) | boolean | اختیاری | بروزرسانی فوری کش سرور (پیشفرض: false) |
curl -X GET "https://subyar.com/api/providers/" \
-H "X-API-Key: sub_live_your_api_key_here"{
"providers": [
{
"id": "gemini",
"name": "Google Gemini",
"supports_model_selection": true,
"models": [
{
"id": "gemini-2.5-flash",
"name": "Gemini 2.5 Flash (پر سرعت و بهینه)"
},
{
"id": "gemini-2.5-pro",
"name": "Gemini 2.5 Pro (بالاترین کیفیت ادبی)"
}
]
},
{
"id": "openrouter",
"name": "OpenRouter",
"supports_model_selection": true,
"models": [
{
"id": "anthropic/claude-3.5-sonnet",
"name": "Claude 3.5 Sonnet"
},
{
"id": "openai/gpt-4o",
"name": "GPT-4o"
},
{
"id": "meta-llama/llama-3.3-70b-instruct",
"name": "Llama 3.3 70B"
}
]
}
]
}در صورتی که نمیخواهید کاربر مدل خاصی انتخاب کند، از مقدار بازگشتی این اندپوینت به عنوان پیشفرض استفاده کنید.
curl -X GET "https://subyar.com/api/providers/default-selection" \
-H "X-API-Key: sub_live_your_api_key_here"{
"selection": {
"provider_id": "gemini",
"model_id": "gemini-2.5-flash"
}
}قالبها و پرامپتها (Templates)
مدیریت قالبهای ترجمه، لحنها، پرامپتهای تخصصی (فیلم، مستند، انیمه) و گلاسری کلمات اختصاصی.
شناسه id هر قالب را میتوانید هنگام ایجاد جاب یا شروع مکالمه در فیلد template_id پاس دهید تا ترجمه با پرامپت و لحن آن قالب انجام شود.
curl -X GET "https://subyar.com/api/templates/" \
-H "X-API-Key: sub_live_your_api_key_here"{
"templates": [
{
"id": "b45a0b7c-1234-4567-8901-abcdef123456",
"name_en": "Anime & Animation (Casual)",
"name_fa": "انیمه و انیمیشن (لحن محاورهای جوانانه)",
"is_builtin": true,
"description_fa": "مناسب دیالوگهای پرهیجان، حفظ اصطلاحات ژاپنی و نگارش روان",
"values": {
"content.source_lang": "en",
"content.target_lang": "fa",
"tone": "casual",
"system_prompt": "Translate subtitles naturally for anime fans..."
},
"created_at": "2026-01-01T00:00:00Z"
},
{
"id": "c98e1f2a-5678-4321-9876-fedcba654321",
"name_en": "Documentary (Formal)",
"name_fa": "مستند و فیلم تاریخی (لحن رسمی و فاخر)",
"is_builtin": true,
"description_fa": "واژهگزینی دقیق و ادبی برای مستندهای علمی و تاریخی",
"values": {
"content.source_lang": "en",
"content.target_lang": "fa",
"tone": "formal"
},
"created_at": "2026-01-01T00:00:00Z"
}
]
}یک قالب جدید در دیتابیس ثبت میکند که در تمام جابها و مکالمات کاربر در دسترس خواهد بود.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| name_fa | string | اجباری | نام قالب به فارسی |
| name_en | string | اجباری | نام قالب به انگلیسی |
| description_fa | string | اختیاری | توضیحات اختیاری فارسی |
| values | object | اختیاری | تنظیمات پرامپت، لحن و واژهنامه |
curl -X POST "https://subyar.com/api/templates/" \
-H "X-API-Key: sub_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name_fa": "سریالهای سیتکام طنز",
"name_en": "Comedy Sitcoms",
"description_fa": "حفظ شوخیها و اصطلاحات طنز",
"values": { "tone": "humorous" }
}'{
"id": "d12e3456-789a-bcde-f012-3456789abcde",
"name_fa": "سریالهای سیتکام طنز",
"name_en": "Comedy Sitcoms",
"is_builtin": false,
"values": {
"tone": "humorous"
},
"created_at": "2026-09-13T09:00:00Z"
}خط لوله ترجمه زیرنویس (Jobs)
ارسال فایل زیرنویس با قالب و مدل دلخواه، تخمین هزینه، دریافت وضعیت زنده و دانلود نتیجه.
فایل ورودی (SRT, ASS, VTT, DOCX, TXT) را دریافت کرده و یک جاب در صف ترجمه هوشمند ثبت میکند. میتوانید مدل و قالب انتخابی را در فیلد job_options تعیین کنید.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| file | File | اجباری | فایل زیرنویس (SRT, ASS, VTT, DOCX, TXT) |
| ai_provider | string | اختیاری | سرویسدهنده (پیشفرض: gemini یا openrouter) |
| job_options | string (JSON) | اختیاری | تنظیمات مدل و قالب: {"model": "gemini-2.5-flash", "template_id": "..."} |
| content_spec | string (JSON) | اختیاری | زبان مبدأ و مقصد: {"conversation_settings": {"source_language": "en", "target_language": "fa"}} |
| user_note | string | اختیاری | یادداشت یا دستور تکمیلی برای هوش مصنوعی (اختیاری) |
curl -X POST "https://subyar.com/api/jobs/" \
-H "X-API-Key: sub_live_your_api_key_here" \
-F "file=@episode_01.srt" \
-F "ai_provider=gemini" \
-F 'job_options={"model": "gemini-2.5-flash", "template_id": "b45a0b7c-..."}' \
-F 'content_spec={"conversation_settings": {"source_language": "en", "target_language": "fa"}}'{
"id": "550e8400-e29b-41d4-a716-446655440000",
"source_filename": "episode_01.srt",
"status": "pending",
"total_lines": 480,
"translated_lines": 0,
"progress_percentage": 0,
"ai_provider": "gemini",
"created_at": "2026-09-13T09:10:00Z"
}فایل زیرنویس را بدون ایجاد جاب آنالیز کرده و تعداد کلمات و امکان ترجمه با موجودی فعلی حساب را برمیگرداند.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| file | File | اجباری | فایل زیرنویس ورودی |
curl -X POST "https://subyar.com/api/jobs/estimate" \
-H "X-API-Key: sub_live_your_api_key_here" \
-F "file=@episode_01.srt"{
"total_lines": 480,
"total_words": 3410,
"estimated_tokens": 4950,
"can_afford": true,
"user_words_remaining": 50000
}در فواصل ۲ تا ۵ ثانیهای این اندپوینت را فراخوانی کنید تا زمانی که status برابر با completed یا failed شود.
curl -X GET "https://subyar.com/api/jobs/550e8400-e29b-41d4-a716-446655440000" \
-H "X-API-Key: sub_live_your_api_key_here"{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "translating",
"progress_percentage": 65,
"total_lines": 480,
"translated_lines": 312,
"source_filename": "episode_01.srt",
"created_at": "2026-09-13T09:10:00Z",
"completed_at": null
}متن هر خط را به همراه تایمکد شروع، پایان، متن مبدأ و متن ترجمهشده بازمیگرداند؛ مناسب رندر در وب یا اپلیکیشن.
curl -X GET "https://subyar.com/api/jobs/550e8400-e29b-41d4-a716-446655440000/preview" \
-H "X-API-Key: sub_live_your_api_key_here"{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"total_events": 480,
"events": [
{
"index": 1,
"start": "00:00:01.50",
"end": "00:00:04.20",
"original": "Welcome to Subyar AI platform!",
"translated": "به پلتفرم هوش مصنوعی سابیار خوش آمدید!"
}
]
}پس از تکمیل جاب، فایل خروجی را به صورت استریم با هدر Content-Disposition دانلود کنید.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| format (query) | string | اختیاری | تبدیل فرمت به srt یا ass (اختیاری) |
curl -O -J "https://subyar.com/api/jobs/550e8400-e29b-41d4-a716-446655440000/download?format=srt" \
-H "X-API-Key: sub_live_your_api_key_here"1
00:00:01,500 --> 00:00:04,200
به پلتفرم هوش مصنوعی سابیار خوش آمدید!
2
...مکالمات و چت هوشمند زیرنویس (Conversations)
گفتگوی تعاملی با هوش مصنوعی برای ترجمه خط به خط، اعمال ویرایشهای درجا (In-Chat Copilot) و اصلاح لحن با پرامپت متنی.
لیست گفتگوها شامل شناسه، عنوان، تعداد پیامها و تاریخ ایجاد را بازمیگرداند.
curl -X GET "https://subyar.com/api/conversations/" \
-H "X-API-Key: sub_live_your_api_key_here"[
{
"id": "conv_123456",
"title": "ترجمه سریال فرندز - فصل ۱",
"message_count": 8,
"settings": {
"provider": "gemini",
"model": "gemini-2.5-flash"
},
"created_at": "2026-09-13T07:30:00Z"
}
]یک گفتگوی جدید ایجاد کرده و شناسه آن را بازمیگرداند تا پیامها و فایلها را در آن ارسال کنید.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| title | string | اختیاری | عنوان گفتگو (اختیاری) |
curl -X POST "https://subyar.com/api/conversations/" \
-H "X-API-Key: sub_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"title": "ترجمه انیمه اتک آن تایتان"}'{
"id": "conv_abcdef",
"title": "ترجمه انیمه اتک آن تایتان",
"message_count": 0,
"settings": {},
"created_at": "2026-09-13T09:15:00Z"
}اگر فایل ارسال شود، ترجمه جاب در بستر گفتگو کلید میخورد. اگر پیام متنی ارسال شود (مثلاً «لحن خط ۲۰ را دوستانهتر کن»)، دستیار هوشمند Copilot خطوط مربوطه را اصلاح میکند.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| content | string | اختیاری | متن پیام یا دستور بازنویسی |
| model_id | string | اختیاری | شناسه مدل انتخابی |
| template_id | string | اختیاری | شناسه قالب ترجمه انتخابی |
| file | File | اختیاری | فایل زیرنویس برای ترجمه (اختیاری) |
curl -X POST "https://subyar.com/api/conversations/conv_abcdef/messages" \
-H "X-API-Key: sub_live_your_api_key_here" \
-F "content=لطفاً تیکهکلامها را عامیانهتر ترجمه کن" \
-F "model_id=gemini-2.5-flash"[
{
"id": "msg_user_1",
"role": "user",
"content": "لطفاً تیکهکلامها را عامیانهتر ترجمه کن",
"created_at": "2026-09-13T09:16:00Z"
},
{
"id": "msg_ai_2",
"role": "assistant",
"content": "ویرایش هوشمند با موفقیت روی خطوط مورد نظر اعمال شد.",
"file": {
"type": "copilot_edit",
"status": "completed",
"summary": "لحن خطوط عامیانه و روان گردید."
},
"created_at": "2026-09-13T09:16:02Z"
}
]جعبه ابزار زیرنویس (Subtitle Tools)
اصلاح جهت متن و رفع وارونگی حروف فارسی (RTL Fix) و تبدیل فایلهای SRT به استایلهای جذاب ASS.
فایل زیرنویس SRT یا ASS را دریافت کرده و فایل اصلاحشده بدون کوچکترین تغییر در تایمینگها به صورت دانلود بازمیگرداند.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| file | File | اجباری | فایل زیرنویس SRT یا ASS |
curl -X POST "https://subyar.com/api/tools/rtl-fix" \
-H "X-API-Key: sub_live_your_api_key_here" \
-F "file=@unfixed.srt" \
--output "fixed.srt"[Fixed subtitle file binary stream]یک تسک پسزمینه ایجاد کرده و شناسه job_id را بازمیگرداند تا فایل نهایی را دریافت کنید.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| srt_file | File | اجباری | فایل SRT ورودی |
| tone | string | اختیاری | تم استایل (anime, modern, cinema) |
curl -X POST "https://subyar.com/api/tools/srt-to-ass" \
-H "X-API-Key: sub_live_your_api_key_here" \
-F "srt_file=@input.srt" \
-F "tone=anime"{
"job_id": "srt2ass-98124-abc",
"status": "processing",
"message": "Conversion job dispatched"
}کلیدهای API توسعهدهندگان (API Keys)
ایجاد، دریافت لیست، فعال/غیرفعال کردن و ابطال کلیدهای API جهت احراز هویت برنامهنویسی در هدر X-API-Key.
رشته کامل secret_key تنها یک بار در این پاسخ نمایش داده میشود و در دیتابیس به شکل هش SHA-256 ذخیره میگردد.
پارامترهای درخواست
| نام | نوع | وضعیت | توضیحات |
|---|---|---|---|
| name | string | اجباری | نام اختیاری برای شناسایی کلید |
| scopes | string[] | اختیاری | مجوزهای مجاز کلید (مثلاً ['jobs:read', 'game:read', 'studio:read'] یا ['*']) |
| expires_in_days | number | اختیاری | مدت اعتبار به روز (پیشفرض: نامحدود) |
curl -X POST "https://subyar.com/api/api-keys/" \
-H "Authorization: Bearer <YOUR_JWT_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"name": "My Translation Bot", "expires_in_days": 90}'{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "My Translation Bot",
"key_prefix": "sub_live_a1b2c3...",
"scopes": [
"*"
],
"is_active": true,
"expires_at": "2026-12-12T08:00:00Z",
"created_at": "2026-09-13T09:00:00Z",
"secret_key": "sub_live_a1b2c3d4e5f678901234567890abcdef"
}جهت مانیتورینگ کلیدها در پروفایل یا اسکریپتهای مدیریت دسترسی.
curl -X GET "https://subyar.com/api/api-keys/" \
-H "Authorization: Bearer <YOUR_JWT_TOKEN>"{
"keys": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "My Translation Bot",
"key_prefix": "sub_live_a1b2c3...",
"scopes": [
"*"
],
"is_active": true,
"last_used_at": "2026-09-13T09:12:00Z",
"expires_at": null,
"created_at": "2026-09-13T09:00:00Z"
}
],
"total": 1
}پس از ارسال این درخواست، کلید مربوطه فوراً از کار میافتد و دیگر برای احراز هویت پذیرفته نخواهد شد.
curl -X DELETE "https://subyar.com/api/api-keys/3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer <YOUR_JWT_TOKEN>"{
"status": "ok",
"deleted": true,
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}حساب کاربری و سهمیهها (Account & Quota)
بررسی مشخصات حساب کاربری، سهمیه کلمات باقیمانده و تاریخ انقضای پلن فعال.
هم با توکن JWT و هم با هدر X-API-Key قابل استفاده است.
curl -X GET "https://subyar.com/api/users/profile" \
-H "X-API-Key: sub_live_your_api_key_here"{
"id": "usr_123456",
"email": "developer@example.com",
"username": "subyar_dev",
"is_active": true,
"is_premium": true,
"phone_verified": true,
"created_at": "2026-01-01T00:00:00Z"
}پیش از ارسال ترجمه فایلهای سنگین، موجودی words_remaining را با این اندپوینت بررسی کنید.
curl -X GET "https://subyar.com/api/plans/entitlements" \
-H "X-API-Key: sub_live_your_api_key_here"{
"plan_name": "Pro Monthly",
"words_limit": 150000,
"words_used": 42000,
"words_remaining": 108000,
"expires_at": "2026-10-15T00:00:00Z",
"is_active": true
}