La API v3 conserva el contrato conocido key + action con respuestas JSON. Un cliente reseller existente puede cambiar directamente su URL base; los campos y acciones avanzados de v3 son extensiones opcionales.
Registro gratuito mediante /register — correo electrónico o Google OAuth. No se necesita tarjeta de crédito para generar una clave de API, solo para financiar el monedero y realizar pedidos reales.
Una vez que hayas iniciado sesión, dirígete a /dashboard/api. Haz clic en "Generate key" y copia el valor en bruto: se muestra una sola vez, nunca más. Si lo pierdes, revócalo y genera uno nuevo. Cada usuario puede tener hasta 5 claves activas.
Todas tus claves comparten el límite efectivo de solicitudes por minuto de la cuenta. El gasto exitoso acumulado determina el nivel automático; también pueden aplicarse límites de IP y acción — consulta Límites de tasa.
Para compatibilidad, action=services devuelve un array en caché de servicios activos. Para búsqueda paginada, disponibilidad y metadatos estructurados usa action=catalog. Sustituye YOUR_API_KEY por la clave del paso 2.
# 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";
¿Necesitas nombres comprensibles para usuarios regionales? Añade language=es (o en, pt, ru, tr, ar, hi, id, fr, zh) a services o catalog. Los nombres se localizan con terminología de mercado seleccionada según el uso real del mercado, las marcas siguen siendo reconocibles y la respuesta indica el idioma utilizado. Omítelo para mantener sin cambios la estructura antigua en inglés. Los administradores pueden revisar o ajustar cada nombre.
Elige un service, financia el wallet y llama action=add con los campos del tipo. Los clientes antiguos pueden enviar la petición conocida sin cambios. Para controlar reintentos exactos, añade opcionalmente un request_id único de hasta 128 caracteres. Consulta Realizar pedido para ver la lista completa de parámetros.
Consulta el estado de pedidos individuales o lotes de hasta 100 ID. Para integraciones basadas en eventos, registra un webhook para los seis eventos compatibles: order.completed, order.partial, order.processing, order.in_progress, order.refunded y order.refill_completed. La entrega es de mejor esfuerzo con reintentos; reconcilia el estado importante con action=status.
Cambia la URL base y conserva las llamadas conocidas key + action. services, add, status, balance, refill, refill_status y cancel funcionan directamente. Adopta catalog, refund_quote, claves exactas, lotes y webhooks firmados cuando los necesites.