List services
Returns a cached compatibility array of active services and account-priced rates. A response may be cached for up to 5 minutes. It does not expose current availability; use action=catalog for availability and richer discovery metadata. The committed action=add response is authoritative for the order charge.
https://notpanel.com/api/v3action=servicesapplication/x-www-form-urlencodedParameters
| Name | Type | Description |
|---|---|---|
| keyRequired | string | Your API key. Required on every request. |
| actionRequired | string | Must be the literal string "services". |
| language | language code | Optional service-name language: en, es, pt, ru, tr, ar, hi, id, fr, or zh. pt is Brazilian Portuguese and zh is Simplified Chinese. Curated market terminology preserves recognizable brands and product identifiers; use the stable service ID for integration logic. Omit it to preserve the exact legacy English response shape. Admins can review or refine individual names. |
Example request
Replace YOUR_API_KEY with the key generated under your dashboard’s API page.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=services&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: "services",
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": "services",
"language": "hi",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'services',
'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));
Example response
[
{
"service": "1",
"name": "Instagram रियल फॉलोअर्स",
"canonical_name": "Instagram Followers — Real",
"name_language": "hi",
"type": "Default",
"type_key": "default",
"rate": "0.50",
"min": "100",
"max": "100000",
"category": "Instagram Followers",
"refill": true,
"cancel": true,
"dripfeed": true
},
{
"service": "2",
"name": "TikTok Views — High Retention",
"canonical_name": "TikTok Views — High Retention",
"name_language": "en",
"type": "Default",
"type_key": "default",
"rate": "0.05",
"min": "1000",
"max": "10000000",
"category": "TikTok Views",
"refill": false,
"cancel": true,
"dripfeed": false
}
]Common errors
| Status | Body | Cause |
|---|---|---|
| 400 | {"error":"Invalid API key"} | Missing or unrecognised key. |
| 403 | {"error":"Account suspended"} | Account is not in active status. |
| 400 | {"error":"language must be one of en, es, pt, ru, tr, ar, hi, id, fr, zh","error_code":"INVALID_LANGUAGE"} | The language value is not supported. Use one of the ten documented service-name language codes. |