Pular para o conteúdo
whatsapi.sh

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.

Enviar uma mensagem
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. 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. 2

    Crie uma chave

    Uma chave só, começando com `wa_`. Ela vale pra API REST e pro MCP.

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

Exemplo
  1. Aceita

    A API devolve o ID da mensagem e o horário previsto para o envio.

  2. Na fila

    A mensagem espera na fila do número. Você pode cancelar antes que ela saia.

  3. 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
Começar grátis

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
Assinar Starter
Mais popular

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
Assinar Pro

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
Assinar Scale

Ou recarregue

Mensagens extras pros meses puxados. Nunca vencem, e a gente só usa elas quando a sua cota mensal acaba.

250 mensagens · R$ 121000 mensagens · R$ 395000 mensagens · R$ 169

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.

Começar grátis