Saltar al contenido
1PANEL PLUS

Cómo usar la API de un panel SMM: guía de conexión API v2 para revendedores

Por 1PANEL PLUS18 min de lectura YouTubeÚltima actualización


Resumen

La forma de enviar solicitudes de la API v2 estándar de panel SMM, sus 6 actions, ejemplos de respuesta, mensajes de error y límites de solicitudes, desde el punto de vista del revendedor.

La API de un panel SMM es la forma de conexión para enviar pedidos automáticamente y consultar su estado desde otro panel o desde un programa propio. 1PANEL PLUS usa la API v2 estándar de panel SMM, así que si ya tienes código conectado a otro panel, solo cambias la dirección y la clave para conectarte al instante. La API y el sitio web usan los mismos servicios, el mismo precio por 1,000 y el mismo saldo.

¿Quién usa la API de un panel SMM?

  • Revendedores: publican los servicios en su propio panel y reenvían automáticamente los pedidos de sus clientes
  • Agencias: envían de una vez, a una hora fija, los pedidos de varios canales
  • Desarrolladores: crean scripts que piden al empezar una transmisión o al subir un video nuevo
  • Operadores: reúnen el saldo y el estado de los pedidos en su propia pantalla de gestión

¿Cómo obtengo una clave API?

Créala en la pantalla Clave API del panel después de que se abone tu primera recarga. La clave se muestra una sola vez al crearla, así que cópiala de inmediato y guárdala en un lugar seguro. Al crear una clave nueva, la anterior deja de funcionar al instante, así que si crees que tu clave quedó expuesta, crea una nueva para reemplazarla.

¿Cómo envío solicitudes a la API?

Todas las solicitudes se envían por POST a una sola dirección, https://1panelplus.com/api/v2. Usa la forma que prefieras: campos de formulario (application/x-www-form-urlencoded o multipart) o cuerpo JSON (Content-Type: application/json), e incluye key y action en todas las solicitudes. Todas las respuestas son JSON.

Ejemplo de solicitud (campos de formulario): key=YOUR_API_KEY&action=balance

Ejemplo de solicitud (JSON): {"key": "YOUR_API_KEY", "action": "balance"}

action
services
Valores que se envían
Ninguno
Valores que se reciben
Lista de servicios
action
add
Valores que se envían
service, link, quantity o comments
Valores que se reciben
order (número de pedido)
action
status
Valores que se envían
Un order u orders (hasta 100 separados por comas)
Valores que se reciben
charge, start_count, status, remains, currency
action
refill
Valores que se envían
order
Valores que se reciben
refill (número de reposición)
action
refill_status
Valores que se envían
refill
Valores que se reciben
status
action
balance
Valores que se envían
Ninguno
Valores que se reciben
balance, currency

¿Cómo obtengo la lista de servicios con services?

Si envías action=services, recibes en un array todos los servicios a la venta. Cada servicio incluye service (número de servicio), name, type, category, rate, min, max, refill y cancel. rate es el precio por 1,000 (USD) y, si type es Package, es el precio de un paquete. refill es true en los servicios con periodo de reposición, y cancel siempre es false. category incluye el nombre de la plataforma y la categoría, así que puedes replicar las categorías en tu propio panel.

Ejemplo de respuesta: [{"service": SERVICE_ID, "name": "Nombre del servicio", "type": "Default", "category": "YouTube - Nombre de la categoría", "rate": "Precio por 1,000", "min": "Cantidad mínima", "max": "Cantidad máxima", "refill": true, "cancel": false}]

Los precios y servicios pueden cambiar, así que si eres revendedor conviene volver a pedir services a intervalos fijos y mantener sincronizados en tu panel los precios y las cantidades mínima y máxima.

¿Cómo hago un pedido con add?

Si envías action=add junto con service (número de servicio), link (enlace público) y quantity (cantidad), el pedido se registra y el importe se descuenta al instante de tu saldo. El order de la respuesta es el número de pedido; guárdalo para usarlo en status y refill. Los pedidos se pueden hacer en cuentas con la primera recarga abonada.

  • Servicios normales: envía service, link y quantity
  • Servicios Custom Comments: envía comments en lugar de quantity. Un comentario por línea, hasta 500 caracteres por línea, y el número de líneas es la cantidad
  • Servicios Package: no hace falta enviar la cantidad. Se pide un paquete

Ejemplo de solicitud: key=YOUR_API_KEY&action=add&service=SERVICE_ID&link=https://www.youtube.com/watch?v=videoid&quantity=1000

Ejemplo de respuesta: {"order": ORDER_ID}

¿Cómo consulto el estado de un pedido con status?

Si envías action=status con order (un número de pedido), recibes el estado de ese pedido, y si envías en orders números de pedido separados por comas, consultas hasta 100 de una vez. Si gestionas muchos pedidos, agruparlos con orders te ahorra muchas solicitudes.

Ejemplo de respuesta (uno): {"charge": "Importe cobrado", "start_count": "Cifra inicial", "status": "In progress", "remains": "Cantidad restante", "currency": "USD"}

Ejemplo de respuesta (varios): {"ORDER_ID_1": {"charge": "...", "start_count": "...", "status": "Completed", "remains": "0", "currency": "USD"}, "ORDER_ID_2": {"error": "Incorrect order ID"}}

Valor de status
Pending
Significado
Recibido, esperando para empezar o pasando a procesamiento
Valor de status
In progress
Significado
Entregándose
Valor de status
Completed
Significado
Todo entregado
Valor de status
Partial
Significado
Entregado en parte, el importe restante volvió a tu saldo
Valor de status
Canceled
Significado
No se pudo procesar, el importe completo volvió a tu saldo

charge es el importe pagado menos el importe reembolsado, así que después de un pedido Parcial o Cancelado ves al instante lo que realmente gastaste. El estado del pedido se actualiza automáticamente cada minuto aproximadamente, así que basta con consultar status con un intervalo de alrededor de un minuto.

¿Cómo se usan refill y refill_status?

Si envías action=refill con order, se solicita una reposición y recibes refill (número de reposición). Se acepta en pedidos Completados o Parciales de servicios con periodo de reposición, dentro del periodo contado desde el día en que terminó el pedido, si no hay otra reposición en curso y pasaron 24 horas desde la última solicitud. Si envías action=refill_status con refill, te indica el estado como Pending, In progress, Completed o Rejected.

Ejemplos de respuesta: {"refill": REFILL_ID} y {"status": "Completed"}

Las reglas de reposición son las mismas que en el sitio web. Las condiciones detalladas están en Conoce el periodo de reposición.

¿Cómo consulto el saldo con balance?

Si envías action=balance, recibes el saldo actual y la moneda (USD). Si eres revendedor, consulta el saldo antes de reenviar pedidos y configura un aviso cuando baje de cierto importe para que los pedidos sigan sin interrupciones.

Ejemplo de respuesta: {"balance": "Saldo actual", "currency": "USD"}

¿Qué significan los mensajes de error de la API?

Los errores llegan como JSON con una frase en inglés en el campo error. Cada frase tiene una causa definida, así que puedes compararla tal cual en tu programa para gestionarla.

Valor de error
Invalid API key
Significado
Falta la clave o no es correcta
Valor de error
Too many requests
Significado
Se superó el número de solicitudes por minuto. Vuelve a enviarla en un momento
Valor de error
Add funds first
Significado
Puedes pedir después de que se abone la primera recarga
Valor de error
Incorrect service ID
Significado
No es un número de servicio a la venta
Valor de error
Incorrect link
Significado
El formato del enlace no es correcto
Valor de error
Quantity out of range
Significado
La cantidad está fuera del rango mínimo y máximo del servicio
Valor de error
Incorrect comments
Significado
Las líneas de comentarios están vacías o una línea supera los 500 caracteres
Valor de error
Not enough funds on balance
Significado
El saldo es menor que el importe del pedido
Valor de error
Incorrect order ID
Significado
No es un número de pedido de esta cuenta
Valor de error
Incorrect refill ID
Significado
No es un número de reposición de esta cuenta
Valor de error
Incorrect action
Significado
El valor de action no es uno de los 6 disponibles

Las solicitudes de reposición pueden devolver Refill is not available for this service (servicio sin periodo de reposición), Order is not finished yet (pedido aún no terminado), Refill period has ended (pedido con el periodo de reposición vencido) o Refill already requested, try again later (pedido con una reposición en curso o sin 24 horas transcurridas).

¿Cuántas solicitudes puedo enviar a la API?

Cada clave admite hasta 300 solicitudes por minuto. Si agrupas las consultas de estado de 100 en 100 con orders y solo vuelves a pedir la lista de servicios cuando la necesitas, tienes margen de sobra. Por ejemplo, si tienes 1,000 pedidos en curso, los consultas todos con 10 solicitudes una vez por minuto.

¿Cómo fija un revendedor sus precios de venta?

El rate que recibes por la API es el precio por 1,000 de 1PANEL PLUS, y el precio de venta en tu panel lo fijas tú como revendedor. Por ejemplo, si vendes un servicio con rate de $2.00 añadiendo un 25%, queda en $2.50 por 1,000; si un cliente pide 4,000, el importe de venta es $10.00 y el importe descontado en 1PANEL PLUS es $8.00. Estos precios son un ejemplo para mostrar el cálculo.

¿En qué orden conviene conectar la API?

  1. Recarga tu saldo y crea una clave API en el panel
  2. Comprueba la clave y la conexión con balance
  3. Obtén la lista de servicios con services y publícala en tu panel
  4. Envía un add con la cantidad mínima y recibe un número de pedido
  5. Comprueba con status que el estado cambia y activa los pedidos automáticos

Los ejemplos en curl, PHP, Python y Node.js y la descripción de todos los campos están en la documentación de la API, y encontrarás otras preguntas en el grupo API de Preguntas frecuentes.