Transforme seu WhatsApp em uma API
Use o número de WhatsApp que você já tem. Mande mensagem pelo seu código com uma requisição HTTP. Sem análise da Meta, sem template, sem precisar comprar outro número.
Grátis para começar, sem cartão. Pareie como mais um aparelho conectado.
curl -X POST https://api.whatsapi.sh/v1/messages \
-H "Authorization: Bearer wa_your_key" \
-H "Content-Type: application/json" \
-d '{ "to": "+5511988887777", "text": "Hello from whatsapi!" }'A requisição inteira, do seu próprio número. Mensagens que você inicia esperam na fila de envio.
Três passos até o primeiro envio
- 1
Pareie o seu número
Escaneie um QR code no painel, do mesmo jeito que você conecta o WhatsApp Web. Seu celular continua funcionando normal. A gente vira mais um aparelho conectado na sua conta, não uma cópia dela.
- 2
Crie uma chave
Uma chave só, começando com `wa_`. Ela vale pra API REST e pro MCP.
- 3
Envie
Um POST. Você recebe o id da mensagem de volta, e os recibos de entrega chegam no seu webhook.
Quando uma mensagem entra na fila
ExemploAceita
A API devolve o ID da mensagem e o horário previsto para o envio.
Na fila
A mensagem espera na fila do número. Você pode cancelar antes que ela saia.
Enviada
A mensagem sai da fila. Seu webhook recebe message.sent.
Enviada não quer dizer entregue ou lida. O WhatsApp informa isso em recibos separados.
O que dá pra construir com ele
Cada uma dessas é meia dúzia de linhas de código, num número que já é seu.
Códigos de login
A pessoa digita o telefone dela. Um código de 6 dígitos chega no WhatsApp. Uma chamada envia esse código e ainda te devolve ele pra conferir.
Avisos de pedido e de agendamento
Pagamento aprovado. Pedido enviado. Consulta amanhã às 15h. As mensagens que as pessoas realmente gostam de receber.
Respostas pros seus clientes
Toda mensagem que te mandam cai no seu webhook. Seu código responde do mesmo número pro qual a pessoa já escreve.
Alertas pro seu time
Um servidor caiu. Um pagamento falhou. Chegou um lead novo. Avise seu time pelo WhatsApp.
O que ele faz
Os endpoints que você vai usar de verdade, mais alguns atalhos que normalmente levam uma semana pra construir. Tudo isso num número que é seu.
Mensagens e mídia
Texto, foto, vídeo, documento, áudio, localização e cartão de contato. Passe uma URL que a gente busca o arquivo, então você nunca precisa fazer upload.
Códigos de login
Uma chamada envia o código e devolve ele pra você, pra conferir do seu jeito. Hash, limite de tentativas e intervalo entre reenvios já vêm prontos.
Consulta de números
Pergunte se um telefone tem WhatsApp antes de gastar uma mensagem com ele. A gente confere número brasileiro com e sem o nono dígito, porque os dois existem por aí.
Webhooks assinados
Sete eventos em um endpoint. Verifique a assinatura de cada entrega. Se falhar, tentamos de novo. Use o ID da entrega para ignorar duplicatas. Pausamos endpoints que continuam falhando.
Envios em lote
Até 25 destinatários numa chamada. Toda mensagem espera a vez, com 15 a 25 minutos de intervalo por padrão, inclusive para quem já conversou com o número. Cada destinatário tem o próprio resultado.
Erros que dizem o que fazer
Todo erro tem um código estável e uma mensagem que diz como resolver. Tudo que se resolve esperando vem com `Retry-After`. Um 429 diz qual limite você bateu e quando ele libera.
Duas formas de usar
Cada recurso existe duas vezes: como endpoint REST e como ferramenta MCP. A gente escreve uma vez só, então os dois nunca divergem.
Pro seu código
Rotas curtas, que você acerta de primeira. `POST /v1/messages` recebe `{to, text}`. Se você tem um número só, o corpo é isso aí.
Exemplo
POST https://api.whatsapi.sh/v1/messages
{ "to": "+55…", "text": "hi" }
{ "data": { "id": "…", "status": "queued",
"scheduledAt": "2026-09-20T12:19:00Z" } }Usa TypeScript? npm i @whatsapi.sh/sdk te dá a mesma API, com tipos.
Pros seus agentes
Aponte qualquer cliente MCP pra mesma URL, com a mesma chave `wa_`. Seu agente ganha ferramentas prontas: send_message, send_otp, check_number. Mesma cota, mesmos limites.
Exemplo
{
"mcpServers": {
"whatsapi": {
"type": "streamable-http",
"url": "https://api.whatsapi.sh/mcp",
"headers": { "Authorization": "Bearer wa_your_key" }
}
}
}honesto
Seu número pode ser banido
Esta é uma API não oficial. Ela conversa com o WhatsApp do mesmo jeito que o WhatsApp Web. É por isso que você não precisa de aprovação de template nem de análise da Meta. E é por isso também que o WhatsApp pode restringir ou banir para sempre qualquer número que use ela. Ninguém consegue recorrer dessa decisão, nem a gente.
Vai escrever pra muito desconhecido? Use um chip reserva, ou a API oficial. Vai responder quem já te escreve? A linha que você tem serve. A gente fala isso antes de você parear um número, não num rodapé.
Como a gente mantém o seu número vivo
O WhatsApp bane número por abordagem fria em volume, não por responder gente. Então a gente coloca o ritmo seguro dentro do produto, em vez de escrever num guia e deixar por sua conta.
Um limite diário de conversas novas
Todo número tem um limite para as conversas que ele começa: cinco por dia na primeira semana, vinte quando ele já tem mais tempo de estrada. Responder quem escreveu pra você primeiro nunca entra nessa conta. Nenhum plano levanta esse limite. Um plano maior compra mais números, e cada número traz o limite dele. Dá pra mudar o limite de cada número, mas subir aumenta a chance de banimento.
Mensagens que você inicia esperam a vez
Mensagens que você inicia saem com 15 a 25 minutos de intervalo por padrão, mesmo para quem já conversou com o número. Respostas para quem escreveu nas últimas 24 horas saem na hora. Grupos e códigos de login também não passam pela fila. Se o número cair, as mensagens na fila esperam e voltam a sair com o mesmo intervalo quando ele reconectar. Você pode mudar o intervalo ou desligar a fila.
Preços
Você paga por mensagem enviada. O seu plano também define quantos números você pode conectar. Todo o resto é grátis em qualquer plano: webhooks, MCP, consulta de números, recibos de entrega. O limite diário de conversas novas é um limite de segurança, e nenhum plano levanta ele.
Free
R$ 0/mês
- 100 mensagens por mês
- 1 número conectado
- 20 por dia, uso justo
- 4 envios por minuto
- Um destinatário por chamada
Starter
R$ 29/mês
- 1000 mensagens por mês
- 2 números conectados
- 60 por dia, uso justo
- 8 envios por minuto
- Envios em lote
Pro
R$ 79/mês
- 5000 mensagens por mês
- 5 números conectados
- 250 por dia, uso justo
- 12 envios por minuto
- Envios em lote
Scale
R$ 249/mês
- 20000 mensagens por mês
- 15 números conectados
- 700 por dia, uso justo
- 20 envios por minuto
- Envios em lote
Ou recarregue
Mensagens extras pros meses puxados. Nunca vencem, e a gente só usa elas quando a sua cota mensal acaba.
Sem taxa de adesão, sem taxa por número, sem contrato anual. Cada moeda tem seus próprios preços, e a sua primeira compra define em qual você paga.
Perguntas comuns
Pode. Toda API não oficial tem esse risco, e nenhum fornecedor consegue prometer o contrário. Se algum promete, isso já diz o que você precisa saber sobre ele. O que mata número de verdade é abordagem fria em volume. Por isso todo número aqui tem um limite diário para as conversas que ele começa, e por isso a gente aplica esse limite em vez de só sugerir. Responder quem pediu pra receber você é a coisa mais segura que existe.
Mande a primeira mensagem
Plano gratuito, sem cartão, a API inteira. A partir do número que você já tem.