Catálogo
Listar servicios
Lista todos los servicios que puedes pedir, con tu propio precio, límites, etiquetas, campos adicionales, límites de drip feed y disponibilidad. Cada servicio es un objeto y todos los campos de versiones anteriores siguen ahí.
https://notpanel.com/api/v3action=services- Clave de API requerida
- Límite de solicitudes superado
- Cuerpo:
application/x-www-form-urlencoded
Parámetros
Siempre se envía
keystringObligatorio- Tu clave de API.
actionstringObligatorioservicesDebe ser la cadena literal "services".
Parámetros de la acción
languagestringOpcional- Idioma de los nombres. Omítelo para inglés. El nombre en inglés siempre está en canonical_name.en · es · pt · ru · tr · ar · hi · id · fr · zh
servicestring (CSV)Opcional- Devuelve solo estos servicios. Hasta 100 ID de servicio separados por comas.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=services&service=7,12"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",
service: "7,12",
}),
});
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",
"service": "7,12",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'services',
'service' => '7,12',
]);
$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));
Sustituye YOUR_API_KEY por la clave de tu página de API.
[
{
"service": "7",
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram Followers",
"rate": "1.20",
"min": "100",
"max": "10000",
"refill": true,
"cancel": true,
"dripfeed": true,
"type_key": "default",
"canonical_name": "Instagram Followers",
"name_language": "en",
"platform": "instagram",
"tags": ["refill", "cancel", "drip_feed"],
"fields": [],
"drip_feed": {
"mode": "batches",
"min_runs": 2,
"max_runs": 100,
"min_interval_minutes": 1,
"max_interval_minutes": 1440,
"max_total_minutes": 2880
},
"step": 1,
"availability": "available",
"average_time_minutes": 30
},
{
"service": "12",
"name": "Telegram Post Reactions",
"type": "Default",
"category": "Telegram Reactions",
"rate": "0.90",
"min": "10",
"max": "50000",
"refill": false,
"cancel": false,
"dripfeed": false,
"type_key": "default",
"canonical_name": "Telegram Post Reactions",
"name_language": "en",
"platform": "telegram",
"tags": ["reactions"],
"fields": [
{
"key": "reactions",
"kind": "reactions",
"required": false,
"label": "Reactions",
"allowed": ["👍", "👎", "❤️", "🔥", "🥰", "👏", "😁", "🤔", "🤯", "😱", "🤬", "😢", "🎉", "🤩", "🤮", "💩", "🙏", "👌", "🕊️", "🤡", "🥱", "🥴", "😍", "🐳", "❤️🔥", "🌚", "🌭", "💯", "🤣", "⚡", "🍌", "🏆", "💔", "🤨", "😐", "🍓", "🍾", "💋", "🖕", "😈", "😴", "😭", "🤓", "👻", "👨💻", "👀", "🎃", "🙈", "😇", "😨", "🤝", "✍️", "🤗", "🫡", "🎅", "🎄", "☃️", "💅", "🤪", "🗿", "🆒", "💘", "🙉", "🦄", "😘", "💊", "🙊", "😎", "👾", "🤷♂️", "🤷", "🤷♀️", "😡"],
"max_distinct": 11,
"modes": ["mix", "exact"]
}
],
"drip_feed": null,
"step": 1,
"availability": "available",
"average_time_minutes": null
}
]Errores
- 400
{"error":"Invalid language: not_allowed","error_code":"INVALID_PARAMETER","retryable":false,"details":{"param":"language","rule":"not_allowed"}}El idioma no es uno de los códigos de idioma admitidos.
- 400
{"error":"Maximum 100 IDs per request","error_code":"TOO_MANY_IDS","retryable":false}La lista de servicios contiene más de 100 ID.
- 429
{"error":"Rate limit exceeded","error_code":"API_RATE_LIMITED","retryable":true,"retry_after":12}Más de 10 solicitudes en un minuto. Espera los segundos indicados en Retry-After.
Campos de la respuesta
La respuesta es un array con un objeto por servicio. Todos los campos de versiones anteriores no cambian; tags, fields, drip_feed, step, availability y average_time_minutes son nuevos, y cancel ahora significa lo que dice.
Campos de la respuesta
serviceinteger- ID numérico estable del servicio. Úsalo como
serviceenadd. namestring- Nombre del servicio en el idioma solicitado.
typestring- Nombre del tipo de servicio. Para la lógica, usa
type_key. categorystring- Nombre de la categoría.
ratestring- Tu propio precio por 1.000 unidades en USD, como cadena de texto. Ya incluye el descuento de tu cuenta. Para un paquete, es el precio de un pedido.
mininteger- Cantidad mínima para un pedido.
maxinteger- Cantidad máxima para un pedido.
refillbooleantruecuando la reposición funciona para este servicio a través de la API.cancelbooleantruecuando se admiten solicitudes de cancelación después de los primeros 15 segundos. La cancelación instantánea del inicio funciona en todos los pedidos y no se muestra aquí.dripfeedbooleantruecuando el servicio admite drip feed, ya sea conrunseintervalo condrip_feed_total_minutes.type_keystring- Clave de tipo estable, como
defaultocustom_comments. Te indica qué campos adicionales esperar. canonical_namestring- El nombre en inglés, incluso cuando se indica
language. name_languagestring- Idioma de
name. platformstring | null- Clave de plataforma, como
instagram, onullcuando el servicio no tiene ninguna. tagsstring[]- Etiquetas breves sobre lo que ofrece el servicio. Consulta la lista de abajo.
fieldsobject[]- Entradas adicionales que admite el servicio, con sus límites. Vacío cuando solo hacen falta enlace y cantidad.
drip_feedobject | null- Límites de drip feed, o
nullcuando el servicio no lo tiene. stepinteger- La cantidad debe ser múltiplo de este número.
availabilitystringavailableopaused. Consulta Disponibilidad más abajo.average_time_minutesinteger | null- Minutos medios hasta que empieza la entrega, o
nullcuando se conocen muy pocos pedidos.
Etiquetas
tags te permite filtrar la lista sin leer todos los campos. Un servicio tiene una etiqueta por cada cosa que ofrece.
Etiquetas
refill- La reposición funciona a través de la API.
cancel- Se admiten solicitudes de cancelación, no solo la cancelación instantánea.
drip_feed- El servicio admite drip feed.
reactions- El servicio admite un campo
reactions. last_posts- El servicio admite un campo
last_posts. poll_answer- El servicio admite un campo
answer_number. Cada uno de los demás campos adicionales añade una etiqueta con su propio nombre, por ejemplocomments.
Campos adicionales
fields describe cada entrada adicional que admite un servicio: su clave, tipo, si es obligatoria y sus límites. Envía cada campo por su clave en add. Las reacciones enumeran los emoji permitidos y los modos. La página siguiente explica cada campo y sus reglas.
Límites de drip feed
drip_feed es null o tiene una de dos formas. Los servicios batches admiten un número de ejecuciones y los minutos entre ellas. Los servicios unit_delay reparten todo el pedido en un tiempo total. En ambos casos, el pedido completo puede durar como máximo 48 horas (2880 minutos).
{
"mode": "batches",
"min_runs": 2,
"max_runs": 100,
"min_interval_minutes": 1,
"max_interval_minutes": 1440,
"max_total_minutes": 2880
}{
"mode": "unit_delay",
"max_total_minutes": 2880
}Disponibilidad
Errores de servicio al pedir
add devuelve estos errores cuando el servicio elegido no puede aceptar un pedido.
- 404
SERVICE_NOT_FOUND
Service not foundNingún servicio tiene este ID o no está disponible para ti. Corrige primero la solicitud.
- 410
SERVICE_DISCONTINUED
Service has been discontinuedEl servicio se ha descontinuado. Corrige primero la solicitud.
- 409
SERVICE_PAUSED
Service is temporarily unavailableEl servicio está en pausa por ahora. Inténtalo más tarde. Reintentar puede servir.
Otras acciones de lectura
action=catalog devuelve los servicios como una lista paginada con su plataforma, categoría, tiempo medio y campos del pedido. Filtros opcionales: page, limit, search, platform, category, type, refill, dripfeed, available, min_rate, max_rate, sort y language. catalog está limitado a 30 solicitudes por minuto por cuenta.
action=account_status devuelve tu gasto acumulado, tu nivel de límite de la API y tu descuento.