Pular para o conteúdo

Introdução à API

Base URL, autenticação, formato de resposta, códigos de status e identificação de sessão.

A API do wa-api permite enviar e receber mensagens WhatsApp programaticamente. Este guia cobre tudo que você precisa saber antes de fazer sua primeira requisição.

Todas as requisições usam:

https://endpoint.wi.api.br

Toda requisição exige o header x-api-key com sua chave de API:

GET /sessions HTTP/1.1
Host: endpoint.wi.api.br
x-api-key: wk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Requisições sem header ou com chave inválida retornam 401.

Existem duas formas de identificar qual sessão WhatsApp deve processar a requisição:

Usado nos endpoints de operação: /chat/*, /user/*, /groups, /newsletter/*.

POST /chat/send/text HTTP/1.1
Host: endpoint.wi.api.br
x-api-key: wk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
x-instance: minha-sessao
Content-Type: application/json
{"chatId": "5511999999999@s.whatsapp.net", "text": "Olá!"}

Usado nos endpoints de gerenciamento da sessão: criar, conectar, desconectar, verificar status.

GET /sessions/minha-sessao/status HTTP/1.1
Host: endpoint.wi.api.br
x-api-key: wk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Use x-instance quando estiver enviando mensagens ou consultando dados. Use o path parameter quando estiver gerenciando o ciclo de vida da sessão.

Respostas de sucesso:

{
"success": true,
"messageId": "3EB0A8C2F5B3D1E4A9"
}

Respostas de erro:

{
"error": "Session not found"
}

O campo error contém uma descrição legível do problema. Em endpoints de envio, messageId identifica a mensagem criada no WhatsApp.

CódigoSignificado
200Sucesso
400Body inválido ou campos faltando
401API key ausente ou inválida
403Sem permissão para o recurso
404Recurso não encontrado
429Rate limit excedido
500Erro interno
502Engine da sessão inacessível

A API retorna headers de rate limit em toda resposta:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87

Quando o limite é excedido, a resposta 429 inclui o header Retry-After com o número de segundos até a próxima janela:

HTTP/1.1 429 Too Many Requests
Retry-After: 30

Implemente exponential backoff: espere 1s, 2s, 4s, 8s entre retries em caso de 429.

JID (Jabber ID) é o identificador de um contato, grupo ou newsletter no WhatsApp. Use o formato correto ao enviar mensagens:

TipoFormatoExemplo
Individual{DDI}{DDD}{número}@s.whatsapp.net5511999999999@s.whatsapp.net
Grupo{id}@g.us120363001234567890@g.us
Newsletter{id}@newsletter120363000000000000@newsletter

Para números individuais, use o telefone completo com código do país, sem +, sem espaços, sem traços.

Envie o header x-instance com o nome da sessão em toda requisição de envio ou consulta de dados.

Nunca exponha a API key no código-fonte — armazene em variável de ambiente e injete em runtime.

Erros 500 e 502 podem ser transientes — implemente retry com exponential backoff antes de considerar a requisição como falha definitiva.

Um JID malformado resulta em erro 400 — valide o formato (@s.whatsapp.net, @g.us, @newsletter) no seu código antes de chamar a API.