مستندات API نابغه فایل

همه‌ی امکانات پنل نابغه فایل — فایل‌ها، لینک‌ها، صفحه‌ی اختصاصی، خرید فضا، همگام‌سازی، بکاپ و پردازش هوشمند فایل‌ها با هوش مصنوعی — از طریق یک REST API ساده.

Base URL: https://nabeghefile.ir · نسخه‌ی 1.5.0 · OpenAPI 3.1 (برای Postman / Swagger)

شروع سریع

  1. کد ورود بگیرید: POST /panel/api/v1/auth/otp/request با {"phone": "09..."}
  2. کد را تأیید کنید و توکن بگیرید: POST /panel/api/v1/auth/otp/verify → token
  3. در همه‌ی درخواست‌ها هدر Authorization: Bearer <token> را بفرستید.
BASE=https://nabeghefile.ir
curl -X POST "$BASE/panel/api/v1/auth/otp/request" -H "Content-Type: application/json" -d '{"phone":"09121234567"}'
TOKEN=$(curl -s -X POST "$BASE/panel/api/v1/auth/otp/verify" -H "Content-Type: application/json" \
  -d '{"phone":"09121234567","code":"123456"}' | jq -r .token)
curl "$BASE/panel/api/v1/files" -H "Authorization: Bearer $TOKEN"

همه‌ی پاسخ‌ها JSON هستند و فیلد ok دارند. در خطا، msg یک پیام فارسیِ قابل نمایش به کاربر است.

احراز هویت

نوع توکناز کجااعتبارکاربرد
JWT اپورود با کد یک‌بارمصرف (بالا)۳۰ روزاپ موبایل، وب‌سایت‌ها و همه‌ی endpointها
توکن همگام‌سازیپنل ← همگام‌سازی دسکتاپتا ساخت توکن جدیداسکریپت‌ها و سرورها: همگام‌سازی، پردازش هوشمند، کیف‌پول، دانلود
توکن بکاپپنل ← بکاپ‌گیری خودکارتا ساخت توکن جدیدفقط آپلود بکاپ

کنار هر endpoint نوع توکن قابل قبول آن نوشته شده. توکن را مثل رمز عبور نگه دارید؛ اگر لو رفت از همان صفحه‌ی پنل توکن جدید بسازید تا قبلی باطل شود.

خطاها

{"ok": false, "msg": "موجودی کیف‌پول هوش مصنوعی کافی نیست (حداقل ۳٬۰۰۰ تومان).", "code": "insufficient_balance"}
HTTPcodeمعنی
401—توکن ندارد، نامعتبر یا منقضی است
400invalid_paramsپارامتر نامعتبر یا ناشناخته
400unsupported_file_typeاین عملیات برای نوع این فایل نیست
400file_encryptedفایل رمزنگاری‌شده سمت سرور قابل پردازش نیست
400file_too_largeحجم فایل بیشتر از سقف پردازش است
401unauthorizedتوکن ندارد، نامعتبر یا منقضی است
400invalid_sizeانتقال مستقیم: حجم فایل ارسال نشده یا نامعتبر است
400quota_exceededانتقال مستقیم: فضای کافی نیست
403invalid_tokenانتقال مستقیم: توکن آپلود نامعتبر یا منقضی است
403purpose_not_allowedانتقال مستقیم: purpose برای این نوع توکن مجاز نیست
409upload_not_foundانتقال مستقیم: فایل روی سرور ذخیره‌سازی پیدا نشد (قدم ۲ انجام نشده یا ناموفق بوده)
503direct_unavailableسرور انتقال موقتاً در دسترس نیست — از مسیر پشتیبان (fallback) استفاده کنید
402insufficient_balanceموجودی کیف‌پول هوش مصنوعی کافی نیست
404file_not_foundفایل وجود ندارد یا متعلق به شما نیست
404unknown_operationعملیات وجود ندارد یا غیرفعال است
404job_not_foundپردازش وجود ندارد یا متعلق به شما نیست
409job_finishedپردازش تمام شده و قابل لغو نیست
429too_many_active_jobsسقف پردازش هم‌زمان پر است
429daily_free_limitسقف پردازش‌های رایگان امروز پر است
503processing_disabledپردازش هوشمند موقتاً غیرفعال است
503engine_not_configuredموتور هوش مصنوعی هنوز راه‌اندازی نشده

فیلد code در endpointهای پردازش هوشمند همیشه هست و پایدار است — منطق برنامه‌تان را روی code بنویسید، نه روی متن msg.

راهنمای پردازش هوشمند

هر پردازش روی یکی از فایل‌های خود کاربر انجام می‌شود و نتیجه‌اش هم در پاسخ API و هم به‌صورت فایل در فضای کاربر ذخیره می‌شود. روند کار:

  1. GET /processing/operations — عملیات، پارامترها و قیمت‌های لحظه‌ای را بخوانید.
  2. POST /files/{file_id}/process — پردازش را در صف بگذارید (پاسخ فوری 201).
  3. GET /processing/jobs/{job_id} را هر ۲ تا ۵ ثانیه بخوانید تا status یکی از succeeded، failed یا canceled شود.
  4. نتیجه در result و فایل‌های ساخته‌شده در outputs[].download_url (با همان توکن قابل دانلود).
پول کاربر امن است: هنگام ثبت پردازش هیچ مبلغی کسر نمی‌شود. قیمت دقیق (مثلاً بر اساس مدت واقعی صوت، گردشده به بالا تا دقیقه‌ی کامل) درست قبل از مرحله‌ی پولی کسر می‌شود و اگر پردازش به هر دلیلی ناموفق یا لغو شود، کل مبلغ خودکار به کیف‌پول برمی‌گردد. همه‌ی حرکت‌ها در GET /ai/wallet قابل مشاهده‌اند.
# ۱) ثبت پردازش: تبدیل گفتار به متن + زیرنویس
JOB=$(curl -s -X POST "$BASE/panel/api/v1/files/42/process" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d '{"operation":"media_transcribe","params":{"language":"fa"}}' | jq -r .job.id)
# ۲) پیگیری تا پایان
while :; do R=$(curl -s "$BASE/panel/api/v1/processing/jobs/$JOB" -H "Authorization: Bearer $TOKEN")
  S=$(echo "$R" | jq -r .job.status); echo "$S $(echo "$R" | jq -r .job.progress)%"
  [ "$S" = queued ] || [ "$S" = running ] || break; sleep 3; done
# ۳) نتیجه و دانلود زیرنویس
echo "$R" | jq '.job.result.text, .job.outputs'

عملیات فعال (لحظه‌ای)

operationعملیاتفایل‌هاپارامترهاقیمت (تومان)خروجی
image_describeتوصیف هوشمند تصویرimage
language (fa | en | ar | tr | de | fr | es | ru) پیش‌فرض: fa
300 شرح، متن جایگزین (alt) و برچسب‌ها
image_ocrاستخراج متن از تصویر (OCR)image
save_txt پیش‌فرض: True
300 متن استخراج‌شده + فایل .txt
image_convertتبدیل فرمت تصویرimage
format (jpg | png | webp) پیش‌فرض: webp
quality 1–100 پیش‌فرض: 85
رایگان فایل تصویرِ جدید
image_resizeتغییر اندازه تصویرimage
max_width 16–8000 پیش‌فرض: 1280
max_height 16–8000 پیش‌فرض: 1280
رایگان فایل تصویرِ تغییر اندازه‌یافته
image_compressفشرده‌سازی تصویرimage
quality 1–100 پیش‌فرض: 75
رایگان تصویرِ کم‌حجم‌شده
media_transcribeتبدیل گفتار به متن + زیرنویسaudio، video
language (auto | fa | en | ar | tr | de | fr | es | ru) پیش‌فرض: auto
3,000 هر دقیقه (حداقل 1,500) متن کامل + فایل زیرنویس .srt + فایل .txt
media_summarizeخلاصه‌ی هوشمند صوت و ویدیوaudio، video
language (auto | fa | en | ar | tr | de | fr | es | ru) پیش‌فرض: auto
summary_language (fa | en | ar | tr | de | fr | es | ru) پیش‌فرض: fa
3,000 هر دقیقه + 500 (حداقل 2,000) خلاصه، نکات کلیدی، متن کامل و زیرنویس
video_thumbnailساخت تصویر کاور ویدیوvideo
at_percent 0–99 پیش‌فرض: 10
رایگان تصویر JPG
media_extract_audioجداسازی صدا از ویدیوvideo
bitrate (64k | 128k | 192k) پیش‌فرض: 128k
رایگان فایل MP3
video_convertتبدیل و کم‌حجم‌کردن ویدیوvideo
resolution (480p | 720p) پیش‌فرض: 720p
300 هر دقیقه (حداقل 300) ویدیوی MP4
doc_summarizeخلاصه‌ی هوشمند سندdocument
summary_language (fa | en | ar | tr | de | fr | es | ru) پیش‌فرض: fa
40 هر ۱۰۰۰ کاراکتر + 300 (حداقل 300) خلاصه و نکات کلیدی
doc_translateترجمه‌ی سندdocument
target_language (fa | en | ar | tr | de | fr | es | ru) پیش‌فرض: fa
120 هر ۱۰۰۰ کاراکتر + 300 (حداقل 500) فایل متنیِ ترجمه‌شده

محدودیت‌ها: حداکثر حجم ورودی 500 مگابایت · صوت/ویدیو تا 90 دقیقه · تبدیل ویدیو تا 10 دقیقه و 300 مگابایت · اسناد تا 120,000 کاراکتر · 5 پردازش هم‌زمان · 50 پردازش رایگان در روز. فایل‌های رمزنگاری‌شده سمت سرور قابل پردازش نیستند.

احراز هویت

ورود بدون رمز با کد یک‌بارمصرف و دریافت توکن JWT.

POST/panel/api/v1/auth/otp/request

درخواست کد ورود

یک کد ۶ رقمی به موبایل (پیامک) یا ایمیل می‌فرستد. کد ۲ دقیقه اعتبار دارد و بین دو درخواست برای یک شماره حداقل ۶۰ ثانیه فاصله لازم است.

احراز هویت: بدون نیاز به توکن

بدنه: application/json

فیلدنوعتوضیح
phonestring
emailstring
{
  "phone": "09121234567"
}
پاسخشرح
200کد ارسال شد
400ورودی نامعتبر یا ارسال پیاپی (فیلد wait = ثانیه‌ی باقی‌مانده)
POST/panel/api/v1/auth/otp/verify

تأیید کد و دریافت توکن

اگر کد درست باشد یک توکن JWT با اعتبار ۳۰ روز برمی‌گرداند؛ اولین ورود موفق، حساب را خودکار می‌سازد. توکن را در هدر Authorization: Bearer بفرستید.

احراز هویت: بدون نیاز به توکن

بدنه: application/json

فیلدنوعتوضیح
phonestring
emailstring
codestring
{
  "code": "123456",
  "phone": "09121234567"
}
پاسخشرح
200ورود موفق
400کد اشتباه/منقضی یا ورودی ناقص

انتقال مستقیم (پیشنهادی)

اولویت اول آپلود و دانلود: بایت‌های فایل مستقیم با سرور انتقال (رله) جابه‌جا می‌شوند — بدون عبور از Cloudflare و پنل، بدون سقف ۱۰۰ مگابایتی هر درخواست، با پشتیبانی از Range/ادامه‌ی دانلود. مسیرهای قدیمی آپلود به‌عنوان پشتیبان باقی هستند.

POST/panel/api/v1/uploads/authorize

۱) مجوز آپلود مستقیم

قدم اول آپلود. پاسخ شامل upload.url (روی سرور انتقال) و upload.headers است. قدم دوم — بدون توکن Bearer: POST {upload.url} به‌صورت multipart با فیلد file و هدر X-Upload-Token؛ پاسخ سرور انتقال {ok, size, sha256, receipt} است. قدم سوم: همین مقادیر را به /uploads/confirm بفرستید. purpose: با توکن اپ files (پیش‌فرض) یا sync؛ با توکن همگام‌سازی sync (پیش‌فرض) یا files؛ با توکن بکاپ فقط backup. در sync اگر sha256 بفرستید و محتوا تغییری نکرده باشد unchanged=true برمی‌گردد. اگر سرور انتقال در دسترس نباشد 503 با code=direct_unavailable و فیلد fallback (مسیر قدیمی) برمی‌گردد.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا) — یا — توکن بکاپ خودکار — پنل → بکاپ‌گیری خودکار (بدون انقضا)

بدنه: application/json

فیلدنوعتوضیح
filenamestring
sizeintegerبایت
sha256stringاختیاری — برای تشخیص بدون تغییر در sync
purposestring (files | sync | backup)
{
  "filename": "\u06af\u0632\u0627\u0631\u0634.pdf",
  "purpose": "files",
  "size": 734003200
}
پاسخشرح
200مجوز صادر شد
400حجم نامعتبر یا فضای ناکافی (quota_exceeded)
401توکن نامعتبر
403purpose برای این توکن مجاز نیست
503مسیر مستقیم موقتاً در دسترس نیست — از fallback استفاده کنید
AUTH="Authorization: Bearer $TOKEN"; F=video.mp4
A=$(curl -s -H "$AUTH" -H "Content-Type: application/json" \
  -d "{\"filename\":\"$F\",\"size\":$(stat -c%s "$F")}" $BASE/panel/api/v1/uploads/authorize)
R=$(curl -s -H "X-Upload-Token: $(echo $A | jq -r .token)" -F "file=@$F" "$(echo $A | jq -r .upload.url)")
curl -s -H "$AUTH" -H "Content-Type: application/json" $BASE/panel/api/v1/uploads/confirm \
  -d "$(jq -n --argjson a "$A" --argjson r "$R" --arg f "$F" \
      '{token:$a.token, upload_id:$a.upload_id, filename:$f, size:$r.size, sha256:$r.sha256, receipt:$r.receipt}')"
POST/panel/api/v1/uploads/confirm

۲) ثبت نهایی آپلود مستقیم

بعد از پاسخ موفق سرور انتقال. size/sha256/receipt را عیناً از پاسخ سرور انتقال بفرستید (رسید امضاشده — هش بدون دانلود دوباره ثبت می‌شود). تکرار امن است: confirm دوباره همان فایل را با already_confirmed=true برمی‌گرداند. توکن تا ۲۴ ساعت بعد از انقضا برای confirm پذیرفته می‌شود.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا) — یا — توکن بکاپ خودکار — پنل → بکاپ‌گیری خودکار (بدون انقضا)

بدنه: application/json

فیلدنوعتوضیح
tokenstring
upload_idstring
filenamestring
purposestring (files | sync | backup)
sizeinteger
sha256string
receiptstring
mime_typestring
is_encryptedboolean
پاسخشرح
200ثبت شد
400فضای ناکافی (فایل آپلودشده پاک می‌شود)
403توکن آپلود نامعتبر
409فایل روی سرور پیدا نشد (upload_not_found)

حساب و داشبورد

پروفایل، آمار کلی و وضعیت فضا.

GET/panel/api/v1/user/profile

پروفایل کاربر

اطلاعات حساب و وضعیت فضای ذخیره‌سازی.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پاسخشرح
200پروفایل
401توکن نامعتبر
GET/panel/api/v1/dashboard

داشبورد

همان آمار صفحه‌ی داشبورد پنل: فضا، تعداد فایل/لینک/صفحه، دانلودها، تیکت‌ها و آخرین موارد.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پاسخشرح
200آمار
401توکن نامعتبر

فایل‌ها

فهرست، جست‌وجوی تمام‌متن، آپلود، دانلود و حذف فایل‌ها.

GET/panel/api/v1/files

فهرست فایل‌ها

فایل‌های کاربر (به‌جز سطل بازیافت)، جدیدترین اول. با search جست‌وجو در نام و «محتوای» فایل‌ها (تمام‌متن) انجام می‌شود.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
pagequeryintegerخیرشماره‌ی صفحه (پیش‌فرض ۱)
per_pagequeryintegerخیرتعداد در هر صفحه (پیش‌فرض ۲۰)
searchquerystringخیرجست‌وجوی تمام‌متن
typequerystringخیرفیلتر بخشی از mime type، مثل image یا video
پاسخشرح
200فهرست
401توکن نامعتبر
POST/panel/api/v1/files/upload

آپلود فایل

مسیر پشتیبان آپلود از طریق پنل (multipart/form-data، فیلد file) — حداکثر ۱۰۰ مگابایت در هر درخواست. اولویت اول: /uploads/authorize (انتقال مستقیم، بدون این محدودیت).

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

بدنه: multipart/form-data

فیلدنوعتوضیح
filestring (فایل)
پاسخشرح
200آپلود شد
400فایلی ارسال نشده یا فضای کافی نیست
401توکن نامعتبر
500سرور ذخیره‌سازی در دسترس نیست
GET/panel/api/v1/files/{file_id}/download

دانلود فایل

با توکن JWT یا توکن همگام‌سازی. اولویت اول: پاسخ 302 به لینک امضاشده‌ی سرور انتقال (Range دارد) — کلاینت باید redirect را دنبال کند (curl -L؛ requests/OkHttp/fetch خودکار). اگر سرور انتقال در دسترس نباشد یا via=panel بفرستید، فایل از پنل stream می‌شود.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
file_idمسیرintegerبلهشناسه‌ی فایل
viaquerystringخیرpanel = اجبار مسیر پشتیبان
inlinequeryintegerخیر1 = نمایش به‌جای دانلود (فقط در مسیر مستقیم)
پاسخشرح
302انتقال به لینک دانلود مستقیم (Location)
200محتوای فایل (باینری)
401توکن نامعتبر
404فایل پیدا نشد
DELETE/panel/api/v1/files/{file_id}

حذف فایل (انتقال به سطل بازیافت)

فایل به سطل بازیافت می‌رود و تا ۳۰ روز از پنل قابل بازگردانی است؛ بعد از آن به‌طور خودکار و کامل پاک می‌شود.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
file_idمسیرintegerبلهشناسه‌ی فایل
پاسخشرح
200حذف شد
401توکن نامعتبر
404فایل یافت نشد

پردازش هوشمند

هوش مصنوعی و ابزارهای رسانه‌ای روی فایل‌ها: گفتار به متن و زیرنویس، توصیف و OCR تصویر، خلاصه و ترجمه‌ی اسناد، تبدیل و فشرده‌سازی.

GET/panel/api/v1/processing/operations

فهرست عملیات پردازش

عملیات فعال، نوع فایل‌های مجاز، پارامترها، قیمت دقیق و محدودیت‌ها — همیشه از همین endpoint بخوانید (قیمت‌ها از پنل مدیریت قابل تغییرند).

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
file_kindquerystringخیرفقط عملیات یک نوع فایل: image، audio، video یا document
پاسخشرح
200فهرست
400file_kind نامعتبر
401توکن نامعتبر
POST/panel/api/v1/files/{file_id}/process

شروع پردازش یک فایل

یک پردازش در صف می‌گذارد و بلافاصله (201) برمی‌گرداند — هیچ مبلغی در این لحظه کسر نمی‌شود. Worker ورودی را بررسی می‌کند، قیمت دقیق را (مثلاً بر اساس مدت واقعی صوت) حساب و درست قبل از مرحله‌ی پولی کسر می‌کند؛ اگر پردازش به هر دلیلی ناموفق یا لغو شود، کل مبلغ خودکار برمی‌گردد. وضعیت را با GET /processing/jobs/{job_id} دنبال کنید. خروجی‌ها در فضای کاربر هم ذخیره می‌شوند.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
file_idمسیرintegerبلهشناسه‌ی فایل ورودی

بدنه: application/json

فیلدنوعتوضیح
operationstringشناسه‌ی عملیات (از /processing/operations)
paramsobjectپارامترهای همان عملیات؛ مقادیر نفرستاده = پیش‌فرض
{
  "operation": "media_transcribe",
  "params": {
    "language": "fa"
  }
}
پاسخشرح
201در صف قرار گرفت
400ورودی نامعتبر — code: invalid_params، unsupported_file_type، file_encrypted، file_too_large
401توکن نامعتبر
402موجودی کافی نیست — code: insufficient_balance
404فایل یا عملیات پیدا نشد — code: file_not_found، unknown_operation
429سقف پردازش هم‌زمان یا رایگانِ روزانه — code: too_many_active_jobs، daily_free_limit
503پردازش غیرفعال است — code: processing_disabled، engine_not_configured
curl -X POST "$BASE/panel/api/v1/files/42/process" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d '{"operation":"media_transcribe","params":{"language":"fa"}}'
GET/panel/api/v1/processing/jobs

فهرست پردازش‌ها

پردازش‌های کاربر، جدیدترین اول.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
statusquerystringخیرqueued، running، succeeded، failed یا canceled
file_idqueryintegerخیرفقط پردازش‌های یک فایل
pagequeryintegerخیرپیش‌فرض ۱
per_pagequeryintegerخیرپیش‌فرض ۲۰، حداکثر ۱۰۰
پاسخشرح
200فهرست
400status نامعتبر
401توکن نامعتبر
GET/panel/api/v1/processing/jobs/{job_id}

وضعیت و نتیجه‌ی یک پردازش

تا وقتی status برابر queued یا running است هر ۲ تا ۵ ثانیه دوباره بخوانید. progress (۰ تا ۱۰۰) و stage پیشرفت را نشان می‌دهند. در succeeded، result نتیجه‌ی ساختاری و outputs فایل‌های ساخته‌شده (با download_url قابل دانلود با همین توکن) است.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
job_idمسیرstringبلهشناسه‌ی پردازش
پاسخشرح
200پردازش
401توکن نامعتبر
404پیدا نشد — code: job_not_found
curl "$BASE/panel/api/v1/processing/jobs/9f2c4e1a7b3d5c60" -H "Authorization: Bearer $TOKEN"
POST/panel/api/v1/processing/jobs/{job_id}/cancel

لغو پردازش

پردازشِ در صف فوراً لغو می‌شود؛ پردازشِ در حال اجرا در اولین مرحله‌ی ممکن متوقف و مبلغش برگردانده می‌شود.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
job_idمسیرstringبلهشناسه‌ی پردازش
پاسخشرح
200لغو شد / درخواست لغو ثبت شد
404پیدا نشد
409پردازش تمام شده — code: job_finished

کیف‌پول هوش مصنوعی

موجودی و ریز تراکنش‌های کیف‌پول هوش مصنوعی.

GET/panel/api/v1/ai/wallet

کیف‌پول هوش مصنوعی

موجودی (تومان) و آخرین تراکنش‌ها: کسر بابت پردازش، بازگشت وجه، شارژ و استفاده از تحلیل/پرسش.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار) — یا — توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
limitqueryintegerخیرتعداد تراکنش (پیش‌فرض ۲۰، حداکثر ۱۰۰)
پاسخشرح
200کیف‌پول
401توکن نامعتبر

ساخت و مدیریت لینک کوتاه، رمزنگاری‌شده و اختصاصی.

POST/panel/api/v1/links

ساخت لینک دانلود

لینک برای یک یا چند فایل (فایل‌های سطل بازیافت مجاز نیستند). short = آدرس کوتاه، encrypted = توکن ۴۰ کاراکتری غیرقابل‌حدس، custom = آدرس دلخواه (custom_slug الزامی). رمز و تاریخ انقضا اختیاری‌اند. برای چند فایل، download_url دانلود ZIP است.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

بدنه: application/json

فیلدنوعتوضیح
file_idsarray
namestring
link_typestring (short | encrypted | custom) پیش‌فرض: short
passwordstring
expires_daysinteger
custom_slugstring
domain_idinteger
zip_pathsobjectfile_id → مسیر داخل ZIP
{
  "expires_days": 7,
  "file_ids": [
    42,
    43
  ],
  "link_type": "encrypted",
  "password": "1234"
}
پاسخشرح
200ساخته شد
400ورودی نامعتبر یا آدرس تکراری/رزرو
401توکن نامعتبر
GET/panel/api/v1/domains

دامنه‌های لینک اختصاصی

دامنه‌های فعال برای لینک custom (عمومی).

احراز هویت: بدون نیاز به توکن

پاسخشرح
200فهرست

صفحه‌ی اختصاصی

صفحه‌ی عمومی شخصی با فایل‌ها و توضیحات.

GET/panel/api/v1/pages

فهرست صفحات اختصاصی

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پاسخشرح
200فهرست
401توکن نامعتبر
GET/panel/api/v1/pages/{page_id}

جزئیات صفحه

شامل بلوک‌های فایل و متن.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
page_idمسیرintegerبلهشناسه‌ی صفحه
پاسخشرح
200صفحه
404صفحه یافت نشد
POST/panel/api/v1/pages

ساخت صفحه‌ی اختصاصی

multipart/form-data. blocks_json فهرستی JSON از بلوک‌هاست: {"type":"file","file_id":42,"display_name":"..."} یا {"type":"text","text":"..."} — حداکثر ۱۰ فایل و ۱۰ متن.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

بدنه: multipart/form-data

فیلدنوعتوضیح
titlestring
biostring
slugstring
themestring پیش‌فرض: sky
is_publicstring (1 | 0)
audiencestring (public | specific)
allowed_phonesstringهر شماره در یک خط (برای audience=specific)
contact_phonestring
contact_emailstring
logostring (فایل)
remove_logostring (1)
blocks_jsonstring
پاسخشرح
200ساخته شد
400ورودی نامعتبر
403آدرس رزرو است
409آدرس تکراری است
POST/panel/api/v1/pages/{page_id}

ویرایش صفحه

همان فیلدهای ساخت صفحه.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
page_idمسیرintegerبلهشناسه‌ی صفحه

بدنه: multipart/form-data

فیلدنوعتوضیح
titlestring
blocks_jsonstring
پاسخشرح
200ذخیره شد
404صفحه یافت نشد
POST/panel/api/v1/pages/{page_id}/toggle

فعال/غیرفعال کردن صفحه

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
page_idمسیرintegerبلهشناسه‌ی صفحه
پاسخشرح
200انجام شد
404صفحه یافت نشد
DELETE/panel/api/v1/pages/{page_id}

حذف صفحه

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
page_idمسیرintegerبلهشناسه‌ی صفحه
پاسخشرح
200حذف شد
404صفحه یافت نشد

فضا و پرداخت

قیمت، خرید و تمدید فضای ابری.

GET/panel/api/v1/storage-plans

قیمت و محدوده‌ی خرید فضا

محدوده‌ی مجاز حجم و مدت، وضعیت پلن فعلی، قیمت پیش‌نمایش (با size_bytes و duration_days) و درگاه‌های فعال.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
size_bytesqueryintegerخیرحجم برای پیش‌نمایش قیمت
duration_daysqueryintegerخیرمدت برای پیش‌نمایش قیمت
پاسخشرح
200اطلاعات
POST/panel/api/v1/orders

خرید یا تمدید فضا

در حالت پرداخت واقعی، gateway_url را در مرورگر باز کنید؛ بعد از بازگشت، وضعیت را با GET /orders/{order_id} بخوانید.

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

بدنه: application/json

فیلدنوعتوضیح
modestring (new | renew) پیش‌فرض: new
amountnumber پیش‌فرض: 1
unitstring (MB | GB | TB) پیش‌فرض: GB
duration_daysinteger
gatewaystring
{
  "amount": 10,
  "duration_days": 30,
  "mode": "new",
  "unit": "GB"
}
پاسخشرح
200سفارش ساخته شد
400ورودی نامعتبر
502خطای درگاه
GET/panel/api/v1/orders/{order_id}

وضعیت سفارش

احراز هویت: توکن JWT اپ — از «ورود با کد یک‌بارمصرف» (۳۰ روز اعتبار)

پارامترمحلنوعالزامیتوضیح
order_idمسیرintegerبلهشناسه‌ی سفارش
پاسخشرح
200سفارش
404سفارش یافت نشد

همگام‌سازی دسکتاپ

API ابزار همگام‌سازی پوشه‌ی کامپیوتر با نابغه فایل.

GET/panel/api/v1/sync/files

فهرست فایل‌ها برای همگام‌سازی

همه‌ی فایل‌های فعال با هش SHA-256 برای مقایسه‌ی محلی بدون دانلود.

احراز هویت: توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پاسخشرح
200فهرست
401توکن نامعتبر
POST/panel/api/v1/sync/upload

آپلود/به‌روزرسانی از همگام‌سازی

مسیر پشتیبان (حداکثر ۱۰۰ مگابایت). multipart (فیلد file). فایل هم‌نام موجود نسخه‌دار به‌روز می‌شود؛ اگر محتوا تغییری نکرده باشد unchanged=true برمی‌گردد. اولویت اول: /uploads/authorize با purpose=sync.

احراز هویت: توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

بدنه: multipart/form-data

فیلدنوعتوضیح
filestring (فایل)
پاسخشرح
200ذخیره شد
400فایل یا فضا نامعتبر
GET/panel/api/v1/sync/files/{file_id}/download

دانلود برای همگام‌سازی

مثل دانلود فایل: 302 به لینک مستقیم سرور انتقال؛ با via=panel یا هنگام قطعی، stream از پنل.

احراز هویت: توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
file_idمسیرintegerبلهشناسه‌ی فایل
viaquerystringخیرpanel = اجبار مسیر پشتیبان
پاسخشرح
302انتقال به لینک دانلود مستقیم
200محتوای فایل
404پیدا نشد
DELETE/panel/api/v1/sync/files/{file_id}

حذف از همگام‌سازی

حذف نرم — فایل به سطل بازیافت می‌رود و قابل بازگردانی است.

احراز هویت: توکن همگام‌سازی — پنل → همگام‌سازی دسکتاپ (بدون انقضا)

پارامترمحلنوعالزامیتوضیح
file_idمسیرintegerبلهشناسه‌ی فایل
پاسخشرح
200به سطل بازیافت رفت

بکاپ خودکار

آپلود بکاپ از اسکریپت زمان‌بندی‌شده‌ی سرور شما.

POST/panel/api/v1/backup/upload

آپلود بکاپ

مسیر پشتیبان (حداکثر ۱۰۰ مگابایت) برای اسکریپت زمان‌بندی‌شده‌ی سرور شما (multipart، فیلد file). قدیمی‌ترها طبق تعداد نگهداری خودکار پاک می‌شوند. اولویت اول: /uploads/authorize با توکن بکاپ (اسکریپت آماده‌ی پنل خودش همین کار را می‌کند).

احراز هویت: توکن بکاپ خودکار — پنل → بکاپ‌گیری خودکار (بدون انقضا)

بدنه: multipart/form-data

فیلدنوعتوضیح
filestring (فایل)
پاسخشرح
200ذخیره شد
400فایل خالی/ارسال‌نشده
401توکن نامعتبر
502سرور ذخیره‌سازی در دسترس نیست
🎧
پشتیبانی نابغه فایل
آنلاین — آماده پاسخگویی

در حال بارگذاری...

👋 خوش آمدید!
شماره موبایلتون رو وارد کنید. فقط یک‌بار لازمه.
🔒 حریم خصوصی شما محفوظ است شماره شما فقط برای شناسایی در سیستم پشتیبانی استفاده می‌شود.
شماره موبایل
🙋 سوالات متداول
روی سوال کلیک کنید. جواب نگرفتید؟ با پشتیبانی صحبت کنید.
⚠️ توجه مهم از تکرار و پیگیری مداوم پیام خود خودداری کنید؛ این کار باعث می‌شود جایگاه پیام شما بر اساس زمان ارسال تغییر کند و با تأخیر بیشتری پاسخ دریافت کنید.