Português (BR)
Português (BR)
Appearance
Português (BR)
Português (BR)
Appearance
A API REST do WallaWhats permite gerenciar telefones, assinaturas de contas do X e histórico de notificações de forma programática — exatamente o que você faria pelo painel.
https://api.wallawhats.comapplication/jsonToda requisição deve incluir uma API key no cabeçalho x-api-key:
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_00000000000000000000000000000000"As chaves são criadas no painel em Settings → API Keys ou via POST /apikeys. O prefixo da chave começa com bws_ e tem 36 caracteres. As chaves aparecem apenas uma vez, no momento da criação — se perder uma, exclua-a e crie outra.
401 Unauthorized.| Plano | Chaves permitidas |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 20 |
Tentar criar mais do que seu plano permite retorna 400 com "error": "api key limit reached".
Os erros são retornados em JSON com um campo error e um código de status HTTP:
{ "error": "phoneNumber is required" }| Status | Significado |
|---|---|
400 | Parâmetros inválidos, cota excedida ou violação de regra de negócio |
401 | API key ausente ou inválida |
402 | Créditos insuficientes para concluir a operação |
404 | Recurso não encontrado |
500 | Erro do servidor — tente novamente com backoff exponencial |
lastKey para paginar.403 em padrões abusivos. Se achar que está sendo limitado de forma inesperada, fale com o suporte.GET /user/profileRetorna o perfil do usuário autenticado.
Resposta
{
"userId": "5a4cbd70-...",
"email": "jane@example.com",
"name": "Jane",
"plan": "pro_plus",
"createdAt": 1745000000000
}Exemplo
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_..."Um telefone é um número de WhatsApp verificado que pode receber alertas. É preciso verificar um telefone antes de assinar uma conta do X nele.
POST /phonesGera um código de 6 dígitos e envia para o número via WhatsApp. O telefone é criado no estado pending_verification.
Requisição
| Campo | Tipo | Obrigatório | Notas |
|---|---|---|---|
phoneNumber | string | sim | Formato E.164, por exemplo +5511987654321 |
displayName | string | não | Rótulo amigável exibido no painel |
Resposta
{ "phoneNumber": "+5511987654321", "status": "pending_verification" }Erros
400 "invalid phone number format" — não está em E.164400 "phone number limit reached" — excede o limite do plano (Free/Pro/Pro+ 1, Business 3, Enterprise 10)Exemplo
curl -X POST https://api.wallawhats.com/phones \
-H "x-api-key: bws_prod_..." \
-H "Content-Type: application/json" \
-d '{"phoneNumber": "+5511987654321", "displayName": "Work"}'POST /phones/verifyConfirma um telefone enviando o código de 6 dígitos. Os códigos expiram em 15 minutos.
Requisição
| Campo | Tipo | Obrigatório |
|---|---|---|
phoneNumber | string (E.164) | sim |
code | string (6 dígitos) | sim |
Resposta
{ "phoneNumber": "+5511987654321", "status": "verified" }Erros
404 "phone not found"400 "invalid code" — código incorreto400 "code expired" — mais de 15 minutos400 "phone already verified"GET /phonesResposta
{
"phones": [
{
"phoneNumber": "+5511987654321",
"status": "verified",
"displayName": "Work",
"createdAt": 1745000000000,
"verifiedAt": 1745000060000
}
],
"count": 1
}DELETE /phones/{phoneNumber}Remove o telefone e desativa quaisquer assinaturas direcionadas a ele. Codifique o + na URL como %2B.
Resposta
{ "success": true }Exemplo
curl -X DELETE "https://api.wallawhats.com/phones/%2B5511987654321" \
-H "x-api-key: bws_prod_..."Uma assinatura vincula uma conta do X que você quer monitorar a um dos seus telefones verificados. Quando a conta do X publica, o WallaWhats envia um alerta de WhatsApp para esse telefone.
POST /subscriptionsRequisição
| Campo | Tipo | Obrigatório | Notas |
|---|---|---|---|
xUsername | string | sim | 1–15 caracteres, alfanumérico + underscore. O prefixo @ é aceito e removido. |
phoneNumber | string (E.164) | sim | Deve ser um dos seus telefones verificados. |
Resposta
{
"xUsername": "elonmusk",
"xUserId": "44196397",
"xDisplayName": "Elon Musk",
"xProfileImage": "https://pbs.twimg.com/...",
"phoneNumber": "+5511987654321",
"isActive": true,
"createdAt": 1745000000000
}Erros
400 "invalid X username format" — falha na regex400 "phone not found" / "phone not verified"400 "subscription limit reached" — veja a tabela de planos abaixo404 "X account not found" — o nome de usuário não existe no XLimites por plano
| Plano | Assinaturas |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 50 |
GET /subscriptionsResposta
{
"subscriptions": [ /* mesma estrutura da resposta de POST /subscriptions */ ],
"count": 3
}DELETE /subscriptions/{xUsername}Correspondência insensível a maiúsculas/minúsculas em xUsername. Remova o @ antes de enviar.
Resposta
{ "success": true }Todo alerta entregue pelo WallaWhats é registrado aqui, junto com seu status de entrega no WhatsApp.
GET /notificationsParâmetros de consulta
| Parâmetro | Tipo | Descrição |
|---|---|---|
from | number (epoch ms) | Filtra notificações criadas em ou após esse instante |
to | number (epoch ms) | Filtra notificações criadas em ou antes desse instante |
lastKey | string | Cursor de paginação retornado pela resposta anterior |
Resposta
{
"notifications": [
{
"notificationId": "a1b2c3d4-...",
"userId": "5a4cbd70-...",
"phoneNumber": "+5511987654321",
"xUsername": "elonmusk",
"tweetId": "1797123456789000000",
"tweetText": "...",
"tweetUrl": "https://x.com/elonmusk/status/...",
"waMessageId": "wamid.HBgN...",
"status": "delivered",
"errorMessage": null,
"createdAt": 1745000000000,
"updatedAt": 1745000002000
}
],
"lastKey": "eyJOT1RJRklDQVRJT05fSUQi..."
}Valores possíveis de status: queued, sent, delivered, read, failed.
O tamanho de página é 50. Quando lastKey está ausente, você chegou ao final.
Gerencie as chaves que seus aplicativos usam para chamar esta API.
POST /apikeysRequisição
| Campo | Tipo | Obrigatório |
|---|---|---|
name | string | não, padrão "Default" |
Resposta (201 Created)
{
"apiKey": "bws_prod_00000000000000000000000000000000",
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"expiresAt": 1776536000000
}Valor exibido apenas uma vez
apiKey é retornada somente na criação. Guarde-a no seu gerenciador de segredos imediatamente. Chamadas posteriores só expõem o keyPrefix.
GET /apikeysResposta
[
{
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"lastUsedAt": 1745086400000,
"expiresAt": 1776536000000
}
]DELETE /apikeys/{keyPrefix}Use o keyPrefix de 12 caracteres da resposta da listagem — nunca a chave completa.
Resposta
{ "success": true }# 1. Crie uma chave no painel e exporte-a
export WALLA_API_KEY="bws_prod_..."
# 2. Cadastre e verifique seu número de WhatsApp
curl -X POST https://api.wallawhats.com/phones \
-H "x-api-key: $WALLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phoneNumber":"+5511987654321","displayName":"Mobile"}'
# -> o telefone recebe um código no WhatsApp. Envie-o:
curl -X POST https://api.wallawhats.com/phones/verify \
-H "x-api-key: $WALLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phoneNumber":"+5511987654321","code":"123456"}'
# 3. Assine uma conta do X
curl -X POST https://api.wallawhats.com/subscriptions \
-H "x-api-key: $WALLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"xUsername":"elonmusk","phoneNumber":"+5511987654321"}'
# 4. Veja os alertas chegando
curl https://api.wallawhats.com/notifications \
-H "x-api-key: $WALLA_API_KEY"É isso — assim que a conta do X publicar, o alerta chega ao telefone em uns 10 segundos.
Dúvidas sobre a API, relatos de bugs ou pedidos de aumento de cota: abra um chamado na aba Support do seu painel, ou escreva para hello@support.wallawhats.com.