TODAY SMS

API

Una API JSON sobre HTTPS. Envía tu clave API en la cabecera Authorization. Los precios, los reembolsos y la cuenta atrás de 20 minutos son los mismos que en la web.

Dirección base

https://today-sms.com/api/v1

Autenticación

Cabecera Authorization: Bearer YOUR_API_KEY. Crea la clave en la página Clave API después de tu primera recarga. Hasta 300 solicitudes por minuto.

curl https://today-sms.com/api/v1/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /balance

Tu saldo en USD.

Respuesta de ejemplo

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

GET /apps

Apps con números ahora: código, nombre, precio más bajo, países.

Respuesta de ejemplo

[
  { "app": "telegram", "name": "Telegram", "from": "0.4515", "countries": 61 }
]

GET /prices?app=telegram

Países para una app, el más barato primero: código de país, código ISO, precio, números disponibles.

Respuesta de ejemplo

[
  { "country": "indonesia", "iso": "id", "price": "0.4515", "stock": 702866 }
]

POST /numbers {"app":"telegram","country":"indonesia"}

Compra un número. El precio se descuenta de tu saldo.

Respuesta de ejemplo

{
  "id": 1042,
  "phone": "+6281234567890",
  "price": "0.4515",
  "status": "waiting",
  "expires_at": "2026-10-14T09:20:00Z"
}

GET /numbers/{id}

Estado y todos los SMS recibidos hasta ahora.

Respuesta de ejemplo

{
  "id": 1042,
  "status": "received",
  "sms": [ { "code": "482913", "text": "Your code is 482913", "at": "2026-10-14T09:02:11Z" } ]
}

POST /numbers/{id}/cancel

Cancela un número sin SMS, 120 segundos después de comprarlo. Reembolso completo.

Respuesta de ejemplo

{
  "id": 1042,
  "status": "canceled",
  "refunded": "0.4515"
}

POST /numbers/{id}/finish

Cierra un número después de recibir el código.

Respuesta de ejemplo

{
  "id": 1042,
  "status": "finished"
}

Estados

waitingNúmero listo, aún sin SMS
receivedHa llegado al menos un SMS
finishedCerrado después de un código
canceledCancelado, reembolsado
expiredSin SMS a tiempo, reembolsado
checkingRespuesta del proveedor poco clara; se reembolsa al final de la cuenta atrás si no aparece ningún número

Errores

Los errores devuelven un estado distinto de 2xx y un cuerpo JSON con un código de error.

{
  "error": "not_enough_balance"
}
unauthorizedFalta la clave API o es incorrecta
not_allowedLa API se activa después de tu primera recarga
bad_requestFalta un campo obligatorio o es incorrecto
no_numbersAhora no hay números para esta app y este país
not_enough_balanceRecarga primero
too_many_openDemasiados números abiertos; termina o cancela algunos
too_earlySe puede cancelar 120 segundos después de comprar
has_smsHa llegado un SMS; el número no se puede cancelar
not_foundNo existe ese número en tu cuenta
try_againEl proveedor no confirmó la cancelación; inténtalo de nuevo en un minuto
rate_limitedDemasiadas solicitudes en un minuto