v3 API familiar form-encoded key + action requests और JSON responses रखती है। मौजूदा reseller client केवल base URL बदलकर सीधे काम कर सकता है; advanced v3 fields और actions optional additions हैं।
मुफ़्त साइनअप — इसके ज़रिए /register — ईमेल या Google OAuth। API की जनरेट करने के लिए क्रेडिट कार्ड की ज़रूरत नहीं, सिर्फ़ लाइव ऑर्डर प्लेस करने के लिए वॉलेट फंड करने पर।
लॉग इन होने के बाद, /dashboard/api पर जाएँ। "Generate key" पर क्लिक करें और raw वैल्यू कॉपी करें — यह एक बार दिखाई जाती है, फिर कभी नहीं। अगर यह खो जाए, तो उसे रिवोक करके नई की जनरेट करें। हर यूज़र अधिकतम 5 सक्रिय की रख सकता है।
आपकी सभी keys account का effective requests-per-minute limit share करती हैं। Lifetime successful spend automatic tier तय करता है; IP और action limits भी लागू हो सकते हैं — देखें रेट लिमिट.
Services list सबसे सरल read-only call है। action=services account-priced rate, min, max और capability flags वाले active services का cached compatibility array लौटाता है। Pagination, search, availability, platform/category metadata या freshness fields के लिए action=catalog इस्तेमाल करें। YOUR_API_KEY को step 2 की key से बदलें।
# 1. List active catalog services
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=services"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: "services",
}),
});
const services = await res.json();
console.log(`Found ${services.length} services`);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={"key": "YOUR_API_KEY", "action": "services"},
)
services = res.json()
print(f"Found {len(services)} services")<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'services',
]);
$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,
],
]));
$services = json_decode($response, true);
echo "Found " . count($services) . " services\n";
Regional users के लिए natural names चाहिए? services या catalog में language=hi (या en, es, pt, ru, tr, ar, id, fr, zh) जोड़ें। Names market में चलने वाली language के हिसाब से curated market terminology के अनुसार localized हैं, brands recognizable रहते हैं, और response actual used language बताता है। Unchanged legacy English shape के लिए इसे छोड़ दें। Admins हर नाम की समीक्षा या refinement कर सकते हैं।
स्टेप 3 से service ID चुनें, wallet fund करें और service type के fields के साथ action=add कॉल करें। पुराने clients familiar request बिना बदलाव भेज सकते हैं। Exact retry control चाहिए तो अधिकतम 128 characters का unique optional request_id जोड़ें। देखें ऑर्डर प्लेस करें पूरी पैरामीटर सूची के लिए।
पोल करें स्टेटस अलग-अलग ऑर्डर या 100 तक ID के बैच के लिए। इवेंट-चालित इंटीग्रेशन के लिए, रजिस्टर करें एक webhook इन छह supported events के लिए: order.completed, order.partial, order.processing, order.in_progress, order.refunded और order.refill_completed। Delivery retries के साथ best-effort है; महत्वपूर्ण state को action=status से reconcile करें।
Base URL बदलें और familiar key + action calls वैसे ही रखें। services, add, status, balance, refill, refill_status और cancel सीधे काम करते हैं। जब जरूरत हो तब optional v3 catalog, refund_quote, exact retry keys, bulk actions और signed webhooks अपनाएँ।