الطلبات
إرسال طلب
ينشئ طلبًا ويخصم المبلغ في خطوة واحدة. يصل الردّ فورًا: يكون الطلب قيد الانتظار ويمكن إلغاؤه مجانًا خلال أول 15 ثانية. أرسل request_id الخاص بك حتى لا تنشئ إعادة المحاولة طلبًا ثانيًا أبدًا.
https://notpanel.com/api/v3action=add- مفتاح API مطلوب
- تجاوز حد الطلبات
- الجسم:
application/x-www-form-urlencoded
المعاملات
يُرسل دائمًا
keystringمطلوب- مفتاح API الخاص بك.
actionstringمطلوبaddيجب أن يكون السلسلة النصية الحرفية "add".
الطلب
serviceintegerمطلوب- معرّف الخدمة من قائمة الخدمات.
linkstringمطلوب- الرابط الذي سيُنفَّذ عليه الطلب. ما يُعد صالحًا يعتمد على الخدمة.
quantityintegerحسب نوع الخدمة- الكمية الإجمالية. مع
runsوintervalتكون الكمية لكل تشغيل. القوائم والتفاعلات الدقيقة تحسب كميتها بنفسها، وللباقات كمية ثابتة.
إعادة المحاولة
request_idstringاختياري- معرّفك الخاص لهذا الطلب، حتى 128 حرفًا. تكراره بالمعاملات نفسها يعيد الطلب الأصلي. واستخدامه مع معاملات مختلفة يعيد
REQUEST_ID_CONFLICT. idempotency_keystringاختياري- اسم بديل لـ
request_id. عند إرسالهما معًا تكون الأولوية لـrequest_id.
تغذية تدريجية
runsintegerاختياري- تغذية تدريجية كلاسيكية: عدد مرات التشغيل، من 2 إلى 100.
runs=1طلب عادي. intervalintegerاختياري- تغذية تدريجية كلاسيكية: الدقائق بين مرات التشغيل، من 1 إلى 1440.
drip_feed_total_minutesintegerاختياري- تغذية تدريجية بسيطة: أنجز كامل
quantityخلال هذا العدد من الدقائق، من 1 إلى 2880. لا تجمعها معrunsوinterval.
حقول الخدمة
reactionsstringاختياري- تفاعلات Telegram، مثل
👍,❤️,🔥أو👍:60,❤️:40. comments, usernames, answer_number, …حسب نوع الخدمة- حقول إضافية أخرى بأسمائها في الطلب، مثل
commentsأوusernamesأوanswer_number. تبيّن قائمةfieldsللخدمة أيها تقبله.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=add&service=7&link=https://instagram.com/example&quantity=1000&request_id=550e8400-e29b-41d4-a716-446655440000"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: "7",
link: "https://instagram.com/example",
quantity: "1000",
request_id: "550e8400-e29b-41d4-a716-446655440000",
}),
});
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": "7",
"link": "https://instagram.com/example",
"quantity": "1000",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'add',
'service' => '7',
'link' => 'https://instagram.com/example',
'quantity' => '1000',
'request_id' => '550e8400-e29b-41d4-a716-446655440000',
]);
$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));
استبدل YOUR_API_KEY بالمفتاح من صفحة API.
{
"order": 1234567,
"status": "Pending",
"status_key": "pending",
"charge": "1.20",
"currency": "USD",
"instant_cancel_until": "2026-10-03T10:00:15Z",
"cancel_available": true,
"cancel_window_seconds": 15,
"cancel_before": "2026-10-03T10:00:15Z"
}الأخطاء
- 400
{"error":"Minimum quantity is 100","error_code":"MINIMUM_QUANTITY","retryable":false,"details":{"n":100}}الكمية أقل من الحد الأدنى للخدمة. الصيغة نفسها تغطي الحد الأقصى والخطوة والفحوصات الأخرى.
- 402
{"error":"Insufficient balance","error_code":"INSUFFICIENT_BALANCE","retryable":false}لا تغطي المحفظة المبلغ. لم يُخصم شيء ولا يوجد طلب. أضف رصيدًا في
/dashboard/wallet. - 409
{"error":"request_id was already used with different parameters","error_code":"REQUEST_ID_CONFLICT","retryable":false}هذا
request_idأنشأ طلبًا بالفعل بمعاملات مختلفة. استخدمrequest_idجديدًا لطلب مختلف.
الردّ
يعيد كل add ناجح الطلب الجديد فورًا. لا تظهر أي تفاصيل داخلية للتنفيذ؛ وتظهر التغييرات اللاحقة في status وفي الـ webhooks.
حقول الاستجابة
orderinteger- رقم الطلب. وهو الرقم نفسه في لوحة التحكم وفي الدعم وفي كل إجراء آخر.
statusstringPendingللطلب الجديد. يعيدrequest_idالمكرر الحالة الحالية للطلب.status_keystringpendingللطلب الجديد، وإلا فمفتاح الحالة الحالية.chargestring- المبلغ الذي خُصم منك، بالدولار الأمريكي، كسلسلة نصية.
currencystring- دائمًا
USD. instant_cancel_untilstring (UTC time)- نهاية نافذة الإلغاء المجاني: بعد 15 ثانية من إنشاء الطلب.
cancel_availablebooleantrueما دام يمكن إلغاء الطلب مع استرداد كامل. أُبقي للبرامج النصية السابقة.cancel_window_secondsinteger- مدة نافذة الإلغاء المجاني بالثواني: 15. أُبقي للبرامج النصية السابقة.
cancel_beforestring (UTC time)- الوقت نفسه في
instant_cancel_until. أُبقي للبرامج النصية السابقة. replayedboolean- موجود وقيمته true فقط عندما يكون هذا هو الطلب الأصلي لـ
request_idمكرر.
إعادة المحاولة وrequest_id
يُبحث عن request_id (أو بديله idempotency_key، حتى 128 حرفًا) قبل أي شيء آخر. يعيد الطلب نفسه الطلب الأصلي ولا يُخصم أي مبلغ مرتين. ويعيد طلب مختلف بالمعرّف نفسه REQUEST_ID_CONFLICT. وإذا وصلت نسختان معًا، تفوز إحداهما وتحصل الأخرى على الطلب نفسه.
key=YOUR_API_KEY&action=add&service=7&link=https://instagram.com/example&quantity=1000&request_id=550e8400-e29b-41d4-a716-446655440000{
"order": 1234567,
"status": "In progress",
"status_key": "in_progress",
"charge": "1.20",
"currency": "USD",
"instant_cancel_until": "2026-10-03T10:00:15Z",
"cancel_available": false,
"cancel_window_seconds": 15,
"cancel_before": "2026-10-03T10:00:15Z",
"replayed": true
}key=YOUR_API_KEY&action=add&service=7&link=https://instagram.com/example&quantity=2000&request_id=550e8400-e29b-41d4-a716-446655440000{
"error": "request_id was already used with different parameters",
"error_code": "REQUEST_ID_CONFLICT",
"retryable": false
}بعد تقديم الطلب
يكون الطلب Pending ويمكنك إلغاؤه مع استرداد كامل خلال أول 15 ثانية. تصل المشكلات التي تُكتشف بعد ذلك، مثل رابط خاطئ أو رابط مشغول، على شكل طلب Canceled مع reason_code واسترداد تلقائي. وهي ليست أخطاء من add أبدًا.
ما الذي يُفحص بالترتيب
تُعاد أول مشكلة تُكتشف ولا يُخصم شيء.
- الخدمة موجودة ويمكنها قبول الطلبات:
SERVICE_NOT_FOUNDوSERVICE_DISCONTINUEDوSERVICE_PAUSED. - الكمية ضمن الحدين الأدنى والأقصى:
MINIMUM_QUANTITYوMAXIMUM_QUANTITY. - الكمية تناسب الخطوة:
QUANTITY_STEP. - القوائم والتفاعلات الدقيقة: الكمية تطابق عدد العناصر،
QUANTITY_MISMATCH. - الحقول الإضافية متاحة وصالحة:
OPTION_NOT_SUPPORTEDوMISSING_PARAMETERوINVALID_OPTION. - قيم التغذية التدريجية مناسبة:
DRIP_FEED_NOT_AVAILABLEوDRIP_FEED_CONFLICTوDRIP_FEED_INVALID. - الرابط يناسب الخدمة:
INVALID_LINKوLINK_BLOCKED. - طلب نشط واحد لكل رابط، حيث تطبق الخدمة هذه القاعدة:
LINK_BUSY. - الرصيد يغطي المبلغ:
INSUFFICIENT_BALANCE.
أخطاء add
تستخدم كلها صيغة الخطأ المشتركة. تفرّع حسب error_code؛ فنص الرسالة موجّه للبشر.
- 400
MISSING_PARAMETER
Missing required parameter: {param}معامل مطلوب مفقود. يسمّيه details.param. صحّح الطلب أولًا.
- 400
INVALID_PARAMETER
Invalid {param}: {rule}قيمة معامل غير صالحة. يبيّن details.param و details.rule أيّها ولماذا. صحّح الطلب أولًا.
- 404
SERVICE_NOT_FOUND
Service not foundلا توجد خدمة بهذا المعرّف، أو أنها غير متاحة لك. صحّح الطلب أولًا.
- 410
SERVICE_DISCONTINUED
Service has been discontinuedأُوقفت الخدمة نهائيًا. صحّح الطلب أولًا.
- 409
SERVICE_PAUSED
Service is temporarily unavailableالخدمة متوقفة مؤقتًا حاليًا. حاول لاحقًا. قد تفيد إعادة المحاولة.
- 503
ORDER_PLACEMENT_PAUSED
Ordering is temporarily pausedتقديم الطلبات متوقف للجميع لفترة قصيرة. يبيّن Retry-After متى تعيد المحاولة. قد تفيد إعادة المحاولة.
- 400
MINIMUM_QUANTITY
Minimum quantity is {n}الكمية أقل من الحد الأدنى للخدمة. صحّح الطلب أولًا.
- 400
MAXIMUM_QUANTITY
Maximum quantity is {n}الكمية أكبر من الحد الأقصى للخدمة. صحّح الطلب أولًا.
- 400
QUANTITY_STEP
Quantity must be a multiple of {step}الكمية ليست من مضاعفات خطوة الخدمة. صحّح الطلب أولًا.
- 400
QUANTITY_MISMATCH
quantity must equal the number of items in {param} ({count})الكمية لا تطابق عدد العناصر في قائمة أو في حقل التفاعلات. صحّح الطلب أولًا.
- 400
MINIMUM_ORDER_AMOUNT
Minimum order amount is ${amount}قيمة الطلب أقل من الحد الأدنى لمبلغ الطلب. صحّح الطلب أولًا.
- 400
OPTION_NOT_SUPPORTED
This service does not accept {param}الخدمة لا تقبل حقلًا أرسلته. صحّح الطلب أولًا.
- 400
INVALID_OPTION
Invalid {param}: {rule}قيمة حقل إضافي غير صالحة. يبيّن details.param و details.rule أيّها ولماذا. صحّح الطلب أولًا.
- 400
DRIP_FEED_NOT_AVAILABLE
Drip-feed is not available for this serviceليس للخدمة تغذية تدريجية، أو ليس لهذه الكمية. صحّح الطلب أولًا.
- 400
DRIP_FEED_CONFLICT
Send runs and interval, or drip_feed_total_minutes, not bothأُرسلت صيغتا التغذية التدريجية معًا في طلب واحد. صحّح الطلب أولًا.
- 400
DRIP_FEED_INVALID
{rule}قيم التغذية التدريجية لا تناسب الحدود. تبيّن الرسالة أي حد. صحّح الطلب أولًا.
- 400
INVALID_LINK
Link is invalid for this serviceالرابط لا يناسب هذه الخدمة. صحّح الطلب أولًا.
- 400
LINK_BLOCKED
This link is blocked. Contact support if this is a mistake.الرابط محظور. تواصل مع الدعم إذا رأيت أن ذلك خطأ. صحّح الطلب أولًا.
- 409
LINK_BUSY
An order for this link is still running. Wait until it finishes.ما زال طلب سابق لهذا الرابط قيد التنفيذ. انتظر حتى ينتهي. قد تفيد إعادة المحاولة.
- 402
INSUFFICIENT_BALANCE
Insufficient balanceرصيد المحفظة أقل من المبلغ المطلوب خصمه. صحّح الطلب أولًا.
- 429
ORDER_LIMIT_REACHED
Too many orders. Try again later.قُدّم عدد كبير جدًا من الطلبات أو هي مفتوحة في الوقت نفسه. حاول لاحقًا. قد تفيد إعادة المحاولة.
- 409
SERVICE_CHANGED
Service settings changed while placing the order. Retry.تغيّرت إعدادات الخدمة أثناء تقديم الطلب. أرسل الطلب مجددًا. قد تفيد إعادة المحاولة.
- 409
REQUEST_ID_CONFLICT
request_id was already used with different parametersهذا request_id أنشأ طلبًا بالفعل بمعاملات مختلفة. صحّح الطلب أولًا.
- 500
INTERNAL_ERROR
Internal server errorحدث عطل من جانبنا. تكرار add بالقيمة نفسها في request_id آمن. قد تفيد إعادة المحاولة.