Documentação da API
Além de aquecer seus números, o Zaapfy é uma plataforma completa de disparo de mensagens no WhatsApp. Com uma API key você envia texto, mídia e áudio, lista suas instâncias e recebe mensagens por webhook — direto do seu sistema, n8n, CRM ou onde quiser.
Base URL
https://zaapfy.comTodas as rotas começam com /api/v1. A instância é identificada pelo nome que você deu a ela no painel.
Autenticação
Toda requisição precisa da sua API key, enviada no header apikey (ou Authorization: Bearer). Pegue ou regenere a sua em Painel → API.
apikey: SUA_API_KEY # ou Authorization: Bearer SUA_API_KEY
⚠️ Sua API key é secreta. Use sempre no servidor — nunca exponha no front-end.
Listar instâncias
Retorna todas as suas instâncias e o status de conexão de cada uma.
curl https://zaapfy.com/api/v1/instances \ -H "apikey: SUA_API_KEY"
Resposta
{
"instances": [
{ "name": "vendas01", "number": "5511999991234", "status": "open", "warming": true }
]
}status: open (conectado), connecting, closed.
Detalhe da instância
Retorna os dados de uma instância específica pelo nome.
curl https://zaapfy.com/api/v1/instances/vendas01 \ -H "apikey: SUA_API_KEY"
Resposta
{ "name": "vendas01", "number": "5511999991234", "status": "open", "warming": true }Enviar texto
Envia uma mensagem de texto. A instância precisa estar conectada (status: open).
Corpo
{
"number": "5511999998888", // com DDI + DDD, só dígitos
"text": "Olá! Tudo bem?"
}Exemplo
curl -X POST https://zaapfy.com/api/v1/instances/vendas01/send-text \
-H "apikey: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"5511999998888","text":"Olá! Tudo bem?"}'Resposta
{ "ok": true, "result": { /* retorno do WhatsApp */ } }Enviar mídia
Envia imagem, vídeo ou documento. O campo media aceita uma URL pública ou conteúdo em base64.
Corpo
{
"number": "5511999998888",
"mediatype": "image", // "image" | "video" | "document"
"media": "https://exemplo.com/foto.jpg",
"caption": "Olha só", // opcional
"mimetype": "image/jpeg", // opcional
"fileName": "foto.jpg" // opcional (útil p/ documentos)
}Exemplo
curl -X POST https://zaapfy.com/api/v1/instances/vendas01/send-media \
-H "apikey: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"5511999998888","mediatype":"image","media":"https://exemplo.com/foto.jpg","caption":"Olha so"}'Enviar áudio
Envia um áudio (estilo mensagem de voz). O campo audio aceita URL pública ou base64.
Corpo
{
"number": "5511999998888",
"audio": "https://exemplo.com/audio.mp3"
}Exemplo
curl -X POST https://zaapfy.com/api/v1/instances/vendas01/send-audio \
-H "apikey: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"5511999998888","audio":"https://exemplo.com/audio.mp3"}'Receber mensagens (webhook)
Para receber as mensagens que chegam num número, defina a URL de webhook da instância no painel (Painel → instância → Webhook). A cada mensagem recebida, o Zaapfy faz um POST com o evento na sua URL.
Exemplo do corpo recebido
{
"event": "messages.upsert",
"instance": "vendas01",
"data": {
"key": { "remoteJid": "5511999998888@s.whatsapp.net", "fromMe": false },
"message": { "conversation": "Oi, quero saber mais" }
}
}A URL precisa ser pública e https. IPs privados/localhost são bloqueados por segurança.
Códigos de erro
| Código | Significado |
|---|---|
| 200 | Sucesso |
| 400 | Campos obrigatórios faltando ou JSON inválido |
| 401 | API key inválida ou ausente |
| 402 | Assinatura expirada ou instância acima do limite do plano |
| 404 | Instância não encontrada |
| 409 | Instância não está conectada (status diferente de open) |
| 502 | Falha ao enviar pelo WhatsApp |