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.
https://easy-sms.pro/api/httpTu 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.
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.
Parámetros
| Parámetro | Tipo | Requerido | Descripció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}`));
{
"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.
Parámetros del body
| Parámetro | Tipo | Descripció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 ✓');
{
"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.
curl "https://easy-sms.pro/api/http/balance?api_token=TU_API_TOKEN"{
"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.
| Parámetro | Tipo | Descripción | |
|---|---|---|---|
| api_token | string | requerido | Tu token |
| start_date | string | opcional | Desde fecha. Ej: 2026-07-01 00:00:00 |
| end_date | string | opcional | Hasta fecha. Ej: 2026-07-31 23:59:59 |
| sms_type | string | opcional | plain, unicode, voice, etc. |
Errores frecuentes
Todos los errores retornan "status": "error" con un campo message descriptivo.
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'];