API para desenvolvedores
Verificação por SMS direto do seu código
Uma única chamada HTTPS dá ao seu bot ou plataforma um número real para WhatsApp, Telegram e muitos outros serviços. Leia o código por webhook ou long polling e pague só pelos números que recebem um.
- 1.295serviços
- 145países
- US$ 0,10preço mínimo por número
- Automáticoreembolso se o código não chegar
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": []
}
Feita para automação
Tudo o que sua integração precisa, com o mesmo estoque, a mesma contabilidade e os mesmos reembolsos do app.
-
Uma API REST limpa
JSON previsível, compras idempotentes e motivos de erro claros para você agir.
-
Webhooks assinados
Eventos assinados com HMAC para cada código e mudança de status, com novas tentativas por 24 horas.
-
Long polling
Segure uma requisição por até 30 segundos e receba o código assim que ele chegar.
-
Compatível com sms-activate
Aponte suas ferramentas para um novo endereço. As ações e respostas continuam as mesmas.
-
Chaves sob seu controle
Chaves somente leitura ou de compra, listas de IPs permitidos, limites diários, expiração e rotação sem interrupção.
-
Reembolsos automáticos
O código não chegou antes de o número expirar? A cobrança volta direto para o seu saldo.
-
Uso e registro de requisições
Requisições, gastos e erros diários por chave, além de um registro filtrável dos últimos 7 dias.
-
Preços por volume
Preços baseados no custo de atacado que caem sozinhos conforme seu volume mensal cresce.
No ar em quatro passos
Seu primeiro número está a poucas chamadas de distância.
-
Crie uma conta
Cadastre-se com seu e-mail e confirme-o. O app e o site usam a mesma conta.
-
Crie uma chave de API
Escolha o acesso, limite-a aos seus servidores e copie o segredo uma vez.
-
Compre um número
Envie o serviço e o país via POST. Você recebe o número e o preço na hora.
-
Receba o código
Aguarde com long polling ou um webhook e depois conclua a ativação.
Preços que caem enquanto você cresce
Os preços para desenvolvedores partem do custo de atacado de cada número mais uma margem que diminui com seu volume de 30 dias.
- Nunca mais caro que o mesmo número no app
- No mínimo US$ 0,10 por número
- Números sem código são reembolsados automaticamente
- Sua faixa é atualizada minutos depois de ser atingida
- Cobrado em USD do mesmo saldo do app
Margem conforme o gasto de desenvolvedor em 30 dias
| Gasto de desenvolvedor em 30 dias | Margem sobre o preço de atacado | Preço de exemplo |
|---|---|---|
| Abaixo de US$ 100,00 | +80% | US$ 0,18 28% mais barato que no app |
| A partir de US$ 100,00 | +70% | US$ 0,17 32% mais barato que no app |
| A partir de US$ 500,00 | +60% | US$ 0,16 36% mais barato que no app |
| A partir de US$ 2.000,00 | +50% | US$ 0,15 40% mais barato que no app |
Exemplo: uma oferta com custo de atacado de US$ 0,10 que custa US$ 0,25 no app.
Migração
Migre do sms-activate com uma linha
Nosso endpoint compatível fala o mesmo protocolo, então bots e painéis criados para sms-activate funcionam assim que você troca o endereço base e a chave.
https://smsgrab.com/api/stubs/handler_api.php
- getNumber, getStatus, setStatus, getPrices e todas as outras ações padrão
- Os IDs numéricos de ativação, códigos de serviço e IDs de país que você já usa
- As mesmas chaves, limites, preços, reembolsos e webhooks da 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)
Tempo real
Códigos enviados ao seu servidor
Assine os eventos que interessam e nós os entregamos no seu endpoint HTTPS com uma assinatura que você pode verificar.
- Número comprado
- Código recebido
- Ativação concluída
- Ativação cancelada
- Ativação expirada
- Cobrança reembolsada
- Saldo acabando
- Cada entrega é assinada com HMAC-SHA256 e um carimbo de data e hora
- Só endpoints HTTPS públicos, verificados antes de cada entrega
- Entregas de teste, histórico de 30 dias e reenvio com um clique
Perguntas de desenvolvedores
Quanto custa a API para desenvolvedores?
Não há assinatura. Cada número custa o preço de atacado mais uma margem de 80%, que cai para 70%, 60% e 50% quando seu gasto de desenvolvedor em 30 dias passa de 100, 500 e 2.000 USD. Um número nunca custa menos de 0,10 USD nem mais que o preço no app.
O que acontece se nenhum código chegar?
Um número vale por 20 minutos. Se nenhum código chegar nesse tempo, ou se você cancelar enquanto ele ainda aguarda, a cobrança é reembolsada automaticamente no seu saldo.
Posso usar minha integração atual com sms-activate?
Sim. Troque o endereço base pelo nosso endpoint compatível e use sua chave da SmsGrab. As ações padrão, as respostas e os IDs numéricos continuam os mesmos.
Quais são os limites de taxa?
Por padrão, cada chave pode fazer 600 requisições e 60 compras por minuto, todas as chaves de uma conta juntas 3.000 requisições por minuto, e até 100 números podem aguardar um código ao mesmo tempo.
Como mantenho minha chave segura?
Guarde as chaves só nos seus servidores, dê a cada app a própria chave, limite-a aos endereços dos seus servidores e defina um limite diário de gastos. Se uma chave pode ter vazado, rotacione ou revogue-a na sua conta.
O app e a API usam o mesmo saldo?
Sim. A API usa o saldo da sua conta SmsGrab, e cada compra e reembolso aparece na sua carteira como qualquer outro.
Mais respostas na central de ajuda