Elegir un idioma

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)
201 Created
{
  "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.

  1. Crea una cuenta

    Regístrate con tu correo y verifícalo. La app y la web comparten la misma cuenta.

  2. Crea una clave de API

    Elige su acceso, limítala a tus servidores y copia el secreto una vez.

  3. Compra un número

    Envía el servicio y el país por POST. Recibes el número y su precio al instante.

  4. 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

Recargo de desarrollador según el gasto de 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.

Obtener una clave de API

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
Referencia de compatibilidad

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
Guía de webhooks
600solicitudes por minuto y clave
60compras por minuto y clave
100números esperando a la vez
30segundos de long polling
  • 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

¿Listo para automatizar la verificación?

Crea una clave en tu cuenta y haz tu primera llamada en minutos.