Escolha um idioma

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)
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": []
}

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.

  1. Crie uma conta

    Cadastre-se com seu e-mail e confirme-o. O app e o site usam a mesma conta.

  2. Crie uma chave de API

    Escolha o acesso, limite-a aos seus servidores e copie o segredo uma vez.

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

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

Margem para desenvolvedores conforme o gasto de 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.

Obter uma chave de API

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
Referência de compatibilidade

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
Guia de webhooks
600requisições por minuto por chave
60compras por minuto por chave
100números aguardando ao mesmo tempo
30segundos de long polling
  • 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

Pronto para automatizar a verificação?

Crie uma chave na sua conta e faça sua primeira chamada em minutos.