توثيق واجهة API

مع API الموزّعين يمكنك تقديم الطلبات ومتابعتها مباشرة من تطبيقك أو سكربتك أو موقعك. تُرسل جميع الطلبات عبر POST إلى العنوان أدناه وتُعاد الاستجابات بصيغة JSON. احصل على مفتاح API من "إعدادات الحساب" في لوحة المستخدم.

إلى جانب طلبات SMM التقليدية، يعمل نفس مفتاح API مع الخدمات الجديدة أيضاً: توكن الذكاء الاصطناعي (الرصيد، المحادثة، الحزم، تقرير الاستهلاك) والأرقام الافتراضية (قائمة الخدمات، الشراء، الحالة ورمز التحقق، الطلبات والإلغاء).

احصل على مفتاح API من لوحة المستخدم
طريقة HTTP
POST
عنوان API
https://novin-data.ir/api.php
صيغة الاستجابة
JSON

المصادقة والقواعد العامة

  • أرسل مفتاح API في المتغير key؛ يرى كل مستخدم مفتاحه في لوحة المستخدم ← الإعدادات ← بطاقة «API الموزّعين» ويمكنه إعادة توليده.
  • تُرسل جميع الطلبات بطريقة POST وتكون الاستجابة دائماً JSON؛ حتى الأخطاء تُعاد برمز الحالة 200.
  • يجب أن يكون الحساب مفعّلاً، وإلا كانت الاستجابة {"error":"Your account is not active"}.
  • إذا تم إيقاف API من إعدادات الإدارة تكون الاستجابة {"error":"API is disabled by administrator"}.

فهرس الأوامر

الأوامر العامة والمحفظة

طلبات الخدمات

توكن الذكاء الاصطناعي

الأرقام الافتراضية

الأوامر العامة والمحفظة

action=balance الحصول على الرصيد

الحصول على رصيد المحفظة وعملة الحساب

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionbalance

مثال الاستجابة

{
  "balance": "100.84292",
  "currency": "Toman"
}

action=services قائمة الخدمات

جلب القائمة الكاملة للخدمات المفعّلة مع المعرف والتصنيف والسعر وحدود الكمية

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionservices

مثال الاستجابة

[
  {
    "service": 1,
    "name": "Instagram Followers - Real",
    "type": "Default",
    "category": "Instagram",
    "rate": "0.90",
    "min": "100",
    "max": "10000"
  },
  {
    "service": 2,
    "name": "Instagram Likes - Quick",
    "type": "Default",
    "category": "Instagram",
    "rate": "0.12",
    "min": "50",
    "max": "50000"
  }
]

طلبات الخدمات

action=add تقديم طلب جديد

تقديم طلب جديد؛ يُخصم المبلغ من المحفظة تلقائياً

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionadd
serviceمعرف الخدمة (عمود الخدمة في قائمة الخدمات)
linkرابط الصفحة المستهدفة (مثل رابط منشور إنستغرام)
quantityكمية الطلب (بين الحد الأدنى والأقصى للخدمة)

مثال الاستجابة

{
  "order": 23501
}

action=status حالة الطلب

متابعة حالة الطلب والمبلغ والعدّاد الابتدائي والمتبقي

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionstatus
orderمعرف الطلب المُقدَّم

مثال الاستجابة

{
  "charge": "0.27819",
  "start_count": "3572",
  "status": "Partial",
  "remains": "157",
  "currency": "Toman"
}

action=cancel طلب إلغاء الطلب

تسجيل طلب إلغاء الطلب ويُطبّق بعد مراجعة الإدارة. السبب اختياري ويُعرض في لوحة الإدارة.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actioncancel
orderمعرف الطلب المُقدَّم
reasonسبب الإلغاء (اختياري؛ وإذا كان فارغاً يُسجّل «Cancel requested via API»)

مثال الاستجابة

{
  "order": 23501,
  "cancel": "Pending"
}

action=refill طلب إعادة التعبئة

تسجيل طلب إعادة تعبئة للطلبات المكتملة أو الجزئية التي أُرسلت إلى المزوّد.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionrefill
orderمعرف الطلب المُقدَّم

مثال الاستجابة

{
  "order": 23501,
  "refill": "Pending"
}

توكن الذكاء الاصطناعي

action=ai_balance رصيد توكن الذكاء الاصطناعي

الحصول على رصيد التوكن واسم النموذج المعروض وسعر التوكن (عدد التوكن مقابل المبلغ الأساسي).

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionai_balance

مثال الاستجابة

{
  "tokens": "250000",
  "model": "gpt-4o-mini",
  "model_label": "Neuro AI",
  "rate_amount": "10000",
  "rate_tokens": "83333",
  "currency": "Toman"
}

action=ai_chat محادثة مع نموذج الذكاء الاصطناعي

إرسال رسالة إلى النموذج المتصل باللوحة؛ يُخصم التوكن المستهلك تلقائياً من الرصيد ويُسجّل في تقرير الاستهلاك.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionai_chat
messagesمصفوفة JSON للرسائل: [{"role":"system|user|assistant","content":"..."}] — حتى 40 رسالة و6000 حرف للرسالة
messageنص رسالة المستخدم بشكل مباشر (بديل messages)
max_tokensالحد الأقصى لتوكن الإجابة (اختياري؛ الافتراضي من إعدادات اللوحة وبحد أقصى 8000)
temperatureدرجة حرارة النموذج بين 0 و2 (اختياري)

مثال الاستجابة

{
  "reply": "Hello! How can I help you today?",
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 48,
    "total_tokens": 80
  },
  "tokens": "249920"
}

action=ai_packages حزم التوكن

جلب حزم التوكن المفعّلة مع عدد التوكن ومبلغ الشحن لكل حزمة.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionai_packages

مثال الاستجابة

[
  {
    "package": 1,
    "name": "Basic",
    "tokens": "100000",
    "price": "12000.00",
    "currency": "Toman"
  },
  {
    "package": 2,
    "name": "Pro",
    "tokens": "500000",
    "price": "55000.00",
    "currency": "Toman"
  }
]

action=ai_buy_package شراء حزمة توكن

شراء حزمة توكن من رصيد المحفظة؛ تُضاف التوكن المشتراة فوراً.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionai_buy_package
packageمعرّف حزمة التوكن (العمود package في استجابة action=ai_packages)

مثال الاستجابة

{
  "package": 1,
  "name": "Basic",
  "tokens": "100000",
  "balance": "100000"
}

action=ai_usage تقرير استهلاك التوكن

إحصاءات استهلاك التوكن: الرصيد وعدد الطلبات ومجموع الإدخال/الإخراج/الكل وآخر الطلبات.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionai_usage
limitالحد الأقصى لعدد السجلات في الاستجابة (الافتراضي 20 والحد الأقصى 100)

مثال الاستجابة

{
  "tokens": "249920",
  "requests": "12",
  "prompt": "820",
  "completion": "1180",
  "total": "2000",
  "avg": "167",
  "items": [
    {
      "prompt_tokens": "32",
      "completion_tokens": "48",
      "total_tokens": "80",
      "model": "Neuro AI",
      "created_at": 1763892000,
      "date": "2026-09-22 14:05"
    }
  ]
}

الأرقام الافتراضية

action=vnum_services خدمات الأرقام الافتراضية

جلب خدمات الأرقام الافتراضية المفعّلة (الدولة، المشغّل، نوع الخدمة) مع سعر البيع النهائي بعد تطبيق نسبة ربح اللوحة.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionvnum_services

مثال الاستجابة

[
  {
    "service": 14,
    "name": "Telegram - Russia - Any",
    "country": "Russia",
    "operator": "Any",
    "type": "Telegram",
    "price": "24000.00",
    "currency": "Toman"
  },
  {
    "service": 15,
    "name": "WhatsApp - USA - Verizon",
    "country": "USA",
    "operator": "Verizon",
    "type": "WhatsApp",
    "price": "48000.00",
    "currency": "Toman"
  }
]

action=vnum_buy شراء رقم افتراضي

شراء رقم افتراضي للمستخدم؛ يُخصم المبلغ من المحفظة ويبقى الرقم فعّالاً خلال مدة الصلاحية.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionvnum_buy
serviceمعرّف خدمة الرقم الافتراضي (العمود service في استجابة action=vnum_services)

مثال الاستجابة

{
  "order": 812,
  "order_no": "VN-A7K9P2",
  "service": 14,
  "number": "+79876543210",
  "status": "Pending",
  "code": "",
  "charge": "24000.00",
  "expires_at": 1763892000,
  "remaining_seconds": 1200,
  "currency": "Toman"
}

action=vnum_status حالة الرقم ورمز التحقق

معرفة حالة الرقم ورمز التحقق من الرسالة والوقت المتبقي للصلاحية (مع تحديث من المزوّد).

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionvnum_status
orderمعرّف طلب الرقم الافتراضي (الخارج من action=vnum_buy)

مثال الاستجابة

{
  "order": 812,
  "order_no": "VN-A7K9P2",
  "service": 14,
  "number": "+79876543210",
  "status": "Received",
  "code": "4571",
  "sms": "Your Telegram code is 4571",
  "charge": "24000.00",
  "created_at": 1763890800,
  "expires_at": 1763892000,
  "remaining_seconds": 640,
  "currency": "Toman"
}

action=vnum_orders طلبات الأرقام الافتراضية

قائمة آخر طلبات الأرقام الافتراضية للمستخدم.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionvnum_orders
limitالحد الأقصى لعدد السجلات في الاستجابة (الافتراضي 20 والحد الأقصى 100)

مثال الاستجابة

[
  {
    "order": 812,
    "order_no": "VN-A7K9P2",
    "service": 14,
    "number": "+79876543210",
    "status": "Received",
    "code": "4571",
    "charge": "24000.00",
    "created_at": 1763890800,
    "expires_at": 1763892000,
    "remaining_seconds": 640,
    "currency": "Toman"
  },
  {
    "order": 795,
    "order_no": "VN-M2X4R8",
    "service": 15,
    "number": "+13456789012",
    "status": "Expired",
    "code": "",
    "charge": "48000.00",
    "created_at": 1763804400,
    "expires_at": 1763805600,
    "remaining_seconds": 0,
    "currency": "Toman"
  }
]

action=vnum_cancel إلغاء الرقم وإرجاع المبلغ

إلغاء رقم لا يزال في حالة الانتظار وإرجاع المبلغ إلى محفظة المستخدم.

المعاملات

المعاملالوصف
keyمفتاح API الخاص بك (من إعدادات الحساب)
actionvnum_cancel
orderمعرّف طلب الرقم الافتراضي (الخارج من action=vnum_buy)

مثال الاستجابة

{
  "canceled": 1,
  "order": 812,
  "balance": "101000.00",
  "currency": "Toman"
}

ملاحظات مهمة

قيم حالة الطلب

Pending · Processing · In progress · Completed · Partial · Canceled · Refunded

قيم حالة الرقم الافتراضي

Pending (بانتظار الرسالة) · Received (الرمز جاهز) · Canceled · Expired (انتهت الصلاحية)

ملاحظات توكن الذكاء الاصطناعي

يُعرض رصيد التوكن في action=ai_balance ويُستهلك في action=ai_chat ويُدرج في التقرير action=ai_usage. إذا كانت خدمة التوكن معطّلة أو اتصال النموذج غير مكتمل فتُعيد هذه الأوامر الخطأ المقابل.

ملاحظات الأرقام الافتراضية

يُقرأ سعر كل خدمة من API الموقع المصدر وتُطبّق نسبة ربح اللوحة. بعد الشراء يبقى الرقم فعّالاً حتى نهاية مدة الصلاحية: استخدم action=vnum_status للحصول على رمز التحقق، وقبل وصول الرسالة يمكنك الإلغاء بـ action=vnum_cancel ليُعاد المبلغ إلى المحفظة. الأمر vnum_order اسم بديل لـ vnum_buy.

الأخطاء

عند الأخطاء تُعاد الاستجابة كـ {"error":"message"} مع رمز HTTP 200، للتوافق مع سكربتات إعادة البيع الشائعة.

Errorالوصف
Incorrect API keyAPI key is missing or invalid
API is disabled by administratorThe API has been turned off in admin settings
Your account is not activeThe account is suspended or not active yet
Incorrect service id / Service not foundUnknown or inactive service ID
Incorrect linkThe link does not start with http:// or https://
Quantity must be between X and YQuantity is outside the service min/max range
Insufficient balanceNot enough wallet balance (message may be returned in the panel language)
Incorrect order idOrder does not exist or belongs to another account
Incorrect package idUnknown or inactive AI token package ID
AI token service is disabled / AI token service is disabled or not configuredThe AI token service is off, or the model connection is not complete in admin settings
Incorrect request: messages (JSON) or message is requiredThe ai_chat action needs a messages JSON array or a message parameter
Virtual number service is disabled or not configuredThe virtual number service is off or its provider settings are incomplete
Incorrect request: unknown actionUnknown action; valid actions are listed in the index above

كود نموذجي

PHP (cURL)

<?php
$ch = curl_init('https://novin-data.ir/api.php');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query([
        'key'      => 'YOUR_API_KEY',
        'action'   => 'add',
        'service'  => 12,
        'link'     => 'https://instagram.com/p/xxxxx',
        'quantity' => 1000,
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // {"order":23501}

Python (requests)

import requests

resp = requests.post('https://novin-data.ir/api.php', data={
    'key': 'YOUR_API_KEY',
    'action': 'vnum_status',
    'order': 812,
})
print(resp.json())

JavaScript (fetch)

const res = await fetch('https://novin-data.ir/api.php', {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    key: 'YOUR_API_KEY',
    action: 'ai_chat',
    message: 'Write a short Instagram caption about coffee',
  }),
});
const data = await res.json();
console.log(data.reply, data.tokens);