notpanel
الخدماتالأسعارالأسئلة الشائعةهداياAPI
notpanel

متابعون وإعجابات ومشاهدات لكل منصة.

يجمع الكتالوج بين خدمات نديرها مباشرة وسعة من شركاء موثوقين. يظهر التوفر والوقت وrefill وdrip-feed لكل خدمة؛ وتبقى مسارات التنفيذ وهوية الشركاء سرية.

المنتج

  • الخدمات
  • الأسعار
  • مؤشر الأسعار
  • برنامج الشركاء

الموارد

  • API
  • المدونة
  • الأسئلة الشائعة
  • الحالة

الشركة

  • من نحن
  • لماذا NotPanel
  • اتصل بنا

قانوني

  • شروط الخدمة
  • سياسة الخصوصية
  • سياسة الاسترداد

اللغات

  • English
  • Español
  • Português
  • Русский
  • Türkçe
  • العربية
  • हिन्दी
  • Bahasa Indonesia
  • Français
  • 中文

© 2026 NotPanel. جميع الحقوق محفوظة.

support@notpanel.com
notpanel
توثيق الواجهة
+
توثيق الواجهة

مقدمة

  • نظرة عامة
  • البدء
  • المصادقة
  • حدود المعدل
  • الأخطاء

الكتالوج

  • سرد الخدمات
  • الكتالوج المتقدم
  • أنواع الخدمات

الطلبات

  • تقديم طلب
  • حالة الطلب
  • تقدير الاسترداد
  • إعادة التعبئة
  • إلغاء

الحساب

  • حالة الحساب
  • الرصيد

الـ webhooks

  • إدارة الـ webhooks

المرجع

  • سجل التغييرات
  • مجموعات التطوير والمكتبات

تحتاج مساعدة؟

support@notpanel.com →

كتالوج الخدمات المتقدم

يعيد لقطة مقسّمة إلى صفحات للخدمات النشطة مع أسعار الحساب وبيانات اكتشاف منظمة. استخدم الإجراء القديم services عندما يتطلب SDK لإعادة البيع شكل المصفوفة الأصلي المخزن مؤقتًا.

POSThttps://notpanel.com/api/v3action=catalog
مفتاح API مطلوبمحدود بالمعدل (حساب مشترك + IP + إجراء)الجسم: application/x-www-form-urlencoded
يمثل action=catalog لقطة للاكتشاف. يصف catalog_updated_at أحدث تحديث لبيانات الكتالوج في النتيجة المصفاة، وليس توقيت سعر مضمونًا أو عرض سعر. المبلغ في استجابة action=add المثبتة هو المرجع.

المعاملات

الاسمالنوعالوصف
keyمطلوبstringمفتاح API الخاص بك.
actionمطلوبstringيجب أن تكون القيمة الحرفية "catalog".
pageintegerرقم الصفحة من 1 إلى 100000. الافتراضي 1.
limitintegerعدد الصفوف في الصفحة من 1 إلى 200. الافتراضي 100.
languagelanguage codeلغة اختيارية لاسم الخدمة: en أو es أو pt أو ru أو tr أو ar أو hi أو id أو fr أو zh. pt للبرتغالية البرازيلية وzh للصينية المبسطة. اتركه دون إرسال لبنية الاستجابة القديمة بالإنجليزية. يمكن للمشرفين مراجعة كل اسم أو تحسينه.
searchstringبحث في اسم الخدمة دون حساسية لحالة الأحرف، أو ID رقمي مطابق. الحد الأقصى 100 محرف.
platforminteger | slugID رقمي للمنصة أو slug.
categoryinteger | slugID رقمي للفئة أو slug. يحتاج slug إلى platform؛ ويمكن استخدام ID رقمي دون platform.
typestringنوع الخدمة المدعوم بدقة، مثل default أو custom_comments أو package أو web_traffic.
sortstringإحدى القيم popular أو price_asc أو price_desc أو time_asc أو time_desc أو name_asc أو newest. الافتراضي popular.
refillbooleanتصفية حسب دعم refill. تقبل 1 أو 0 أو true أو false.
dripfeedbooleanتصفية حسب دعم drip-feed. تقبل 1 أو 0 أو true أو false.
availablebooleanتصفية حسب توفر الطلب حاليًا. تقبل 1 أو 0 أو true أو false؛ ويعيد action=add فحص التوفر عند تثبيت الطلب.
min_rateUSD decimalأقل سعر غير سالب للحساب بالدولار لكل 1,000 وحدة. استخدم عددًا عشريًا قياسيًا من 0 إلى 999999999999.99999999، بحد أقصى 12 رقمًا صحيحًا و8 أرقام كسرية؛ تُرفض الإشارات والصيغة الأسية.
max_rateUSD decimalأعلى سعر غير سالب للحساب بالدولار لكل 1,000 وحدة. لا يمكن أن يقل عن min_rate. استخدم عددًا عشريًا قياسيًا من 0 إلى 999999999999.99999999، بحد أقصى 12 رقمًا صحيحًا و8 أرقام كسرية؛ تُرفض الإشارات والصيغة الأسية.

مثال على الطلب

استبدل 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=catalog&platform=instagram&available=true&sort=price_asc&limit=2&language=hi"
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: "catalog",
    platform: "instagram",
    available: "true",
    sort: "price_asc",
    limit: "2",
    language: "hi",
  }),
});

const data = await res.json();
console.log(data);
import requests

res = requests.post(
  "https://notpanel.com/api/v3",
  data={
    "key": "YOUR_API_KEY",
    "action": "catalog",
    "platform": "instagram",
    "available": "true",
    "sort": "price_asc",
    "limit": "2",
    "language": "hi",
},
)
print(res.json())
<?php
$body = http_build_query([
    'key' => 'YOUR_API_KEY',
    'action' => 'catalog',
    'platform' => 'instagram',
    'available' => 'true',
    'sort' => 'price_asc',
    'limit' => '2',
    'language' => 'hi',
]);

$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));

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

{
  "as_of": "2026-08-25T10:30:00.000Z",
  "requested_language": "hi",
  "catalog_updated_at": "2026-08-25T09:45:12.000Z",
  "total": 1,
  "page": 1,
  "per_page": 2,
  "total_pages": 1,
  "lowest_rate_per_1000": "0.50",
  "currency": "USD",
  "items": [
    {
      "service": "42547",
      "name": "Instagram कस्टम कमेंट्स",
      "canonical_name": "Instagram Custom Comments",
      "name_language": "hi",
      "description": "Custom comments for a public post",
      "type": "custom_comments",
      "rate": "0.50",
      "min": "10",
      "max": "5000",
      "platform": {
        "id": 1,
        "slug": "instagram",
        "name": "Instagram"
      },
      "category": {
        "id": 12,
        "slug": "comments",
        "name": "Comments"
      },
      "refill": true,
      "dripfeed": false,
      "available": true,
      "cancel": true,
      "cancel_mode": "grace_window",
      "cancel_window_seconds": 15,
      "average_time": "0-30 minutes",
      "average_time_minutes": 18,
      "average_time_sample_size": 24,
      "average_time_basis": "measured",
      "input_fields": [
        {
          "key": "comments",
          "label": "Comments",
          "type": "textarea",
          "required": true,
          "placeholder": "One comment per line. Each line is a separate comment."
        }
      ],
      "updated_at": "2026-08-25T09:45:12.000Z"
    }
  ]
}

الأخطاء الشائعة

الحالةالجسمالسبب
400{"error":"A platform is required when category is a slug"}يكون slug الفئة ملتبسًا دون slug أو ID للمنصة. أرسل platform أو استخدم ID الفئة الرقمي.
400{"error":"Invalid catalog sort"}قيمة sort ليست ضمن أوضاع الترتيب الموثقة.
400{"error":"language must be one of en, es, pt, ru, tr, ar, hi, id, fr, zh","error_code":"INVALID_LANGUAGE"}قيمة اللغة غير مدعومة. استخدم أحد رموز اللغات العشرة الموثقة لأسماء الخدمات.

التصفية والتوفر

ادمج البحث والمنصة والفئة والنوع والخصائص والتوفر ونطاق السعر. يتحدد نطاق slug الفئة بواسطة platform؛ أما ID الفئة الرقمي فواضح على مستوى النظام. حقل available إشارة اكتشاف حالية، بينما يبقى action=add فحص القبول النهائي.

الاستجابة وحداثة البيانات

تتضمن الاستجابة as_of وإجماليات الصفحات وlowest_rate_per_1000 بسعر الحساب وصفوف الخدمات. يمثل catalog_updated_at أحدث تحديث للبيانات الوصفية في المجموعة المصفاة، لا عرض سعر. يسرد input_fields الحقول الإضافية الخاصة بالخدمة فقط؛ وتظل حقول add العامة وقواعد النوع سارية. توضح حقول الوقت إن كان المتوسط مقاسًا أو تقديريًا أو غير معروف. وضع الإلغاء ونافذته بيانات اكتشاف؛ ويحدد add المثبت السعر والتوقيت الفعليين. يقيس متوسط الوقت المدة من إنشاء الطلب إلى أول تسليم إيجابي مرصود، بما في ذلك الطلبات النشطة والتدريجية. إنه تقدير للبدء لا الاكتمال. لا تستخدم المتوسطات العامة للمزود.

اكتشاف مترجم

أرسل language للبحث والترتيب باسم خدمة مُراجع باستخدام مصطلحات سوقية منتقاة ليتناسب مع السوق، مع استمرار البحث بالاسم الإنجليزي الأساسي. تضيف الاستجابة requested_language في المستوى الأعلى وحقلي canonical_name وname_language لكل عنصر. يوضح name_language اللغة المعادة فعليًا؛ وتعني en أن الترجمة المطلوبة كانت مفقودة أو قديمة فاستُخدم الاسم الإنجليزي. يبقى معرّف الخدمة المفتاح الثابت الوحيد للتكامل. يمكن للمشرفين مراجعة كل اسم أو تحسينه.