The logo of blüblü

API de WhatsApp sem a Meta: envie mensagens com uma chamada HTTP

Guilherme Tostes

Por:

Atualizado: Leitura: 6 min

Editor de código mostrando uma requisição POST para a API do Blu e a mensagem chegando no WhatsApp

Quem já tentou integrar WhatsApp a um sistema conhece o caminho: criar conta de desenvolvedor na Meta, verificar a empresa, esperar aprovação de cada template, pagar por conversa e descobrir que a mensagem que você queria mandar não se encaixa em nenhuma categoria permitida.

A API do Blu é o caminho curto. Você conecta seu número pelo QR code, gera uma chave e passa a enviar mensagens, criar campanhas e ler conversas com chamadas REST comuns. Funciona com o número que você já tem, no WhatsApp normal ou Business, e com qualquer linguagem que faça uma requisição HTTP.

Sua primeira mensagem em 2 minutos

  1. Entre no Blu e conecte o número pelo QR code, como no WhatsApp Web.
  2. Em Configurações → API, gere uma chave.
  3. Faça a chamada:
curl -X POST https://api.blu.direct/v1/messages \
  -H "Authorization: Bearer blu_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "5511999990000",
    "text": "Oi João, seu pedido sai amanhã pela manhã."
  }'

Resposta:

{
  "id": "msg_01J7X4Q9K2",
  "status": "queued",
  "to": "5511999990000",
  "from": "5511988880000"
}

Sem template, sem aprovação, sem servidor. O número fica conectado na infraestrutura do Blu e a API fala com ela.

Recursos da API

Tudo que existe no painel do Blu existe na API. Os endpoints principais:

Mensagens

POST   /v1/messages              envia texto, imagem, documento, áudio, localização
GET    /v1/messages/{id}         status: queued, sent, delivered, read, failed
GET    /v1/chats                 lista conversas, com filtro de não lidas
GET    /v1/chats/{number}        histórico de uma conversa

Envio de arquivo:

curl -X POST https://api.blu.direct/v1/messages \
  -H "Authorization: Bearer $BLU_TOKEN" \
  -F "to=5511999990000" \
  -F "caption=Segue o boleto de setembro" \
  -F "file=@boleto.pdf"

Campanhas

POST   /v1/campaigns             cria campanha com lista de contatos e mensagem
GET    /v1/campaigns/{id}        progresso, entregas, leituras, respostas
POST   /v1/campaigns/{id}/pause
POST   /v1/campaigns/{id}/resume

Exemplo em Node:

const res = await fetch('https://api.blu.direct/v1/campaigns', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.BLU_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Renovação setembro',
    message: 'Oi {{nome}}, sua renovação vence em {{vencimento}}. Renove com 15% de desconto: {{link}}',
    contacts: [
      { number: '5511999990000', nome: 'João', vencimento: '20/09', link: 'https://...' },
      { number: '5511988880000', nome: 'Maria', vencimento: '22/09', link: 'https://...' },
    ],
    scheduleAt: '2026-09-15T09:00:00-03:00',
  }),
});

O Blu aplica automaticamente o intervalo seguro entre envios. Você não precisa (e não consegue) configurar um ritmo que coloque o número em risco.

Contatos e tags

GET    /v1/contacts?tag=lead-quente
POST   /v1/contacts
PATCH  /v1/contacts/{number}     adiciona ou remove tags, atualiza campos

Aquecimento de chip

POST   /v1/numbers/{number}/warmup
GET    /v1/numbers/{number}/warmup

O aquecimento de chip do Blu controlado por código, para quem gerencia vários números.

Agentes de IA

GET    /v1/agents
POST   /v1/agents
POST   /v1/agents/{id}/attach    liga o agente a um número

Os agentes de atendimento do Blu podem ser criados e configurados pela API, útil para agências que montam um agente por cliente.

Webhooks: receba mensagens no seu sistema

Cadastre uma URL e o Blu envia um POST para cada evento:

{
  "event": "message.received",
  "number": "5511988880000",
  "from": "5511999990000",
  "name": "João",
  "text": "Consigo trocar a data de entrega?",
  "timestamp": "2026-09-12T14:32:10-03:00"
}

Eventos disponíveis: message.received, message.delivered, message.read, message.failed, campaign.finished, number.disconnected.

Com isso você monta o que quiser: chatbot próprio, integração com CRM, atualização de pedido, alerta de número desconectado no Slack.

Exemplos de integração

Loja virtual. Webhook do gateway de pagamento → API do Blu envia confirmação com o comprovante em PDF.

CRM. Quando o lead muda para "proposta enviada", o CRM chama a API e dispara o follow-up. Resposta do cliente volta pelo webhook e atualiza o CRM.

Clínica. Cron diário lista consultas do dia seguinte e envia lembrete com botão de confirmação. Respostas "sim" e "não" chegam pelo webhook.

Agência. Um número por cliente, uma chave por número, campanhas criadas por código a partir das planilhas de cada conta.

Agentes de IA. Frameworks como LangChain, OpenAI Agents SDK e Vercel AI SDK chamam a API como uma ferramenta comum. Se você prefere não escrever código de cola, o Blu MCP expõe esses mesmos endpoints como ferramentas prontas para ChatGPT, Claude e Cursor.

Limites, erros e boas práticas

  • Rate limit. 60 requisições por minuto por chave. Envio de mensagens tem fila própria com o intervalo seguro do número.
  • Idempotência. Envie o header Idempotency-Key para evitar mensagem duplicada em caso de retry.
  • Erros. Respostas com 4xx trazem code e message legíveis: number_disconnected, invalid_recipient, daily_limit_reached, insufficient_plan.
  • Sandbox. Chaves blu_test_ enviam apenas para os números verificados na sua conta. Use em desenvolvimento.

Segurança

  • Chaves com escopo. Só leitura, só envio, campanhas, administração. Uma chave por integração.
  • Assinatura de webhook. Todo POST vem com o header X-Blu-Signature (HMAC-SHA256) para você validar a origem.
  • Limites herdados. A API respeita os mesmos limites de volume do painel. Não existe parâmetro para desligar.
  • Histórico. Tudo que sai pela API aparece no histórico do painel com a origem e a chave usada.
  • Revogação instantânea. Apagou a chave, a integração para na hora.

API, CLI ou MCP?

Você quer... Use
Integrar ao seu sistema, CRM, loja ou backend API do Blu
Scripts, cron, CI e agentes de código no terminal Blu CLI
Conversar com ChatGPT, Claude ou Cursor em linguagem natural Blu MCP

Os três usam o mesmo número conectado pelo QR code e o mesmo painel.

Quanto custa

A API está incluída em todos os planos pagos do Blu, sem cobrança por mensagem ou por conversa. Os limites de envio e de números são os do seu plano.

Como começar

Estamos liberando o acesso à API em ondas:

Quero acesso à API do Blu →

Perguntas frequentes

É a API oficial do WhatsApp?
Não. A API do Blu conecta pelo QR code, como o WhatsApp Web, e funciona com o número que você já tem. Não exige conta na Meta, verificação de empresa nem templates aprovados.

Meu número pode ser bloqueado?
O risco é o mesmo do envio pelo painel do Blu. A API não permite ritmo acima do seguro, e para números novos vale o aquecimento de chip.

Tem SDK?
Sim, para Node e Python. Mas a API é REST simples e funciona com qualquer linguagem.

Posso enviar para grupos?
Sim. Use o ID do grupo no campo to. O endpoint GET /v1/groups lista os grupos do número.

Posso conectar vários números na mesma conta?
Sim. Cada número tem seu próprio identificador e você escolhe o remetente com o campo from ou usando uma chave específica por número.

Qual a diferença entre a API e o CLI?
O CLI é construído em cima da API. Se você vai escrever código, use a API. Se vai rodar comandos, scripts ou agentes de código, o CLI é mais rápido.


Falta um endpoint para o seu caso? Conta pra gente.


WhatsApp & AutomaçãoTutoriaisNegócios & Atendimento
© Blü Direct Ltda. CNPJ 48.162.199/0001-80