API REST

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

Todas 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

GET/api/v1/instances

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

GET/api/v1/instances/{nome}

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

POST/api/v1/instances/{nome}/send-text

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

POST/api/v1/instances/{nome}/send-media

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

POST/api/v1/instances/{nome}/send-audio

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)

POSTseu endpoint

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ódigoSignificado
200Sucesso
400Campos obrigatórios faltando ou JSON inválido
401API key inválida ou ausente
402Assinatura expirada ou instância acima do limite do plano
404Instância não encontrada
409Instância não está conectada (status diferente de open)
502Falha ao enviar pelo WhatsApp

Comece a disparar agora

Crie sua conta, conecte um número e pegue sua API key.

Criar conta grátis