تقديم الطلب
يرسل طلبًا بصيغة لوحة إعادة البيع المألوفة. يمكن للعملاء القدامى حذف حقول منع التكرار؛ ويُربط الطلب المتطابق من الحساب نفسه بالطلب نفسه لمدة 60 ثانية. لإعادة المحاولة الدقيقة، أعد استخدام request_id أو idempotency_key. تنتظر الطلبات العادية 15 ثانية قبل الإرسال.
POST
https://notpanel.com/api/v3action=addمفتاح API مطلوبمحدود بالمعدل (حساب مشترك + IP + إجراء)الجسم:
application/x-www-form-urlencodedrequest_id وidempotency_key اختياريان. من دونهما، يحصل الحساب نفسه والطلب المتطابق على حماية لمدة 60 ثانية؛ ويعيد التكرار المقصود خلال هذه النافذة الطلب الأول. انتظر 60 ثانية أو أرسل request_id فريدًا لإنشاء نسخة فورًا.
المعاملات
| الاسم | النوع | الوصف |
|---|---|---|
| keyمطلوب | string | مفتاح API الخاص بك. |
| actionمطلوب | string | يجب أن يكون السلسلة النصية الحرفية "add". |
| serviceمطلوب | integer | معرّف الخدمة من قائمة الخدمات. يجب أن تكون الخدمة نشطة وقت التقديم. |
| request_id | string | مفتاح اختياري مفضّل، فريد لكل طلب منطقي وبحد أقصى 128 محرفًا. أعد استخدامه لإعادة المحاولة الدقيقة؛ وتكون الأولوية لـ request_id عند إرسال الاسمين. |
| idempotency_key | string | اسم بديل اختياري لـ request_id. عند حذف الحقلين، يطبق الخادم حماية لمدة 60 ثانية للطلبات المتطابقة. |
| linkمشروط | string (URL) | عنوان URL المستهدف — ملف شخصي أو منشور أو فيديو أو قناة. مطلوب عندما تشترط الخدمة المختارة رابطًا. حتى 1000 حرف؛ ويجب أن يستخدم http(s). |
| quantityمشروط | integer | عدد الوحدات المطلوب تسليمها، ضمن الحدين الأدنى والأقصى للخدمة. |
| runsمشروط | integer | مطلوب مع interval فقط عندما يكون dripfeed=true. استخدم عددًا صحيحًا موجبًا ضمن الحد الفعلي المضبوط؛ السقف المطلق 1000. لا يمكن أن يتجاوز quantity × runs الحد الأقصى للخدمة. |
| intervalمشروط | integer | مطلوب مع runs فقط عندما يكون dripfeed=true. استخدم عدد دقائق صحيحًا موجبًا ضمن الحد الفعلي المضبوط؛ السقف المطلق 2880 دقيقة. ترفض الخدمات دون drip-feed الحقلين. جدول التسليم التدريجي: بحد أقصى 48 ساعة (عدد الدفعات × الفاصل الزمني). |
| coupon | string | رمز القسيمة المراد تطبيقه، وفق قيود القسيمة لكل مستخدم وعلى المستوى العام ومستوى الخدمة. |
| delay | integer | تأخير بدء اختياري. استخدم عددًا صحيحًا من 1 إلى 86400 ثانية إذا كانت الخدمة المختارة تدعم هذا الحقل. |
| lpost_count | integer | عدد اختياري لآخر المنشورات في الخدمات العادية المتوافقة. استخدم عددًا صحيحًا من 1 إلى 500 ما لم تعرّفه الخدمة كحقل أصلي خاص بها. |
| reactions | string (map) | خريطة رموز تعبيرية اختيارية للخدمات العادية المتوافقة. أرسل JSON أو صيغة PHP المدعومة بعلامات اقتباس مفردة، وبحد أقصى 50 رمزًا. يجب أن تكون القيم كلها R للتوزيع العشوائي أو كلها أعدادًا صحيحة موجبة حتى 1000000؛ لا تخلط النمطين. في الأعداد الدقيقة يصبح المجموع هو quantity الفعلي ويحدد المبلغ المثبت. |
مثال على الطلب
استبدل YOUR_API_KEY بالمفتاح المُولَّد ضمن صفحة API في لوحة تحكمك.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=add&service=1&request_id=550e8400-e29b-41d4-a716-446655440000&link=https://instagram.com/example&quantity=1000"const res = await fetch("https://notpanel.com/api/v3", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: "YOUR_API_KEY",
action: "add",
service: "1",
request_id: "550e8400-e29b-41d4-a716-446655440000",
link: "https://instagram.com/example",
quantity: "1000",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "add",
"service": "1",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"link": "https://instagram.com/example",
"quantity": "1000",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'add',
'service' => '1',
'request_id' => '550e8400-e29b-41d4-a716-446655440000',
'link' => 'https://instagram.com/example',
'quantity' => '1000',
]);
$response = file_get_contents('https://notpanel.com/api/v3', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => $body,
'ignore_errors' => true,
],
]));
print_r(json_decode($response, true));
مثال على الاستجابة
{
"order": 7001,
"status": "Pending",
"status_key": "pending",
"charge": "0.50",
"currency": "USD",
"cancel_available": true,
"cancel_window_seconds": 15,
"cancel_before": "2026-08-25T10:30:15.000Z"
}الأخطاء الشائعة
| الحالة | الجسم | السبب |
|---|---|---|
| 400 | {"error":"Service not found"} | معرّف الخدمة غير موجود. حدّث قائمة الخدمات واستخدم معرّفًا حاليًا. |
| 400 | {"error":"Service has been discontinued and is no longer available"} | الخدمة موجودة لكنها معطلة أو مؤرشفة أو لم تعد تقبل الطلبات. حدّث الكتالوج واختر خدمة متاحة. |
| 400 | {"error":"Insufficient balance"} | رصيد الحساب أقل من إجمالي تكلفة الطلب. اشحن الرصيد عبر لوحة التحكم. |
| 400 | {"error":"Quantity must be a positive integer"} | الكمية كانت صفراً، أو سالبة، أو غير صحيحة عددياً. تحقّق قبل التقديم. |
| 409 | {"error":"request_id was already used with different parameters"} | يتعارض الطلب مع الحالة القائمة، مثل إعادة استخدام request_id لإجراء add لطلب منطقي مختلف. استخدم الطلب الأصلي أو معرّفًا فريدًا جديدًا حسب الحالة. |