Todas as rotas exigem o header x-api-key com uma API Key ativa.
Gerencie suas API Keys na pagina API Keys.
Todas as rotas possuem limite de requisicoes por minuto. Quando excedido, a API retorna 429 Too Many Requests.
| Header | Descricao |
|---|---|
| X-RateLimit-Limit | Limite de requisicoes por minuto da sua conta |
| X-RateLimit-Remaining | Requisicoes restantes na janela atual |
| X-RateLimit-Reset | Timestamp (Unix) quando a janela reseta |
O limite padrao e 60 req/min. Caso precise de mais, contate o administrador.
POST /session/connect — Inicia uma nova conexao e retorna um tempIdGET /session/pending/{tempId}/qr — Obtenha o QR code para escanearPOST /session/pending/{tempId}/pairing-code — Obtenha um codigo numerico de 8 caracteres para vincular sem QRGET /session/pending/{tempId}/status — Monitore ate conectar; a resposta incluira o phone_numberInicia uma nova conexao WhatsApp. Retorna um ID temporario para acompanhar o processo.
| Campo | Tipo | Descricao |
|---|---|---|
| webhookUrl | string | URL para receber eventos via webhook |
| displayName | string | Nome de exibicao do numero |
| proxyHost | string | Host do proxy |
| proxyPort | integer | Porta do proxy |
| proxyUser | string | Usuario do proxy |
| proxyPass | string | Senha do proxy |
| proxyType | string | http ou socks5 (padrao: http) |
Retorna o QR code da sessao pendente como imagem base64.
Faca polling a cada 2-3 segundos ate obter o QR. Se status: false, o QR ainda nao esta pronto.
Alternativa ao QR code. Retorna um codigo numerico de 8 caracteres para vincular o dispositivo. No celular, va em Dispositivos Vinculados > Vincular com numero de telefone e insira o codigo.
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| phoneNumber | string | Sim | Numero do telefone a vincular (ex: 5511999998888) |
O codigo expira em ~60 segundos. Pode solicitar novo codigo na mesma sessao. Nota: apos solicitar pairing code, o QR code nao sera mais emitido naquela sessao.
Monitora o status da conexao pendente. Quando conectado, retorna o numero de telefone.
O tempId expira apos 5 minutos se nao for escaneado.
Todas usam o numero de telefone como identificador (ex: 5511999998888).
Lista todos os numeros conectados da sua conta com status em tempo real.
Retorna o status da sessao de um numero especifico.
Envia uma mensagem de texto.
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| to | string | Sim | Numero destino (ex: 5511999998888) |
| message | string | Sim | Texto da mensagem |
| humanMode | boolean | Nao | Simula comportamento humano antes do envio (marca como lido, digitando..., delay aleatorio) |
O messageId pode ser usado para rastrear o status de entrega via GET /session/{number}/messages/{messageId}/status.
Envia arquivo. Aceita dois formatos: upload (multipart/form-data) ou base64 (application/json).
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| to | string | Sim | Numero destino |
| file | file | Sim | Arquivo a enviar |
| caption | string | Nao | Texto de legenda (imagens, videos, documentos) |
| sendAudioAsVoice | boolean | Nao | Enviar audio como mensagem de voz |
| humanMode | boolean | Nao | Simula comportamento humano antes do envio (marca como lido, digitando..., delay aleatorio) |
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| to | string | Sim | Numero destino |
| base64 | string | Sim | Conteudo do arquivo em base64 |
| filename | string | Sim | Nome do arquivo (ex: foto.jpg) |
| mimetype | string | Sim | Tipo MIME (ex: image/jpeg) |
| caption | string | Nao | Texto de legenda (imagens, videos, documentos) |
| sendAudioAsVoice | boolean | Nao | Enviar audio como mensagem de voz |
| humanMode | boolean | Nao | Simula comportamento humano antes do envio (marca como lido, digitando..., delay aleatorio) |
Lista os contatos do WhatsApp conectado.
Retorna detalhes de um contato especifico, incluindo foto de perfil.
Lista as conversas do WhatsApp conectado.
Retorna detalhes de uma conversa com as ultimas mensagens.
| Param | Tipo | Padrao | Descricao |
|---|---|---|---|
| limit | integer | 10 | Quantidade de mensagens |
| mediaBase64 | boolean | false | Incluir midia como base64 |
Faz download da midia de uma mensagem especifica.
Desconecta e remove o numero da sua conta. Faz logout do WhatsApp.
Quando configurado, o sistema envia eventos para a URL de webhook via POST.
Toda requisicao de webhook inclui o header X-Webhook-Signature com uma assinatura HMAC-SHA256. Use o webhook_secret disponivel na pagina API Keys para validar a autenticidade.
Se a entrega falhar, o sistema faz ate 3 tentativas com backoff: imediato, 5s, 30s, 120s. Todas as tentativas sao registradas e visiveis em GET /session/{number}/webhook-logs.
Enviado quando o status de uma mensagem muda (entregue, lido, etc.).
Enviado ao clicar em "Testar Webhook" no painel. Use para validar que a URL esta acessivel e a assinatura HMAC esta correta.
Enviado sempre que o numero desconecta, seja por logout ou por queda temporaria (perda de conexao, reinicio, etc). O campo reason diferencia os casos:
| reason | Descricao |
|---|---|
| logged_out | O usuario fez logout do WhatsApp (sessao encerrada permanentemente) |
| disconnected | Desconexao temporaria (queda de rede, reinicio). O sistema tentara reconectar automaticamente |
| Codigo | Descricao |
|---|---|
400 | Requisicao invalida (parametros faltando ou sessao nao pronta) |
403 | API Key invalida ou conta inativa |
404 | Numero nao encontrado ou sessao pendente expirada |
429 | Rate limit excedido — muitas requisicoes. Verifique os headers X-RateLimit-* |
500 | Erro interno do servidor |