كتالوج الخدمات المتقدم
يعيد لقطة مقسّمة إلى صفحات للخدمات النشطة مع أسعار الحساب وبيانات اكتشاف منظمة. استخدم الإجراء القديم services عندما يتطلب SDK لإعادة البيع شكل المصفوفة الأصلي المخزن مؤقتًا.
https://notpanel.com/api/v3action=catalogapplication/x-www-form-urlencodedaction=catalog لقطة للاكتشاف. يصف catalog_updated_at أحدث تحديث لبيانات الكتالوج في النتيجة المصفاة، وليس توقيت سعر مضمونًا أو عرض سعر. المبلغ في استجابة action=add المثبتة هو المرجع.المعاملات
| الاسم | النوع | الوصف |
|---|---|---|
| keyمطلوب | string | مفتاح API الخاص بك. |
| actionمطلوب | string | يجب أن تكون القيمة الحرفية "catalog". |
| page | integer | رقم الصفحة من 1 إلى 100000. الافتراضي 1. |
| limit | integer | عدد الصفوف في الصفحة من 1 إلى 200. الافتراضي 100. |
| language | language code | لغة اختيارية لاسم الخدمة: en أو es أو pt أو ru أو tr أو ar أو hi أو id أو fr أو zh. pt للبرتغالية البرازيلية وzh للصينية المبسطة. اتركه دون إرسال لبنية الاستجابة القديمة بالإنجليزية. يمكن للمشرفين مراجعة كل اسم أو تحسينه. |
| search | string | بحث في اسم الخدمة دون حساسية لحالة الأحرف، أو ID رقمي مطابق. الحد الأقصى 100 محرف. |
| platform | integer | slug | ID رقمي للمنصة أو slug. |
| category | integer | slug | ID رقمي للفئة أو slug. يحتاج slug إلى platform؛ ويمكن استخدام ID رقمي دون platform. |
| type | string | نوع الخدمة المدعوم بدقة، مثل default أو custom_comments أو package أو web_traffic. |
| sort | string | إحدى القيم popular أو price_asc أو price_desc أو time_asc أو time_desc أو name_asc أو newest. الافتراضي popular. |
| refill | boolean | تصفية حسب دعم refill. تقبل 1 أو 0 أو true أو false. |
| dripfeed | boolean | تصفية حسب دعم drip-feed. تقبل 1 أو 0 أو true أو false. |
| available | boolean | تصفية حسب توفر الطلب حاليًا. تقبل 1 أو 0 أو true أو false؛ ويعيد action=add فحص التوفر عند تثبيت الطلب. |
| min_rate | USD decimal | أقل سعر غير سالب للحساب بالدولار لكل 1,000 وحدة. استخدم عددًا عشريًا قياسيًا من 0 إلى 999999999999.99999999، بحد أقصى 12 رقمًا صحيحًا و8 أرقام كسرية؛ تُرفض الإشارات والصيغة الأسية. |
| max_rate | USD 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"} | قيمة اللغة غير مدعومة. استخدم أحد رموز اللغات العشرة الموثقة لأسماء الخدمات. |