API Reference

Documentação

Referência completa da Zapius API. Todas as chamadas usam o header apikey com a chave da instância.

# Base URL
https://zapiusapi.com
# Autenticação (header)
apikey: SUA_API_KEY

Endpoints

POST
/api/public/v1/messages

Enviar mensagem (texto, mídia, localização)

Endpoint unificado de envio. O campo type define o formato: text, image, video, audio, voice, sticker, document ou location.

Headers

apikey: SUA_API_KEY
content-type: application/json

Body

// Texto
{ "to": "5511999999999", "text": "Olá!" }

// Mídia por URL (image | video | audio | voice | sticker | document)
{
  "to": "5511999999999",
  "type": "image",
  "mediaUrl": "https://exemplo.com/foto.jpg",
  "caption": "Legenda opcional"
}

// Mídia em base64
{
  "to": "5511999999999",
  "type": "document",
  "mediaBase64": "JVBERi0xLjQK...",
  "fileName": "contrato.pdf"
}

// Localização
{
  "to": "5511999999999",
  "type": "location",
  "latitude": -23.55,
  "longitude": -46.63,
  "name": "São Paulo"
}

Exemplo (cURL)

curl -X POST https://zapiusapi.com/api/public/v1/messages \
  -H "apikey: SUA_API_KEY" \
  -H "content-type: application/json" \
  -d '{"to":"5511999999999","text":"Olá do Zapius!"}'

Resposta

200 { "ok": true, "id": "<message-id>" }
401 { "error": "invalid apikey" }
409 { "error": "instance not connected (status: close)" }
GET
/api/public/v1/messages/history

Histórico de mensagens de uma conversa

Retorna o histórico de mensagens trocadas com um JID. Suporta paginação por timestamp.

Headers

apikey: SUA_API_KEY

Exemplo (cURL)

curl "https://zapiusapi.com/api/public/v1/messages/history?jid=5511999999999@s.whatsapp.net&limit=100" \
  -H "apikey: SUA_API_KEY"

Resposta

Query params:
  jid    (obrigatório) — ex: 5511999999999@s.whatsapp.net
  limit  (opcional)    — máx. de mensagens (default 100)
  before (opcional)    — timestamp unix (segundos) para paginar
GET
/api/public/v1/chats

Listar conversas (chats)

Retorna as conversas ativas da instância, com último contato e contadores.

Headers

apikey: SUA_API_KEY

Exemplo (cURL)

curl "https://zapiusapi.com/api/public/v1/chats?limit=200" \
  -H "apikey: SUA_API_KEY"
GET
/api/public/v1/presence

Consultar e publicar presença

Consulta presença do contato e permite publicar estados da instância: online, offline, typing, recording e paused.

Headers

apikey: SUA_API_KEY

Body

{ "to": "5511999999999", "presence": "typing" }

Exemplo (cURL)

curl "https://zapiusapi.com/api/public/v1/presence?phone=5511999999999" \
  -H "apikey: SUA_API_KEY"

curl -X POST https://zapiusapi.com/api/public/v1/presence \
  -H "apikey: SUA_API_KEY" \
  -H "content-type: application/json" \
  -d '{"to":"5511999999999","presence":"typing"}'

Resposta

200 { "ok": true, "presence": "typing", "is_online": true, "is_typing": true }
POST
/api/public/chat/fetchProfilePictureUrl/{instance}

Buscar foto de perfil de um contato

{instance} pode ser o id, name ou slug da instância dona da apikey.

Headers

apikey: SUA_API_KEY
content-type: application/json

Body

{ "number": "5511999999999" }

Exemplo (cURL)

curl -X POST https://zapiusapi.com/api/public/chat/fetchProfilePictureUrl/minha-instancia \
  -H "apikey: SUA_API_KEY" \
  -H "content-type: application/json" \
  -d '{"number":"5511999999999"}'

Resposta

{
  "wuid": "5511999999999@s.whatsapp.net",
  "number": "5511999999999",
  "profilePictureUrl": "https://...",
  "name": "Fulano",
  "pushName": "Fulano",
  "isWhatsapp": true
}
POST
/api/public/bridge-webhook

Webhook de eventos (recebido pelo seu servidor)

Configure uma URL HTTPS em Webhooks no painel. Enviamos POST JSON para eventos: message.upsert (mensagem recebida), messages.update (status), connection.update, qr.update, contacts.update, chats.upsert.

Exemplo (cURL)

// Exemplo de payload recebido na SUA URL:
{
  "event": "message.upsert",
  "instance_id": "<uuid>",
  "data": {
    "direction": "inbound",
    "remote_jid": "5511999999999@s.whatsapp.net",
    "real_phone": "5511999999999",
    "fromMe": false,
    "message_type": "conversation",
    "text": "Olá!",
    "media_url": null,
    "timestamp": 1761234567
  }
}