notpanel
ServiciosPreciosPreguntas frecuentesSorteoAPI
notpanel

Seguidores, likes y vistas para cada plataforma.

El catálogo combina servicios operados directamente con capacidad de socios verificados. La disponibilidad, el tiempo, el refill y el drip-feed se muestran por servicio; las rutas y la identidad de los socios son confidenciales.

Producto

  • Servicios
  • Precios
  • Índice de precios
  • Programa de afiliados

Recursos

  • API
  • Blog
  • Preguntas frecuentes
  • Estado

Empresa

  • Sobre nosotros
  • Por qué NotPanel
  • Contáctanos

Legal

  • Términos del Servicio
  • Política de Privacidad
  • Política de Reembolsos

Idiomas

  • English
  • Español
  • Português
  • Русский
  • Türkçe
  • العربية
  • हिन्दी
  • Bahasa Indonesia
  • Français
  • 中文

© 2026 NotPanel. Todos los derechos reservados.

support@notpanel.com
notpanel
Documentación de la API
+
Documentación de la API

Introducción

  • Resumen
  • Primeros pasos
  • Autenticación
  • Límites de tasa
  • Errores

Catálogo

  • Listar servicios
  • Catálogo avanzado
  • Tipos de servicio

Pedidos

  • Realizar pedido
  • Estado del pedido
  • Cotización de reembolso
  • Refill
  • Cancelar

Cuenta

  • Estado de la cuenta
  • Saldo

Webhooks

  • Gestionar webhooks

Referencia

  • Registro de cambios
  • SDK y librerías

¿Necesitas ayuda?

support@notpanel.com →

Catálogo avanzado de servicios

Devuelve una instantánea paginada de servicios activos con tarifas aplicables a la cuenta y metadatos estructurados de descubrimiento. Usa la acción services heredada cuando un SDK existente necesite el array original en caché.

POSThttps://notpanel.com/api/v3action=catalog
Clave de API requeridaCon límite de tasa (cuenta compartida + IP + acción)Cuerpo: application/x-www-form-urlencoded
action=catalog es una instantánea de descubrimiento. catalog_updated_at indica la actualización más reciente de metadatos en el resultado filtrado, no una marca de precio garantizada ni una cotización. El cargo de la respuesta confirmada de action=add es definitivo.

Parámetros

NombreTipoDescripción
keyObligatoriostringTu clave de API.
actionObligatoriostringDebe ser la cadena literal "catalog".
pageintegerNúmero de página de 1 a 100000. Predeterminado: 1.
limitintegerFilas por página de 1 a 200. Predeterminado: 100.
languagelanguage codeIdioma opcional para el nombre: en, es, pt, ru, tr, ar, hi, id, fr o zh. pt es portugués de Brasil y zh es chino simplificado. Omítelo para mantener la estructura antigua en inglés. Los administradores pueden revisar o ajustar cada nombre.
searchstringBúsqueda sin distinguir mayúsculas en el nombre, o ID numérico exacto. Máximo 100 caracteres.
platforminteger | slugID numérico o slug de plataforma.
categoryinteger | slugID numérico o slug de categoría. El slug requiere platform; un ID numérico puede usarse sin platform.
typestringTipo de servicio admitido exacto, como default, custom_comments, package o web_traffic.
sortstringUno de popular, price_asc, price_desc, time_asc, time_desc, name_asc o newest. Predeterminado: popular.
refillbooleanFiltra por capacidad de reposición. Acepta 1, 0, true o false.
dripfeedbooleanFiltra por capacidad drip-feed. Acepta 1, 0, true o false.
availablebooleanFiltra por disponibilidad actual. Acepta 1, 0, true o false; action=add vuelve a comprobarla al confirmar.
min_rateUSD decimalTarifa mínima no negativa en USD por 1.000 unidades para la cuenta. Usa un decimal canónico de 0 a 999999999999.99999999, con un máximo de 12 dígitos enteros y 8 decimales; no se admiten signos ni exponentes.
max_rateUSD decimalTarifa máxima no negativa en USD por 1.000 unidades. No puede ser menor que min_rate. Usa un decimal canónico de 0 a 999999999999.99999999, con un máximo de 12 dígitos enteros y 8 decimales; no se admiten signos ni exponentes.

Ejemplo de petición

Reemplaza YOUR_API_KEY por la clave generada en la página de API de tu panel.

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));

Ejemplo de respuesta

{
  "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"
    }
  ]
}

Errores comunes

EstadoCuerpoCausa
400{"error":"A platform is required when category is a slug"}Un slug de categoría es ambiguo sin plataforma. Indica platform o usa el ID numérico de categoría.
400{"error":"Invalid catalog sort"}El valor sort no pertenece a los modos documentados.
400{"error":"language must be one of en, es, pt, ru, tr, ar, hi, id, fr, zh","error_code":"INVALID_LANGUAGE"}El valor de idioma no es compatible. Usa uno de los diez códigos de idioma documentados para nombres de servicios.

Filtros y disponibilidad

Combina búsqueda, plataforma, categoría, tipo, capacidades, disponibilidad y tarifa. Un slug de categoría se acota con platform; un ID numérico es inequívoco globalmente. available es una señal actual de descubrimiento, mientras action=add realiza la comprobación final.

Respuesta y vigencia

La respuesta incluye as_of, totales de paginación, lowest_rate_per_1000 para la cuenta y filas de servicios. catalog_updated_at es la última actualización de metadatos del conjunto, no una cotización. input_fields solo enumera campos adicionales específicos; siguen aplicándose los campos comunes y reglas por tipo. Los campos de tiempo indican si el promedio está medido, estimado o es desconocido. El modo y la ventana de cancelación son metadatos; el add confirmado controla el cargo y los plazos reales. El tiempo promedio mide desde la creación del pedido hasta la primera entrega positiva observada, incluidos pedidos activos y graduales. Estima el inicio, no la finalización. No se usan promedios genéricos del proveedor.

Descubrimiento localizado

Envía language para buscar y ordenar por un nombre localizado con terminología de mercado seleccionada, sin dejar de buscar también el nombre canónico en inglés. La respuesta incluye entonces requested_language en el nivel superior y canonical_name más name_language en cada elemento. name_language indica el idioma realmente devuelto; en significa que faltaba la traducción solicitada o estaba desactualizada y se usó el nombre inglés. El ID del servicio es la única clave estable de integración. Los administradores pueden revisar o ajustar cada nombre.