Autenticação

Todas as requisições devem usar a seguinte estrutura de URL:

https://api2.wzap-api.com/instances/{id_instancia}/token/{token}/{action}

Parâmetros Obrigatórios:

  • id_instancia - Identificador único da instância
  • token - Token de autenticação gerado ao criar a instância

Exemplo de Requisição:

curl -X GET \
  "https://api2.wzap-api.com/instances/123/token/abc123def456/status" \
  -H "Content-Type: application/json"

Pegar QRCode

GET
/instances/{id}/token/{token}/qr

Retorna o QRCode para autenticação da instância. Recomenda-se polling a cada 2 segundos até que o QRCode seja escaneado.

Respostas:

  • 200 QRCode disponível:
    {"qr": "qr_code_string"}
  • 204 QRCode já autenticado ou não disponível
  • 404 Instância não existe
  • 403 Token inválido

Status da Instância

GET
/instances/{id}/token/{token}/status

Retorna o status de conexão da instância.

Resposta:

{"connected": true}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido

Reiniciar Instância

POST
/instances/{id}/token/{token}/restart

Reinicia a instância, mantendo a sessão ativa.

Resposta:

{"restarted": true}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido

Desconectar WhatsApp

POST
/instances/{id}/token/{token}/disconnect

Desconecta a instância do WhatsApp, exigindo nova autenticação via QRCode. Não deleta a sessão ou pasta.

Resposta:

{"restarted": true}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido

Deletar Instância

DELETE
/instances/{id}/token/{token}

Deleta a instância permanentemente.

Resposta:

{"deleted": true}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido

Enviar Mensagem de Texto

POST
/instances/{id}/token/{token}/send-text

Envia uma mensagem de texto para um contato ou grupo.

Parâmetros no Body (JSON):

{
  "to": "5511999999999@c.us",
  "message": "Texto da mensagem",
  "delayTyping": 2000 // opcional, em milissegundos
}

Resposta de Sucesso:

{"status": "sent"}

Códigos de Status:

  • 200 Sucesso
  • 400 Parâmetros "to" ou "message" ausentes
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao enviar mensagem

Enviar Imagem

POST
/instances/{id}/token/{token}/send-image

Envia uma imagem para um contato ou grupo.

Parâmetros no Body (multipart/form-data):

  • to - Número de telefone ou ID do grupo (obrigatório)
  • image - Arquivo de imagem (obrigatório)
  • caption - Legenda opcional para a imagem

Resposta de Sucesso:

{"status": "image sent"}

Códigos de Status:

  • 200 Sucesso
  • 400 Parâmetros "to" ou "image" ausentes
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao enviar imagem

Responder Mensagem

POST
/instances/{id}/token/{token}/reply

Responde a uma mensagem específica no chat.

Parâmetros no Body (JSON):

{
  "msgId": "ID_da_mensagem",
  "message": "Texto da resposta",
  "delayTyping": 2000 // opcional, em milissegundos
}

Resposta de Sucesso:

{"replied": true}

Códigos de Status:

  • 200 Sucesso
  • 400 Parâmetros "msgId" ou "message" ausentes
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao responder mensagem

Forward Mensagem

POST
/instances/{id}/token/{token}/forward

Encaminha uma mensagem existente para outro contato ou grupo.

Parâmetros no Body (JSON):

{
  "to": "5511999999999@c.us",
  "msgId": "ID_da_mensagem"
}

Resposta de Sucesso:

{"status": "forwarded"}

Códigos de Status:

  • 200 Sucesso
  • 400 Parâmetros "to" ou "msgId" ausentes
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao encaminhar mensagem

Deletar Mensagens

POST
/instances/{id}/token/{token}/delete

Deleta uma ou mais mensagens do chat.

Parâmetros no Body (JSON):

{
  "msgIds": ["ID1", "ID2", "..."],
  "forEveryone": true // opcional, padrão: true
}

Resposta de Sucesso:

{"deleted": 2}

Códigos de Status:

  • 200 Sucesso, retorna número de mensagens deletadas
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao deletar mensagens

Marcar como Lido

POST
/instances/{id}/token/{token}/read

Marca um chat como lido, atualizando o status de leitura.

Parâmetros no Body (JSON):

{
  "chatId": "5511999999999@c.us"
}

Resposta de Sucesso:

{"read": true}

Códigos de Status:

  • 200 Sucesso
  • 400 Parâmetro "chatId" ausente
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao marcar como lido

Listar Chats

GET
/instances/{id}/token/{token}/chats

Lista todos os chats da instância com paginação, usando cache interno.

Parâmetros de Query:

  • page - Número da página (padrão: 1)
  • limit - Itens por página (máximo: 100, padrão: 100)

Exemplo de Resposta:

{
  "page": 1,
  "limit": 10,
  "total": 25,
  "totalPages": 3,
  "data": [
    {
      "id": "5511999999999@c.us",
      "name": "Nome do Contato",
      "isGroup": false,
      "unread": 0,
      "participants": 1,
      "lastMsg": {
        "id": "msg_id",
        "body": "Última mensagem",
        "timestamp": 1633024800
      }
    }
  ]
}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao listar chats

Listar Grupos

GET
/instances/{id}/token/{token}/groups

Lista todos os grupos da instância com paginação, usando cache interno.

Parâmetros de Query:

  • page - Número da página (padrão: 1)
  • limit - Itens por página (máximo: 100, padrão: 100)

Exemplo de Resposta:

{
  "page": 1,
  "limit": 10,
  "total": 5,
  "totalPages": 1,
  "data": [
    {
      "id": "group_id@g.us",
      "name": "Nome do Grupo"
    }
  ]
}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido
  • 500 Erro ao listar grupos

Configurar Webhook

POST
/instances/{id}/token/{token}/webhook/{evento}

Configura um webhook para um evento específico da instância.

Eventos disponíveis: aoenviar, aoreceber, aoconectar, aodesconectar, aopresencadochat, aoreceberstatusdamsg

Parâmetros no Body (JSON):

{
  "url": "https://seusite.com/webhook"
}

Resposta de Sucesso:

{"webhook": "https://seusite.com/webhook"}

Códigos de Status:

  • 200 Sucesso
  • 400 Evento inválido
  • 404 Instância não existe
  • 403 Token inválido

Remover Webhook

DELETE
/instances/{id}/token/{token}/webhook/{evento}

Remove o webhook configurado para um evento específico.

Eventos disponíveis: aoenviar, aoreceber, aoconectar, aodesconectar, aopresencadochat, aoreceberstatusdamsg

Resposta de Sucesso:

{"deleted": true}

Códigos de Status:

  • 200 Sucesso
  • 400 Evento inválido
  • 404 Webhook não configurado ou instância não existe
  • 403 Token inválido

Listar Webhooks

GET
/instances/{id}/token/{token}/webhooks

Lista todos os webhooks configurados para a instância.

Exemplo de Resposta:

{
  "webhooks_aoenviar": "https://seusite.com/webhook",
  "webhooks_aoreceber": "https://seusite.com/webhook2"
}

Códigos de Status:

  • 200 Sucesso
  • 404 Instância não existe
  • 403 Token inválido