API Reference
Documentación

API de Envío de SMS

Envía mensajes de texto desde tus aplicaciones con una sola llamada HTTP. La API acepta peticiones POST form-urlencoded o GET con query params y devuelve siempre JSON.

🔑
Base URL: https://easy-sms.pro/api/http
Tu API token lo encuentras en tu panel → sección Developer. Inclúyelo en cada petición como parámetro api_token.
# Ejemplo de autenticación
curl "https://easy-sms.pro/api/http/balance?api_token=TU_API_TOKEN"

Flujo de uso

El flujo recomendado es consultar tus gateways disponibles una sola vez, guardar los IDs, y usarlos al enviar.

🔑
Obtén tu API token del panel
📡
GET /senders para ver gateways
💾
Guarda los IDs en tu app
📨
POST /sms/send con sending_server

Listar gateways disponibles

Retorna los servidores de envío que tienes habilitados en tu cuenta. Llama este endpoint una sola vez para descubrir los IDs que puedes usar en /sms/send.

GET https://easy-sms.pro/api/http/senders

Parámetros

ParámetroTipoRequeridoDescripción
api_token string requerido Tu token de autenticación
curl "https://easy-sms.pro/api/http/senders?api_token=TU_API_TOKEN"
<?php
$response = file_get_contents(
    'https://easy-sms.pro/api/http/senders?api_token=' . TU_API_TOKEN
);
$data = json_decode($response, true);

// $data['data'] contiene el array de gateways
foreach ($data['data'] as $sender) {
    echo $sender['id'] . ' → ' . $sender['name'] . PHP_EOL;
}
import requests

resp = requests.get(
    "https://easy-sms.pro/api/http/senders",
    params={"api_token": "TU_API_TOKEN"}
)
senders = resp.json()["data"]

for s in senders:
    print(f"ID {s['id']} → {s['name']}")
const resp = await fetch(
  `https://easy-sms.pro/api/http/senders?api_token=${API_TOKEN}`
);
const { data: senders } = await resp.json();

senders.forEach(s => console.log(`ID ${s.id} → ${s.name}`));
Respuesta exitosa
{
  "status":  "success",
  "message": "Sending servers retrieved successfully",
  "data": [
    { "id": 12, "name": "LARGE US OPTION 2"       },
    { "id": 13, "name": "Large Option 2 [Mex Number]" }
  ]
}

Enviar SMS

Envía un mensaje a uno o varios destinatarios. El parámetro sending_server es opcional — si no lo incluyes el sistema usa el gateway predeterminado de tu cuenta.

POST https://easy-sms.pro/api/http/sms/send

Parámetros del body

ParámetroTipoDescripción
api_token string requerido Tu token de autenticación
recipient string requerido Número con código de país, sin el +. Ej: 521234567890. Para múltiples destinos separa con coma: 521234567890,15551234567
message string requerido Texto del mensaje. Máximo 160 caracteres por segmento SMS.
sending_server integer opcional ID del gateway a usar, obtenido de GET /senders. Si se omite usa el gateway predeterminado de la cuenta.
sender_id string opcional Remitente que verá el destinatario. Puede ser un nombre alfanumérico (ej. MiEmpresa) o un número.
type string opcional Tipo de mensaje. Valores: plain (defecto), unicode, voice, mms, whatsapp.
schedule_time string opcional Fecha y hora de envío programado. Formato: 2026-08-01 14:00:00
# Sin elegir gateway (usa el predeterminado)
curl -X POST https://easy-sms.pro/api/http/sms/send \
  -d "api_token=TU_API_TOKEN" \
  -d "recipient=521234567890" \
  -d "message=Hola desde easy-sms.pro"

# Eligiendo gateway específico
curl -X POST https://easy-sms.pro/api/http/sms/send \
  -d "api_token=TU_API_TOKEN" \
  -d "recipient=521234567890" \
  -d "message=Hola desde easy-sms.pro" \
  -d "sending_server=13"
<?php
$ch = curl_init('https://easy-sms.pro/api/http/sms/send');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => http_build_query([
        'api_token'      => 'TU_API_TOKEN',
        'recipient'      => '521234567890',
        'message'        => 'Hola desde easy-sms.pro',
        'sending_server' => 13,  // opcional
    ]),
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($result['status'] === 'success') {
    echo 'Mensaje enviado ✓';
}
import requests

resp = requests.post(
    "https://easy-sms.pro/api/http/sms/send",
    data={
        "api_token":      "TU_API_TOKEN",
        "recipient":      "521234567890",
        "message":        "Hola desde easy-sms.pro",
        "sending_server": 13,  # opcional
    }
)
result = resp.json()

if result["status"] == "success":
    print("Mensaje enviado ✓")
const body = new URLSearchParams({
  api_token:      'TU_API_TOKEN',
  recipient:      '521234567890',
  message:        'Hola desde easy-sms.pro',
  sending_server: '13',  // opcional
});

const resp   = await fetch('https://easy-sms.pro/api/http/sms/send', {
  method: 'POST', body
});
const result = await resp.json();

if (result.status === 'success') console.log('Enviado ✓');
Respuesta exitosa
{
  "status":  "success",
  "message": "SMS was sent successfully",
  "data": {
    "uid":          "abc123def456",
    "to":           "521234567890",
    "message":      "Hola desde easy-sms.pro",
    "sms_count":    1,
    "status":       "Sent"
  }
}

Consultar saldo

Devuelve los créditos disponibles y la fecha de vencimiento del plan activo.

GET https://easy-sms.pro/api/http/balance
curl "https://easy-sms.pro/api/http/balance?api_token=TU_API_TOKEN"
Respuesta
{
  "status": "success",
  "data": {
    "balance":    150,
    "currency":   "Credits",
    "plan":       "SMS Plan",
    "expires_at": "2027-01-01"
  }
}

Historial de mensajes

Lista los mensajes enviados con filtros opcionales por fecha y tipo.

GET https://easy-sms.pro/api/http/sms
ParámetroTipoDescripción
api_tokenstringrequeridoTu token
start_datestringopcionalDesde fecha. Ej: 2026-07-01 00:00:00
end_datestringopcionalHasta fecha. Ej: 2026-07-31 23:59:59
sms_typestringopcionalplain, unicode, voice, etc.

Errores frecuentes

Todos los errores retornan "status": "error" con un campo message descriptivo.

MensajeCausaSolución
auth.failed api_token incorrecto Verifica el token en tu panel → Developer
sending_server is not available El ID de gateway no está asignado a tu cuenta Consulta GET /senders para ver los IDs válidos
Purchased plan is not active Tu plan expiró o fue desactivado Contacta a soporte
recipient is required Falta el número destino Incluye el parámetro recipient con código de país

Ejemplo completo — Seleccionar gateway dinámicamente

Este ejemplo en PHP consulta los gateways disponibles y envía el mensaje usando el segundo de la lista.

<?php
define('API_TOKEN', 'TU_API_TOKEN');
define('API_BASE',  'https://easy-sms.pro/api/http');

// 1. Obtener gateways disponibles
$senders = json_decode(
    file_get_contents(API_BASE . '/senders?api_token=' . API_TOKEN),
    true
)['data'];

// 2. Elegir el gateway por nombre
$gateway = null;
foreach ($senders as $s) {
    if (str_contains($s['name'], 'Mex')) {
        $gateway = $s['id'];  // número México
    }
}

// 3. Enviar el SMS
$ch = curl_init(API_BASE . '/sms/send');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => http_build_query([
        'api_token'      => API_TOKEN,
        'recipient'      => '521234567890',
        'message'        => 'Tu código es: 8472',
        'sending_server' => $gateway,  // null = predeterminado
    ]),
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);

echo $result['status'] === 'success'
    ? '✓ Enviado'
    : '✗ Error: ' . $result['message'];