Ir al contenido
4SNS PLUS

Panel SMM API: documentación

Panel SMM con API v2 estándar: pide los servicios de 4SNS PLUS desde tu bot de Telegram o desde tu propio panel.

¿Qué es la API de un panel SMM?

La API de un panel SMM permite que un programa obtenga la lista de servicios, haga pedidos y consulte el estado de los pedidos y el saldo sin pasar por la web. 4SNS PLUS admite el formato estándar de API v2 para paneles SMM que usan muchos paneles y bots, así que el código que ya conectaste a otro panel funciona al instante con solo cambiar la URL y la clave.

Los precios y el saldo de la API son los mismos que en la web. El rate de la respuesta de services equivale al precio por cada 1,000 (dólares estadounidenses) de la lista de precios, y los pedidos hechos con add se descuentan de tu saldo igual que los pedidos web y también aparecen en el historial de pedidos de tu panel. Los importes devueltos por pedidos cancelados o parciales vuelven al mismo saldo.

Datos básicos

Endpointhttps://4snsplus.com/api/v2
MétodoPOST
Formato de solicitudCampos de formulario (application/x-www-form-urlencoded, multipart) o un cuerpo JSON
RespuestaJSON; los errores también llegan como HTTP 200 con un campo error
AutenticaciónParámetro key (tu clave API) en cada solicitud
Límite de solicitudes300 solicitudes por minuto por clave
MonedaDólar estadounidense (USD)

Ejemplo de solicitud

curl -X POST https://4snsplus.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=balance
import requests

r = requests.post("https://4snsplus.com/api/v2", data={
    "key": "YOUR_API_KEY",
    "action": "add",
    "service": 2210,
    "link": "https://t.me/yourchannel",
    "quantity": 1000,
})
print(r.json())  # {"order": 31877} or {"error": "..."}

¿Cómo consigo una clave API?

En cuanto tu primera recarga se acredite en tu saldo, puedes crear una clave API desde el menú Clave API de tu panel. La clave se muestra una sola vez al crearla, así que guárdala en un lugar seguro. Al crear una clave nueva, la anterior se desactiva al instante.

La clave es distinta del token de tu cuenta. Pon solo la clave API en tu bot o servidor, nunca el token de tu cuenta. Si crees que tu clave quedó expuesta, simplemente crea una nueva en la pantalla de Clave API.

Lista de servicios (services)

Devuelve todos los servicios que puedes pedir. rate es el precio por cada 1,000 (USD) y, cuando type es Package, es el precio de un paquete. Cuando type es Custom Comments, envías una lista de comentarios en lugar de una cantidad. category es el nombre de la plataforma más el nombre del grupo.

ParámetroDescripción
keyTu clave API
actionservices

Ejemplo de respuesta

[
  {
    "service": 2210,
    "name": "Members - 30 Days Non Drop - 30 Days Refill",
    "type": "Default",
    "category": "Telegram - Members (30 Days Non Drop)",
    "rate": "1.4300",
    "min": "100",
    "max": "50000",
    "refill": true,
    "cancel": false
  }
]

Crear un pedido (add)

Crea un pedido y descuenta el importe de tu saldo. El importe es el precio por cada 1,000 multiplicado por la cantidad; en Package es el precio del paquete y en Custom Comments la cantidad es el número de líneas de comentarios. Los pedidos están disponibles en cuentas cuya primera recarga ya está acreditada. El valor order de la respuesta es el ID de tu pedido.

ParámetroDescripción
keyTu clave API
actionadd
serviceID del servicio (service de services)
linkEnlace público. Para Telegram: t.me/name, enlace de invitación privado t.me/+code, publicación t.me/name/123, bot t.me/botname. También se acepta @name
quantityCantidad (entre min y max). No hace falta en Package ni en Custom Comments
commentsSolo Custom Comments. Un comentario por línea, hasta 10,000 líneas y hasta 500 caracteres por línea

Ejemplo de respuesta

{
  "order": 31877
}

Estado del pedido (status)

El estado de un pedido. charge es el importe realmente pagado después de reembolsos (USD, 6 decimales), start_count es el conteo al empezar el pedido y remains es la cantidad que aún no se ha entregado.

ParámetroDescripción
keyTu clave API
actionstatus
orderID del pedido

Ejemplo de respuesta

{
  "charge": "1.430000",
  "start_count": "8120",
  "status": "In progress",
  "remains": "410",
  "currency": "USD"
}

Estado de varios pedidos (status, orders)

Consulta hasta 100 pedidos a la vez, con los ID de pedido separados por comas. Los ID que no existen o no son de tu cuenta reciben un error en su lugar.

ParámetroDescripción
keyTu clave API
actionstatus
ordersLista de ID de pedido, por ejemplo 1,10,100

Ejemplo de respuesta

{
  "1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
  "10": { "error": "Incorrect order ID" }
}

Solicitar una reposición (refill)

Para un pedido de un servicio con periodo de reposición que terminó como Completed o Partial, solicítala dentro del periodo de reposición contado desde que terminó. Cada pedido puede tener una solicitud abierta, con 24 horas entre solicitudes.

ParámetroDescripción
keyTu clave API
actionrefill
orderID del pedido

Ejemplo de respuesta

{
  "refill": 512
}

Estado de la reposición (refill_status)

El estado de una solicitud de reposición.

ParámetroDescripción
keyTu clave API
actionrefill_status
refillID de reposición (refill de la respuesta de refill)

Ejemplo de respuesta

{
  "status": "Completed"
}

Saldo (balance)

Tu saldo (USD, 6 decimales).

ParámetroDescripción
keyTu clave API
actionbalance

Ejemplo de respuesta

{
  "balance": "84.120000",
  "currency": "USD"
}

Valores de estado del pedido

PendingRecibido. Se está transmitiendo, está a la espera de empezar o un operador está revisando el resultado del envío
In progressEn entrega
CompletedEntregado por completo
PartialEntregado en parte. La parte no entregada se reembolsa a tu saldo
CanceledNo entregado. Reembolso total a tu saldo

Valores de estado de la reposición

PendingSolicitud de reposición recibida
In progressReposición en entrega
CompletedReposición entregada
RejectedLa solicitud de reposición no fue aceptada

Mensajes de error

Los errores llegan como JSON con un campo error en una respuesta HTTP 200. En tu código, comprueba primero el campo error.

{
  "error": "Not enough funds on balance"
}
Invalid API keyFalta la clave, es incorrecta o fue reemplazada por una nueva
Too many requestsMás de 300 solicitudes por minuto. Vuelve a intentarlo en un momento
Incorrect actionEl valor de action no está en la lista anterior
Add funds firstPedido desde una cuenta cuya primera recarga aún no está acreditada
Incorrect service IDNo hay ningún servicio disponible con ese ID
Incorrect linkEl enlace está vacío o no es una dirección web
Quantity out of rangePor debajo de la cantidad mínima o por encima de la máxima
Incorrect commentsCustom Comments está vacío o supera 10,000 líneas o 500 caracteres por línea
Not enough funds on balanceEl saldo es menor que el importe del pedido. Recarga y vuelve a pedir
Incorrect order IDEse ID de pedido no es de tu cuenta
Refill is not available for this serviceEl servicio no tiene periodo de reposición
Order is not finished yetLa reposición está disponible cuando el pedido está Completed o Partial
Refill period has endedYa pasó el periodo de reposición, contado desde que terminó el pedido
Refill already requestedEste pedido ya tiene una solicitud de reposición abierta
Refill already requested, try again laterAún no han pasado 24 horas desde la última solicitud
Incorrect refill IDEse ID de reposición no es de tu cuenta

¿Cómo conecto la API de un panel SMM a un bot de Telegram?

1. Guarda la lista de servicios

Llama a services unas cuantas veces al día y guarda en tus propios datos el ID, el nombre, el rate, el min y el max de cada servicio. Calcula el precio que muestras a tus clientes sumando tu margen al rate y usa el ID de servicio guardado tal cual al hacer el pedido.

2. Comprueba la cantidad y el enlace antes de pedir

Comprobar antes que la cantidad está entre min y max y que el enlace tiene formato t.me reduce los errores Quantity out of range e Incorrect link. También ayuda consultar el saldo con balance de antemano.

3. Consulta el estado por lotes

Consulta los pedidos en curso cada pocos minutos en lotes de 100 con el parámetro orders. Así te mantienes holgadamente dentro del límite de 300 solicitudes por minuto por clave. Cuando un pedido pase a Completed, Partial o Canceled, avisa a tu cliente del resultado.

4. Pide reposición solo de pedidos terminados

Cuando un pedido de un servicio con reposición pase a Completed o Partial, puedes enviar refill. Guarda el ID de reposición de la respuesta y sigue el progreso con refill_status.