API para desarrolladores
Verificación por SMS desde tu propio código
Una sola llamada HTTPS da a tu bot o plataforma un número real para WhatsApp, Telegram y muchos servicios más. Lee el código por webhook o long polling y paga solo por los números que lo reciben.
- 1.321servicios
- 145países
- 0,10 US$precio mínimo por número
- Autoreembolso si no llega el código
curl
curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
-H "Authorization: Bearer $SMSGRAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"service":"whatsapp","country":"indonesia"}'
Python
activation = requests.post(
"https://smsgrab.com/api/dev/v1/activations",
headers={"Authorization": f"Bearer {key}"},
json={"service": "whatsapp", "country": "indonesia"},
).json()
Node.js
const activation = await fetch('https://smsgrab.com/api/dev/v1/activations', {
method: 'POST',
headers: { Authorization: `Bearer ${key}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ service: 'whatsapp', country: 'indonesia' }),
}).then((response) => response.json());
PHP
$activation = json_decode((string) $client->post('activations', [
'json' => ['service' => 'whatsapp', 'country' => 'indonesia'],
])->getBody(), true);
Go
order := map[string]any{"service": "whatsapp", "country": "indonesia"}
err := call("POST", "/activations", order, idempotencyKey(), &activation)
{
"id": "5c1d0c2e-9f3a-4b7e-8a61-2f0c9d4e7b10",
"compat_id": 100000123,
"status": "WAITING_SMS",
"service_id": "whatsapp",
"country_id": "indonesia",
"phone_number": "+6281234567890",
"price_minor": 18,
"currency": "USD",
"expires_at": "2026-09-27T10:25:00.000Z",
"sms": []
}
Hecha para automatizar
Todo lo que tu integración necesita, con el mismo stock, la misma contabilidad y los mismos reembolsos que la app.
-
Una API REST limpia
JSON predecible, compras idempotentes y motivos de error claros con los que actuar.
-
Webhooks firmados
Eventos firmados con HMAC para cada código y cambio de estado, con reintentos durante 24 horas.
-
Long polling
Mantén una solicitud hasta 30 segundos y recibe el código en cuanto llega.
-
Compatible con sms-activate
Apunta tus herramientas actuales a una nueva dirección. Las acciones y respuestas no cambian.
-
Claves bajo tu control
Claves de solo lectura o de compra, listas de IP permitidas, límites diarios, caducidad y rotación sin cortes.
-
Reembolsos automáticos
¿No llegó el código antes de que caducara el número? El cargo vuelve directamente a tu saldo.
-
Uso y registro de solicitudes
Solicitudes, gasto y errores diarios por clave, además de un registro filtrable de los últimos 7 días.
-
Precios por volumen
Precios basados en el coste mayorista que bajan solos a medida que crece tu volumen mensual.
En marcha en cuatro pasos
Tu primer número está a unas pocas llamadas.
-
Crea una cuenta
Regístrate con tu correo y verifícalo. La app y la web comparten la misma cuenta.
-
Crea una clave de API
Elige su acceso, limítala a tus servidores y copia el secreto una vez.
-
Compra un número
Envía el servicio y el país por POST. Recibes el número y su precio al instante.
-
Recibe el código
Espera con long polling o un webhook y luego finaliza la activación.
Precios que bajan mientras creces
Los precios para desarrolladores parten del coste mayorista de cada número más un recargo que disminuye con tu volumen de 30 días.
- Nunca más caro que el mismo número en la app
- Al menos 0,10 US$ por número
- Los números sin código se reembolsan automáticamente
- Tu nivel se actualiza minutos después de alcanzarlo
- Se cobra en USD del mismo saldo que la app
Recargo según el gasto de desarrollador en 30 días
| Gasto de desarrollador en 30 días | Recargo sobre el precio mayorista | Precio de ejemplo |
|---|---|---|
| Menos de 100,00 US$ | +80 % | 0,18 US$ 28 % menos que en la app |
| Desde 100,00 US$ | +70 % | 0,17 US$ 32 % menos que en la app |
| Desde 500,00 US$ | +60 % | 0,16 US$ 36 % menos que en la app |
| Desde 2.000,00 US$ | +50 % | 0,15 US$ 40 % menos que en la app |
Ejemplo: una oferta con un coste mayorista de 0,10 US$ que cuesta 0,25 US$ en la app.
Migración
Cambia desde sms-activate con una línea
Nuestro endpoint compatible habla el mismo protocolo: los bots y paneles creados para sms-activate funcionan en cuanto cambias la dirección base y la clave.
https://smsgrab.com/api/stubs/handler_api.php
- getNumber, getStatus, setStatus, getPrices y todas las demás acciones estándar
- Los ID numéricos de activación, códigos de servicio e ID de país que ya usas
- Las mismas claves, límites, precios, reembolsos y webhooks que la API REST
curl
BASE="https://smsgrab.com/api/stubs/handler_api.php?api_key=$SMSGRAB_API_KEY"
curl -s "$BASE&action=getBalance"
curl -s "$BASE&action=getNumber&service=tg&country=6"
curl -s "$BASE&action=getStatus&id=100000123"
curl -s "$BASE&action=setStatus&id=100000123&status=6"
Python
import os
import requests
BASE = "https://smsgrab.com/api/stubs/handler_api.php"
KEY = os.environ["SMSGRAB_API_KEY"]
def action(name: str, **params) -> str:
response = requests.get(BASE, params={"api_key": KEY, "action": name, **params}, timeout=30)
response.raise_for_status()
return response.text
print(action("getBalance"))
answer = action("getNumber", service="tg", country=6)
if answer.startswith("ACCESS_NUMBER:"):
_, activation_id, number = answer.split(":")
print(activation_id, number)
Tiempo real
Códigos enviados a tu servidor
Suscríbete a los eventos que te interesan y los entregamos en tu endpoint HTTPS con una firma que puedes comprobar.
- Número comprado
- Código recibido
- Activación completada
- Activación cancelada
- Activación caducada
- Cargo reembolsado
- Saldo bajo
- Cada entrega va firmada con HMAC-SHA256 y una marca de tiempo
- Solo endpoints HTTPS públicos, comprobados antes de cada entrega
- Entregas de prueba, historial de 30 días y reenvío con un clic
Preguntas de desarrolladores
¿Cuánto cuesta la API para desarrolladores?
No hay suscripción. Cada número cuesta su precio mayorista más un recargo del 80 %, que baja al 70 %, 60 % y 50 % cuando tu gasto de desarrollador en 30 días supera 100, 500 y 2.000 USD. Un número nunca cuesta menos de 0,10 USD ni más que su precio en la app.
¿Qué pasa si no llega ningún código?
Un número dura 20 minutos. Si no llega ningún código en ese tiempo, o lo cancelas mientras sigue esperando, el cargo se reembolsa automáticamente a tu saldo.
¿Puedo usar mi integración actual de sms-activate?
Sí. Cambia la dirección base por nuestro endpoint compatible y usa tu clave de SmsGrab. Las acciones estándar, las respuestas y los ID numéricos no cambian.
¿Cuáles son los límites de frecuencia?
Por defecto, cada clave puede hacer 600 solicitudes y 60 compras por minuto, todas las claves de una cuenta juntas 3.000 solicitudes por minuto, y hasta 100 números pueden esperar un código a la vez.
¿Cómo mantengo segura mi clave?
Guarda las claves solo en tus servidores, da a cada app su propia clave, limítala a las direcciones de tus servidores y fija un límite de gasto diario. Si una clave pudo filtrarse, rótala o revócala desde tu cuenta.
¿La app y la API comparten el mismo saldo?
Sí. La API usa el saldo de tu cuenta de SmsGrab, y cada compra y reembolso aparece en tu cartera como cualquier otro.
Encontrarás más respuestas en el centro de ayuda