Documentação da API Zapeou
Integre o WhatsApp no seu sistema, n8n, Typebot ou qualquer ferramenta em minutos. API REST simples, webhooks em tempo real e aquecimento automático de número.
📖 Visão Geral
A API Zapeou é baseada em REST e usa JSON em todas as requisições e respostas. Cada instância (conexão WhatsApp) possui sua própria URL exclusiva e API Key, garantindo isolamento total entre clientes.
https://zapeou.consultacobertura.com.brPrincipais recursos
- URL única por instância — cada conexão tem seu próprio endpoint
- API Key isolada — autenticação por instância, não por usuário
- Webhooks em tempo real — receba notificações de mensagens e mudanças de status
- Aquecimento automático — proteção contra banimento do WhatsApp
- Envio em lote — fila inteligente com delay configurável
- Histórico completo — todas as mensagens enviadas e recebidas ficam salvas
⚡ Quick Start
Em menos de 2 minutos você envia sua primeira mensagem. Siga os passos:
Acesse zapeou.consultacobertura.com.br e escolha um plano.
No painel, clique em "+ Nova" e dê um nome único (ex: minha-loja). O sistema gera automaticamente a URL e o token.
Abra o WhatsApp no celular → Aparelhos Conectados → Conectar aparelho.
Disponíveis no card da instância no painel. A URL tem o formato:
https://zapeou.consultacobertura.com.br/{userId}/{slug}/api/message/send-text
Use o exemplo abaixo substituindo os valores:
curl -X POST https://zapeou.consultacobertura.com.br/5/minha-loja/api/message/send-text \
-H "Authorization: Bearer SUA_API_KEY_AQUI" \
-H "Content-Type: application/json" \
-d '{"number":"5511999990000","text":"Olá! Testando o Zapeou 🚀"}'
{"success":true,"message":"Mensagem enviada com sucesso!","data":{...}}🔐 Autenticação
Todas as requisições à API devem incluir o Token da Instância (API Key) no header Authorization como Bearer Token.
Authorization: Bearer [SUA_API_KEY]
Como obter a API Key
- Acesse o painel
- Localize a instância desejada
- Clique em "Copiar" ao lado do campo API KEY
🔗 URL Única da Instância
Cada instância possui uma URL exclusiva no formato:
https://zapeou.consultacobertura.com.br/{user_id}/{instance_slug}/api/{endpoint}
| Parâmetro | Descrição |
|---|---|
| {user_id} | ID numérico do usuário (gerado automaticamente pelo sistema, visível no painel) |
| {instance_slug} | Nome da instância convertido em slug (sem acentos, espaços viram hífens). Ex: minha-loja, vendas-01 |
5 e você criou uma instância chamada "Minha Loja", a URL será:https://zapeou.consultacobertura.com.br/5/minha-loja/api/message/send-text📤 Enviar Mensagem de Texto
Envia uma mensagem de texto para um número WhatsApp. Suporta aquecimento automático.
Parâmetros do Body (JSON)
| Campo | Tipo | Descrição |
|---|---|---|
| number Obrigatório | string | Número destino no formato internacional, somente dígitos. Ex: 5511999990000 |
| text Obrigatório | string | Conteúdo da mensagem. Suporta emojis e quebras de linha (\n) |
{
"number": "5511999990000",
"text": "Olá! Sua encomenda foi enviada 📦\nAguarde em casa."
}
Resposta de Sucesso
✓ 200 OK
{
"success": true,
"message": "Mensagem enviada com sucesso!",
"data": {
"message_id": "3EB0A92F7B1C...",
"to": "5511999990000",
"instance_name": "minha-loja",
"instance_slug": "minha-loja",
"user_id": 5,
"api_url": "https://zapeou.consultacobertura.com.br/5/minha-loja/api/message/send-text"
},
"warmup": null
}
warmup com informações do dia atual, limite e quantidade enviada. Quando o limite diário é atingido, a API retorna erro 400 informando que o envio será permitido no dia seguinte.📨 Envio em Lote (Bulk)
Adiciona múltiplas mensagens à fila de envio com delay configurável entre elas.
Parâmetros do Body (JSON)
| Campo | Tipo | Descrição |
|---|---|---|
| messages Obrigatório | array | Array de objetos com number e text |
| delay_ms Opcional | integer | Delay em milissegundos entre cada envio. Padrão: 3000 (3s) |
{
"messages": [
{ "number": "5511999990001", "text": "Olá cliente 1!" },
{ "number": "5511999990002", "text": "Olá cliente 2!" },
{ "number": "5511999990003", "text": "Olá cliente 3!" }
],
"delay_ms": 5000
}
{
"success": true,
"message": "3 mensagem(ens) adicionadas à fila!",
"data": {
"queued": 3,
"instance_name": "minha-loja",
"instance_slug": "minha-loja",
"user_id": 5
}
}
📊 Status da Instância
Retorna o status atual da conexão WhatsApp e informações da instância.
curl https://zapeou.consultacobertura.com.br/5/minha-loja/api/status \
-H "Authorization: Bearer SUA_API_KEY"
{
"success": true,
"data": {
"instance_name": "minha-loja",
"instance_slug": "minha-loja",
"user_id": 5,
"status": "connected",
"phone_number": "5511988887777",
"total_sent": 1247,
"total_received": 892
}
}
Status possíveis
| Status | Descrição |
|---|---|
| connected | Conectado e pronto para enviar/receber mensagens |
| qr_ready | Aguardando leitura do QR Code |
| starting | Iniciando conexão |
| disconnected | Desconectado — é necessário reconectar via painel |
🔔 Webhooks
Webhooks permitem que o Zapeou notifique seu sistema em tempo real quando eventos ocorrerem (mensagem recebida, enviada, mudança de status, etc).
Como configurar
- No painel, clique em "⚙ Detalhes" da instância
- Clique em "🔗 Webhook"
- Informe a URL do seu endpoint (deve aceitar
POSTcom JSON) - Selecione os eventos que deseja receber
- Clique em Salvar
X-Zapeou-Event identificando o tipo de evento. Valide esse header no seu servidor para garantir que a requisição veio do Zapeou.Eventos disponíveis
| Evento | Descrição |
|---|---|
| message_received | Disparado quando uma mensagem é recebida na instância |
| message_sent | Disparado após envio bem-sucedido de mensagem |
| connection_changed | Disparado quando o status da conexão muda (connected, disconnected, etc) |
Exemplo de Payload
{
"event": "message_received",
"instance_id": 42,
"instance_name": "minha-loja",
"instance_slug": "minha-loja",
"user_id": 5,
"timestamp": "2026-07-02T14:32:10.123Z",
"data": {
"from": "5511999990000",
"text": "Olá, gostaria de saber o preço",
"type": "text",
"timestamp": "2026-07-02T14:32:10.123Z"
}
}
200 OK rapidamente. Se precisar processar dados pesados, apenas confirme o recebimento e processe em background.🔥 Aquecimento de Número
O aquecimento (warmup) é um sistema de proteção que aumenta gradualmente o volume de mensagens enviadas por dia, evitando que números novos sejam banidos pelo WhatsApp.
Limites por dia
| Período | Limite diário | Observação |
|---|---|---|
| Dias 1–3 | 10 mensagens | Início conservador |
| Dias 4–7 | 30 mensagens | Aumento gradual |
| Dias 8–14 | 60 mensagens | Velocidade moderada |
| Dias 15–21 | 120 mensagens | Consolidação |
| Dias 22–30 | 250 mensagens | Quase ilimitado |
| Dia 31+ | Ilimitado | Uso normal |
Como a API responde quando o limite é atingido
{
"success": false,
"message": "Limite diário de aquecimento atingido (30 msg/dia — Dia 5).",
"warmup": true
}
📋 Respostas da API
Todas as respostas seguem o padrão JSON com os campos:
| Campo | Tipo | Descrição |
|---|---|---|
| success | boolean | true se a operação foi bem-sucedida, false caso contrário |
| message | string | Mensagem descritiva do resultado |
| data | object | Dados retornados pela operação (quando aplicável) |
| warmup | object | null | Informações do aquecimento (apenas em envios com warmup ativo) |
❌ Códigos de Erro
| HTTP | Código | Descrição |
|---|---|---|
| 400 | — | Requisição inválida (campos faltando, número inválido, limite de warmup atingido) |
| 401 | — | Não autorizado — API Key ausente ou inválida |
| 402 | SUSPENDED | Conta suspensa por inadimplência |
| 402 | OVERDUE | Pagamento em atraso há mais de 35 dias |
| 404 | — | Instância não encontrada (URL ou slug incorretos) |
| 429 | — | Muitas requisições — aguarde alguns segundos |
| 500 | — | Erro interno do servidor — tente novamente |
📦 Exemplos por Linguagem
Node.js (Fetch)
const response = await fetch(
'https://zapeou.consultacobertura.com.br/5/minha-loja/api/message/send-text',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify({
number: '5511999990000',
text: 'Olá via Node.js!'
})
}
);
const data = await response.json();
console.log(data);
Python (requests)
import requests
url = "https://zapeou.consultacobertura.com.br/5/minha-loja/api/message/send-text"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"number": "5511999990000",
"text": "Olá via Python!"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
PHP (cURL)
<?php
$url = 'https://zapeou.consultacobertura.com.br/5/minha-loja/api/message/send-text';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $API_KEY
],
CURLOPT_POSTFIELDS => json_encode([
'number' => '5511999990000',
'text' => 'Olá via PHP!'
])
]);
$response = curl_exec($ch);
echo $response;
n8n / Typebot
No Typebot: Use o bloco Make HTTP request
Configure:
• Method: POST
• URL:
https://zapeou.consultacobertura.com.br/{user_id}/{slug}/api/message/send-text• Headers:
Authorization: Bearer SUA_API_KEY e Content-Type: application/json• Body (JSON):
{"number":"{{numero}}","text":"{{mensagem}}"}
❓ Perguntas Frequentes
No painel, cada instância exibe a URL completa pronta para copiar. O formato é https://zapeou.consultacobertura.com.br/{user_id}/{slug}/api/message/send-text. Basta clicar em "Copiar" ao lado do campo "API — URL ÚNICA DA INSTÂNCIA".
Atualmente não é possível renomear. Se precisar de um slug diferente, crie uma nova instância com o nome desejado e remova a antiga.
O banimento depende do comportamento de envio. Recomendamos sempre ativar o aquecimento para números novos e evitar envio de spam. Números usados há mais de 30 dias com volume gradual são muito mais seguros. A API retorna o status do aquecimento em cada resposta.
Sim! Funciona tanto com WhatsApp pessoal quanto Business. Basta escanear o QR Code normalmente.
300 requisições por minuto por IP. Se precisar de mais, entre em contato para um plano enterprise.
Você tem 35 dias de tolerância. Após isso, a API retorna erro 402 com código SUSPENDED ou OVERDUE. Ao regularizar, tudo volta ao normal instantaneamente — sem perda de conexão ou histórico.
Sim! O plano Starter custa apenas R$ 49,90/mês e inclui 1 conexão WhatsApp. Você pode criar a conta, conectar e testar à vontade.
Precisa de ajuda? Entre em contato pelo painel ou envie um email para suporte@zapeou.com
© 2026 Zapeou — API v1.0