مستندات API خدمات شبکههای اجتماعی
این API برای اتصال پنلها، فروشگاهها و ابزارهای خودکار به سرویسهای شبکههای اجتماعی طراحی شده است.
شروع سریع
آدرس پایه:
https://sanjaaqak.com/api/smm/v1
کلید API خود را از صفحه API در پروفایل بسازید و آن را در پارامتر key هر درخواست ارسال کنید.
کلید API مانند رمز عبور است. آن را فقط در کد سمت سرور نگه دارید و در مرورگر، اپلیکیشن عمومی یا مخزن کد قرار ندهید.
درخواستها با GET یا POST پذیرفته میشوند. در POST میتوانید بدنه JSON یا application/x-www-form-urlencoded بفرستید. پاسخها JSON هستند و برخلاف بعضی مسیرهای دیگر سایت، داخل پوشش ok قرار نمیگیرند. برای محافظت از کلید در برابر ثبتشدن در تاریخچه و لاگ URL، POST را ترجیح دهید.
در همه نمونهها، YOUR_KEY را با کلید خود جایگزین کنید. شناسههای سرویس، سفارش و درخواست جبران ریزش فقط نمونهاند؛ برای سفارش واقعی، مقدار عددی service را از پاسخ services بردارید.
دریافت موجودی
action: balance
GET https://sanjaaqak.com/api/smm/v1?key=YOUR_KEY&action=balance
{
"balance": "15000.00",
"currency": "IRT"
}
دریافت سرویسها
action: services
فهرست سرویسهای فعال و قابل سفارش را برمیگرداند (حداکثر ۲۰۰۰ مورد).
GET https://sanjaaqak.com/api/smm/v1?key=YOUR_KEY&action=services
[
{
"service": 123,
"service_id": "svc_xxx",
"name": "نام سرویس",
"name_en": "Service Name",
"type": "Default",
"rate": 1500,
"min": 100,
"max": 10000,
"dripfeed": false,
"refill": true,
"cancel": true,
"category": "تلگرام > ممبر",
"category_arr": ["تلگرام", "ممبر"],
"platform": "تلگرام",
"currency": "IRT"
}
]
service شناسه عددی موردنیاز برای add است؛ service_id شناسه متنی همان سرویس است. rate به تومان (IRT) برای هر ۱۰۰۰ واحد است و min و max محدوده مجاز quantity هستند. بسته به سرویس، name_en، score، average_time، average_time_per_1k و drop_rate ممکن است وجود نداشته باشند. برای اشتراک نیز در صورت فعالبودن هر نوع پست، محدوده new_posts_min/new_posts_max یا old_posts_min/old_posts_max برمیگردد.
ثبت سفارش
action: add
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "add",
"service": 123,
"link": "https://t.me/example",
"quantity": 1000
}
پاسخ موفق:
{ "order": "ord_xxx" }
پاسخ خطا:
{ "error": "Insufficient Funds" }
- پرداخت فقط از طریق کیف پول انجام میشود.
- در صورت ناکافی بودن موجودی، سفارش ثبت نمیشود.
- ثبت سفارش اتمیک است و موجودی و سفارش همزمان اعمال میشوند.
- هزینه سفارش عادی یا کامنت سفارشی برابر با گردکردن
quantity × rate / 1000به بالا تا تومان کامل است.
سفارش کامنت سفارشی
برای سرویسهای type=Custom Comments:
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "add",
"service": 27,
"link": "https://instagram.com/p/example",
"comments": "کامنت اول\nکامنت تکراری\nکامنت تکراری"
}
{ "order": "ord_xxx" }
- فیلد
quantityبرای این نوع ارسال نمیشود؛ تعداد از خطوط غیرخالیcommentsمحاسبه میشود. - کامنتهای تکراری حذف نمیشوند و هر خط جداگانه در تعداد سفارش محاسبه میشود.
- تعداد محاسبهشده باید بین
minوmaxسرویس باشد.
سفارش اشتراک
برای سرویسهای type=Subscriptions:
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "add",
"service": 14186,
"username": "example",
"quantity": 100,
"posts": 10,
"old_posts": 5
}
{ "order": "ord_xxx" }
postsوold_postsبهترتیب تعداد پستهای جدید و قدیمی هستند. فقط نوعهای فعال در پاسخservicesرا بفرستید؛ برای هر نوع فعال، مقدار باید در محدوده همان نوع باشد. مثال بالا فقط برای سرویسی معتبر است که هر دو نوع را پشتیبانی کند.quantityبرای حداقل و حداکثر هر اجرای اشتراک استفاده میشود.- کل مبلغ هنگام ثبت سفارش از کیف پول کسر میشود: هزینه هر اجرا (
quantity × rate / 1000، گردشده به بالا) ضربدر مجموعpostsوold_posts. - مقدار
delayهمیشه صفر است وexpiryپشتیبانی نمیشود.
وضعیت یک سفارش
action: status
GET https://sanjaaqak.com/api/smm/v1?key=YOUR_KEY&action=status&order=ord_xxx
{
"charge": "1500.00",
"start_count": "5000",
"status": "In progress",
"remains": "800",
"currency": "IRT"
}
start_count و remains ممکن است پیش از دریافت اطلاعات از ارائهدهنده null باشند. اگر شناسه سفارش نامعتبر باشد یا به حساب شما تعلق نداشته باشد، پاسخ { "error": "Incorrect order ID" } با HTTP 200 برمیگردد.
وضعیت اشتراک
برای سفارش اشتراک، پاسخ شامل شناسه سفارشهای ساختهشده برای پستها است:
{
"status": "Active",
"expiry": null,
"posts": "2",
"old_posts": 0,
"orders": ["88665415", "88665416"],
"old_orders": []
}
وضعیت چند سفارش
شناسهها را در orders با کاما جدا کنید. هر درخواست حداکثر ۱۰۰ سفارش میپذیرد.
GET https://sanjaaqak.com/api/smm/v1?key=YOUR_KEY&action=status&orders=ord_xxx,ord_yyy
{
"ord_xxx": {
"charge": "1500.00",
"start_count": "5000",
"status": "In progress",
"remains": "800",
"currency": "IRT"
},
"ord_yyy": {
"error": "Incorrect order ID"
}
}
جبران ریزش
action: refill
برای سفارشهای سرویس استاندارد با refill=true که به ارائهدهنده API ارسال شدهاند و وضعیتشان Completed یا Partial است:
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "refill",
"order": "ord_xxx"
}
{ "refill": "sact_xxx" }
برای چند سفارش (حداکثر ۱۰۰ شناسه) از orders با شناسههای جداشده با کاما استفاده کنید:
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "refill",
"orders": "ord_xxx,ord_yyy"
}
[
{ "order": "ord_xxx", "refill": "sact_xxx" },
{ "order": "ord_yyy", "refill": { "error": "refill_not_enabled" } }
]
- درخواست جبران ریزش حداقل ۲۴ ساعت پس از ارسال سفارش به ارائهدهنده و ۲۴ ساعت پس از پایان درخواست قبلی قابل ثبت است.
- تا پایان درخواست جبران ریزش فعال، درخواست بعدی برای همان سفارش پذیرفته نمیشود.
وضعیت جبران ریزش
action: refill_status
GET https://sanjaaqak.com/api/smm/v1?key=YOUR_KEY&action=refill_status&refill=sact_xxx
{ "status": "In progress" }
برای چند درخواست (حداکثر ۱۰۰ شناسه) از refills با شناسههای جداشده با کاما استفاده کنید:
GET https://sanjaaqak.com/api/smm/v1?key=YOUR_KEY&action=refill_status&refills=sact_xxx,sact_yyy
[
{ "refill": "sact_xxx", "status": "Completed" },
{ "refill": "sact_yyy", "status": { "error": "Refill not found" } }
]
وضعیتهای درخواست جبران ریزش: Pending، In progress، Completed، Rejected، Failed و In review. شناسه نامعتبر در پاسخ تکدرخواستی با { "error": "Refill not found" } و HTTP 200 مشخص میشود.
لغو سفارش
action: cancel
برای سفارشهای سرویس استاندارد با cancel=true که به ارائهدهنده API ارسال شدهاند و هنوز به وضعیت نهایی نرسیدهاند:
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "cancel",
"order": "ord_xxx"
}
{ "cancel": 1 }
برای چند سفارش (حداکثر ۱۰۰ شناسه) از orders با شناسههای جداشده با کاما استفاده کنید:
POST https://sanjaaqak.com/api/smm/v1
Content-Type: application/json
{
"key": "YOUR_KEY",
"action": "cancel",
"orders": "ord_xxx,ord_yyy"
}
[
{ "order": "ord_xxx", "cancel": 1 },
{ "order": "ord_yyy", "cancel": { "error": "cancel_not_enabled" } }
]
لغو اشتراک ممکن است بهصورت جداگانه و با محدودیت زمانی/تعداد درخواست کاربر در دسترس باشد؛ مقدار cancel در پاسخ services برای اشتراکها همیشه false است و نشاندهنده امکان لغو اشتراک نیست. پاسخ { "cancel": 1 } به معنی پذیرش درخواست است، نه لغو یا استرداد فوری. نتیجه نهایی پس از همگامسازی وضعیت سفارش مشخص میشود.
وضعیتهای سفارش
| Status | توضیح |
|---|---|
Pending | در صف پردازش |
Processing | در حال پردازش |
In progress | در حال انجام |
Active | اشتراک فعال |
Completed | تکمیل شده |
Partial | جزئی؛ بخشی تحویل داده شده |
Canceled | لغو شده؛ موجودی بازگشت داده شده |
Error | خطا در انجام سفارش |
In review | در حال بررسی توسط پشتیبانی |
Awaiting Payment | در انتظار پرداخت |
در پاسخ ناموفق، فیلد error علت خطا را مشخص میکند. برای جلوگیری از ثبت سفارش تکراری، پیش از تلاش مجدد نتیجه درخواست قبلی را بررسی کنید.
