Referência da API v2

Integre o WhatsApp à sua aplicação em minutos. A API v2 é compatível com Evolution API — se você já tem código funcionando no padrão Evolution, basta trocar a base URL para usar a Whatsmiau Cloud.

Base URL:https://api.whatsmiau.dev/v2
Identificador das instâncias: o instanceName que você escolhe ao criar é o identificador usado em todas as rotas subsequentes (:name). Não é preciso consultar nenhum ID interno.

Autenticação

Todas as requisições usam API Key via header apikey. Gere suas chaves no Dashboard. As chaves são escopadas por conta — você só acessa suas próprias instâncias.

GET

Verificar Credenciais

/instance/fetchInstances

Teste se sua chave de API é válida listando suas instâncias.

curl -X GET https://api.whatsmiau.dev/v2/instance/fetchInstances \
  -H "apikey: SUA_CHAVE_AQUI"

Instâncias

Gerencie suas sessões do WhatsApp. Cada instância representa um número de telefone conectado.

POST

Criar Instância

/instance/create

Cria uma nova instância com configuração completa: webhook, comportamento (rejeição de chamada, marcar como lido, sincronização de histórico) e opcionalmente proxy (Enterprise). O 'instanceName' que você escolher será o identificador usado em todas as outras chamadas — não existe mais ObjectID separado.

Parâmetros

instanceNamestringObrigatório

Identificador único da instância dentro da sua conta. Será usado como :name em todos os outros endpoints.

qrcodebooleanOpcional

Retorna o QR Code na resposta de criação (se suportado pelo core).

tokenstringOpcional

Token personalizado.

rejectCallbooleanOpcional

Rejeita automaticamente chamadas recebidas.

msgCallstringOpcional

Mensagem enviada automaticamente ao rejeitar uma chamada.

groupsIgnorebooleanOpcional

Ignora eventos de grupos no webhook.

alwaysOnlinebooleanOpcional

Mantém a conta sempre online no WhatsApp.

readMessagesbooleanOpcional

Marca automaticamente as mensagens como lidas.

readStatusbooleanOpcional

Marca automaticamente status como visto.

syncFullHistorybooleanOpcional

Sincroniza o histórico completo do WhatsApp ao conectar.

webhook.enabledbooleanOpcional

Ativa o webhook já na criação.

webhook.urlstringOpcional

URL HTTPS pública que receberá os eventos. Bloqueado: localhost, IPs privados e redes internas (proteção SSRF).

webhook.eventsstring[]Opcional

Lista de eventos para filtrar. Se omitida, todos os eventos são enviados.

webhook.base64booleanOpcional

Se true, mídias nos eventos vêm codificadas em base64.

proxyHoststringOpcional

Proxy: host público (Enterprise).

proxyPortstringOpcional

Proxy: porta (Enterprise).

proxyProtocolstringOpcional

Proxy: "http", "https" ou "socks5" (Enterprise).

proxyUsernamestringOpcional

Proxy: usuário (Enterprise).

proxyPasswordstringOpcional

Proxy: senha (Enterprise).

migrationobjectOpcional

Migração de sessão Baileys já autenticada. Restrito ao plano Enterprise. Estrutura: { creds: object, preKeys: array }. Resposta inclui migration: { jid, preKeysImported, connected }.

curl -X POST https://api.whatsmiau.dev/v2/instance/create \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "instanceName": "Marketing01",
  "qrcode": true
}'
GET

Listar Instâncias

/instance/fetchInstances

Retorna todas as instâncias da sua conta com o estado de conexão atual. Cada item segue o mesmo formato de resposta da Criação. Instâncias suspensas por limite de plano vêm com state: 'closed' e suspended: true.

curl -X GET https://api.whatsmiau.dev/v2/instance/fetchInstances \
  -H "apikey: SUA_CHAVE"
GET

Conectar Instância

/instance/connect/:name

Inicia a conexão e retorna o QR Code (base64) + pairing code quando disponível. A instância é referenciada pelo nome que você escolheu na criação.

Parâmetros

namestringObrigatório

Nome da instância (o mesmo "instanceName" usado ao criar).

numberstringOpcional

Número de telefone com DDI para receber pairing code em vez de QR Code (ex: 5511999998888).

curl -X GET https://api.whatsmiau.dev/v2/instance/connect/Marketing01 \
  -H "apikey: SUA_CHAVE"
GET

QR Code como PNG

/instance/connect/:name/image

Retorna o QR Code como imagem PNG pura (Content-Type: image/png). Útil para incorporar em páginas HTML via <img />. Retorna 204 No Content se a instância já estiver conectada.

Parâmetros

namestringObrigatório

Nome da instância.

curl -X GET https://api.whatsmiau.dev/v2/instance/connect/Marketing01/image \
  -H "apikey: SUA_CHAVE" \
  -o qr.png
GET

Estado da Conexão

/instance/connectionState/:name

Retorna o estado atual da instância. Valores: 'open' (conectado), 'closed' (desconectado), 'connecting' (em conexão), 'qr-code' (aguardando leitura). Quando suspensa por limite de plano retorna 'closed' + campo extra suspended: true.

Parâmetros

namestringObrigatório

Nome da instância.

curl -X GET https://api.whatsmiau.dev/v2/instance/connectionState/Marketing01 \
  -H "apikey: SUA_CHAVE"
PUT

Atualizar Instância

/instance/update/:name

Atualiza a configuração de webhook e/ou proxy de uma instância existente. Campos não enviados permanecem inalterados. Campos de proxy são restritos ao plano Enterprise.

Parâmetros

namestringObrigatório

Nome da instância (path param).

webhook.enabledbooleanOpcional

Ativa/desativa o webhook.

webhook.urlstringOpcional

URL HTTPS que receberá os eventos. Bloqueado: localhost, IPs privados e redes internas.

webhook.eventsstring[]Opcional

Filtro de eventos (ex: messages.upsert, connection.update).

webhook.base64booleanOpcional

Se true, mídias nos eventos vêm codificadas em base64.

proxyHoststringOpcional

Host público do proxy (Enterprise).

proxyPortstringOpcional

Porta do proxy (Enterprise).

proxyProtocolstringOpcional

"http", "https" ou "socks5" (Enterprise).

proxyUsernamestringOpcional

Usuário do proxy (Enterprise).

proxyPasswordstringOpcional

Senha do proxy (Enterprise).

curl -X PUT https://api.whatsmiau.dev/v2/instance/update/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "webhook": {
    "enabled": true,
    "url": "https://meusite.com/webhook",
    "events": ["messages.upsert", "connection.update"]
  }
}'
DELETE

Desconectar (Logout)

/instance/logout/:name

Encerra a sessão WhatsApp mas mantém a instância criada. Para reconectar depois, basta chamar /instance/connect/:name novamente. Para remover permanentemente, use Deletar Instância.

Parâmetros

namestringObrigatório

Nome da instância.

curl -X DELETE https://api.whatsmiau.dev/v2/instance/logout/Marketing01 \
  -H "apikey: SUA_CHAVE"
DELETE

Deletar Instância

/instance/delete/:name

Remove permanentemente a instância, encerra a sessão e libera slot no seu plano.

Parâmetros

namestringObrigatório

Nome da instância (o mesmo "instanceName" usado ao criar).

curl -X DELETE https://api.whatsmiau.dev/v2/instance/delete/Marketing01 \
  -H "apikey: SUA_CHAVE"

Mensagens

Envie mensagens de texto, imagens, vídeos, áudios e documentos para qualquer número do WhatsApp.

POST

Enviar Texto

/message/sendText/:instance

Envia uma mensagem de texto simples. Suporta emojis.

Parâmetros

numberstringObrigatório

Número do destinatário com DDI e DDD (ex: 5511999998888).

textstringObrigatório

O texto a ser enviado.

delaynumberOpcional

Atraso em milissegundos antes de enviar (máx: 300000).

linkPreviewbooleanOpcional

Exibir preview de links.

mentionsEveryOnebooleanOpcional

Mencionar todos em grupos.

mentionedstring[]Opcional

Lista de JIDs a mencionar.

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

curl -X POST https://api.whatsmiau.dev/v2/message/sendText/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "text": "Olá! 👋",
  "delay": 1200
}'
POST

Enviar Mídia

/message/sendMedia/:instance

Envia imagens, vídeos ou documentos via URL pública.

Parâmetros

numberstringObrigatório

Número do destinatário.

mediatypestringObrigatório

"image", "video" ou "document".

mediastringObrigatório

URL pública do arquivo.

captionstringOpcional

Legenda da mídia.

fileNamestringOpcional

Nome do arquivo (para documentos).

mimetypestringOpcional

MIME type do arquivo.

delaynumberOpcional

Atraso em milissegundos (máx: 300000).

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

mentionsEveryOnebooleanOpcional

Mencionar todos em grupos.

mentionedstring[]Opcional

Lista de JIDs a mencionar.

curl -X POST https://api.whatsmiau.dev/v2/message/sendMedia/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "mediatype": "image",
  "media": "https://example.com/image.png",
  "caption": "Confira!"
}'
POST

Enviar Áudio (PTT)

/message/sendWhatsAppAudio/:instance

Envia um arquivo de áudio como se fosse gravado na hora (Push-To-Talk).

Parâmetros

numberstringObrigatório

Número do destinatário.

audiostringObrigatório

URL pública do arquivo MP3/OGG.

delaynumberOpcional

Atraso em milissegundos (máx: 300000).

encodingbooleanOpcional

Re-encodar o áudio antes de enviar.

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

mentionsEveryOnebooleanOpcional

Mencionar todos em grupos.

mentionedstring[]Opcional

Lista de JIDs a mencionar.

curl -X POST https://api.whatsmiau.dev/v2/message/sendWhatsAppAudio/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "audio": "https://example.com/voice.mp3"
}'
POST

Enviar Lista

/message/sendList/:instance

Envia uma mensagem interativa com lista de opções para o usuário selecionar. Ideal para menus, catálogos e formulários simples.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

titlestringOpcional

Título da mensagem.

descriptionstringObrigatório

Descrição/corpo da mensagem.

buttonTextstringOpcional

Texto do botão que abre a lista.

footerTextstringOpcional

Texto do rodapé.

sectionsarrayObrigatório

Seções da lista, cada uma com title e rows[].

sections[].titlestringOpcional

Título da seção.

sections[].rows[].titlestringObrigatório

Título da opção.

sections[].rows[].descriptionstringOpcional

Descrição da opção.

sections[].rows[].rowIdstringObrigatório

ID único da opção (retornado no webhook).

curl -X POST https://api.whatsmiau.dev/v2/message/sendList/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "title": "Nossos Planos",
  "description": "Escolha o plano ideal para você:",
  "buttonText": "Ver opções",
  "footerText": "Whatsmiau Cloud",
  "sections": [
    {
      "title": "Planos",
      "rows": [
        { "title": "Starter", "description": "R$ 30/mês - 1 instância", "rowId": "plan_starter" },
        { "title": "Pro", "description": "R$ 90/mês - 5 instâncias", "rowId": "plan_pro" },
        { "title": "Enterprise", "description": "R$ 200/mês - 15 instâncias", "rowId": "plan_enterprise" }
      ]
    }
  ]
}'
POST

Enviar Botões

/message/sendButtons/:instance

Envia uma mensagem com botões interativos de resposta rápida. Suporta botões de resposta (reply) e botões PIX.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

titlestringOpcional

Título da mensagem.

descriptionstringObrigatório

Corpo da mensagem.

footerstringOpcional

Texto do rodapé.

buttonsarrayObrigatório

Lista de botões (máximo 3).

buttons[].typestringObrigatório

"reply" para resposta rápida ou "pix" para pagamento.

buttons[].displayTextstringObrigatório

Texto exibido no botão.

buttons[].idstringOpcional

ID do botão (retornado no webhook ao clicar). Usado com type "reply".

buttons[].currencystringOpcional

Moeda do PIX (ex: "BRL"). Obrigatório quando type é "pix".

buttons[].namestringOpcional

Nome do recebedor PIX. Obrigatório quando type é "pix".

buttons[].keyTypestringOpcional

Tipo da chave PIX: "email", "cpf", "cnpj", "phone" ou "random". Obrigatório quando type é "pix".

buttons[].keystringOpcional

Chave PIX do recebedor. Obrigatório quando type é "pix".

curl -X POST https://api.whatsmiau.dev/v2/message/sendButtons/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "title": "Confirmar Pedido",
  "description": "Deseja confirmar o pedido #1234?",
  "footer": "Whatsmiau Cloud",
  "buttons": [
    { "type": "reply", "displayText": "Sim, confirmar", "id": "confirm_yes" },
    { "type": "reply", "displayText": "Não, cancelar", "id": "confirm_no" }
  ]
}'
POST

Enviar Figurinha

/message/sendSticker/:instance

Envia uma figurinha (sticker) a partir de uma URL pública. O arquivo precisa estar em formato WebP para uso direto; outros formatos podem ser convertidos automaticamente.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

stickerstringObrigatório

URL pública do arquivo WebP.

delaynumberOpcional

Atraso em milissegundos antes de enviar (máx: 300000).

notConvertStickerbooleanOpcional

Se true, não tenta converter o arquivo antes de enviar.

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

mentionsEveryOnebooleanOpcional

Mencionar todos em grupos.

mentionedstring[]Opcional

Lista de JIDs a mencionar.

curl -X POST https://api.whatsmiau.dev/v2/message/sendSticker/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "sticker": "https://example.com/sticker.webp"
}'
POST

Enviar Localização

/message/sendLocation/:instance

Envia um pin de localização geográfica. Funciona com coordenadas em graus decimais.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

latitudenumberObrigatório

Latitude em graus decimais (ex: -23.55052).

longitudenumberObrigatório

Longitude em graus decimais (ex: -46.633308).

namestringOpcional

Nome/rótulo do local (ex: "Av. Paulista, 1000").

addressstringOpcional

Endereço textual complementar.

delaynumberOpcional

Atraso em milissegundos (máx: 300000).

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

curl -X POST https://api.whatsmiau.dev/v2/message/sendLocation/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "latitude": -23.55052,
  "longitude": -46.633308,
  "name": "MASP",
  "address": "Av. Paulista, 1578"
}'
POST

Enviar Contato

/message/sendContact/:instance

Envia um ou mais cartões de contato (vCard). Para múltiplos contatos, envie um único array — o WhatsApp agrupa automaticamente.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

contactarrayObrigatório

Lista de contatos a enviar.

contact[].fullNamestringObrigatório

Nome completo do contato.

contact[].phoneNumberstringObrigatório

Número de telefone do contato.

contact[].wuidstringOpcional

WhatsApp UID do contato (se souber).

contact[].organizationstringOpcional

Organização/empresa.

contact[].emailstringOpcional

E-mail do contato.

contact[].urlstringOpcional

Website do contato.

delaynumberOpcional

Atraso em milissegundos (máx: 300000).

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

curl -X POST https://api.whatsmiau.dev/v2/message/sendContact/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "contact": [
    {
      "fullName": "Ivo Silva",
      "phoneNumber": "5511999997777",
      "organization": "Verboo",
      "email": "ivo@verboo.com.br"
    }
  ]
}'
POST

Enviar Enquete

/message/sendPoll/:instance

Cria uma enquete com opções para o destinatário votar. O voto chega via webhook como evento pollUpdateMessage.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

namestringObrigatório

Pergunta da enquete.

valuesstring[]Obrigatório

Opções de resposta (mínimo 2, máximo 12).

selectableCountnumberOpcional

Quantas opções o usuário pode escolher. 0 = apenas 1 voto (padrão). Use 1..N para múltipla escolha.

delaynumberOpcional

Atraso em milissegundos (máx: 300000).

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

curl -X POST https://api.whatsmiau.dev/v2/message/sendPoll/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "name": "Qual o melhor horário?",
  "values": ["Manhã", "Tarde", "Noite"],
  "selectableCount": 1
}'
POST

Enviar Vídeo Redondo (PTV)

/message/sendPtv/:instance

Envia uma mensagem de vídeo circular curto (Push-To-Video), similar ao áudio PTT mas com vídeo. Use arquivos curtos (<= 60s) em MP4.

Parâmetros

numberstringObrigatório

Número do destinatário (ex: 5511999998888).

videostringObrigatório

URL pública do arquivo MP4.

delaynumberOpcional

Atraso em milissegundos (máx: 300000).

quotedobjectOpcional

Mensagem a ser respondida (key.id obrigatório).

mentionsEveryOnebooleanOpcional

Mencionar todos em grupos.

mentionedstring[]Opcional

Lista de JIDs a mencionar.

curl -X POST https://api.whatsmiau.dev/v2/message/sendPtv/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "video": "https://example.com/short.mp4"
}'
POST

Enviar Status

/message/sendStatus/:instance

Publica um status (broadcast) visível para todos os contatos ou apenas para uma lista específica. Suporta texto, imagem, áudio e vídeo.

Parâmetros

typestringObrigatório

"text", "image", "audio" ou "video".

contentstringObrigatório

Texto do status OU URL pública do arquivo de mídia.

captionstringOpcional

Legenda (apenas para imagem/vídeo).

backgroundColorstringOpcional

Cor de fundo em HEX para status de texto (ex: "#FF5733").

fontnumberOpcional

Índice da fonte para texto (0-5).

allContactsbooleanOpcional

Se true, envia para todos os contatos.

statusJidListstring[]Opcional

Lista de JIDs específicos que vão ver o status (ignorado se allContacts=true).

curl -X POST https://api.whatsmiau.dev/v2/message/sendStatus/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "text",
  "content": "Estamos com desconto hoje! 🎉",
  "backgroundColor": "#FF5733",
  "font": 2,
  "allContacts": true
}'

Chat & Presença

Gerencie o estado do chat, reações e verificações de número.

POST

Enviar Reação

/message/sendReaction/:instance

Reage a uma mensagem específica com um emoji.

Parâmetros

reactionstringObrigatório

Emoji da reação (ex: 👍, ❤️). String de 1 caractere.

keyobjectObrigatório

Chave da mensagem alvo.

remoteJidstringObrigatório

JID do chat (ex: 5511...@s.whatsapp.net).

idstringObrigatório

ID da mensagem alvo.

fromMebooleanObrigatório

Se a mensagem foi enviada por você.

curl -X POST https://api.whatsmiau.dev/v2/message/sendReaction/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reaction": "👍",
  "key": {
    "remoteJid": "5511999998888@s.whatsapp.net",
    "id": "3EB0XXXXXXXX",
    "fromMe": false
  }
}'
POST

Enviar Presença

/chat/sendPresence/:instance

Simula o status de presença (digitando, gravando áudio, online) em um chat.

Parâmetros

numberstringObrigatório

Número do chat alvo (ex: 5511999998888).

presencestringObrigatório

"composing" (digitando) ou "available" (online).

typestringOpcional

"text" ou "audio". Define o tipo de presença.

delaynumberOpcional

Duração em milissegundos (máx: 300000).

curl -X POST https://api.whatsmiau.dev/v2/chat/sendPresence/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "number": "551199998888",
  "presence": "composing",
  "type": "text",
  "delay": 3000
}'
POST

Marcar como Lido

/chat/markMessageAsRead/:instance

Marca mensagens específicas como lidas.

Parâmetros

readMessagesobject[]Obrigatório

Array de mensagens a marcar como lidas.

remoteJidstringObrigatório

JID do chat (ex: 5511...@s.whatsapp.net).

idstringObrigatório

ID da mensagem.

senderstringOpcional

JID do remetente (obrigatório em grupos).

curl -X POST https://api.whatsmiau.dev/v2/chat/markMessageAsRead/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "readMessages": [
    {
      "remoteJid": "5511999998888@s.whatsapp.net",
      "id": "3EB0XXXXXXXX"
    }
  ]
}'
POST

Verificar Número

/chat/whatsappNumbers/:instance

Verifica se um número está registrado no WhatsApp.

Parâmetros

numbersstring[]Obrigatório

Lista de números para verificar.

curl -X POST https://api.whatsmiau.dev/v2/chat/whatsappNumbers/Marketing01 \
  -H "apikey: KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "numbers": ["551199998888"]
}'
DELETE

Deletar Mensagem

/chat/deleteMessageForEveryone/:instance

Revoga (apaga para todos) uma mensagem enviada ou recebida em um chat individual ou grupo.

Parâmetros

idstringObrigatório

ID da mensagem a ser deletada.

remoteJidstringObrigatório

JID do chat (ex: 5511999998888@s.whatsapp.net ou grupo@g.us).

fromMebooleanObrigatório

Se a mensagem foi enviada por você (true) ou recebida (false).

participantstringOpcional

JID do remetente original. Obrigatório ao deletar mensagem de outro participante em grupos.

curl -X DELETE https://api.whatsmiau.dev/v2/chat/deleteMessageForEveryone/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "3EB0XXXXXXXX",
  "remoteJid": "5511999998888@s.whatsapp.net",
  "fromMe": true
}'

Webhooks

Configure webhooks para receber eventos em tempo real via HTTP POST.

POST

Configurar Webhook

/webhook/set/:instance

Define ou atualiza a configuração de webhook para uma instância. Permite configurar URL de destino, eventos que serão enviados, headers customizados e formato do payload.

Parâmetros

webhook.enabledbooleanOpcional

Ativa ou desativa o webhook.

webhook.urlstringOpcional

URL que receberá os eventos via POST.

webhook.eventsstring[]Opcional

Lista de eventos para filtrar (ex: messages.upsert, connection.update).

webhook.headersobjectOpcional

Headers HTTP customizados enviados junto com cada evento.

webhook.byEventsbooleanOpcional

Se true, envia um POST por evento. Se false, agrupa.

webhook.base64booleanOpcional

Se true, codifica o payload em base64.

curl -X POST https://api.whatsmiau.dev/v2/webhook/set/MinhaInstancia \
  -H "Content-Type: application/json" \
  -H "apikey: SUA_CHAVE_AQUI" \
  -d '{
    "webhook": {
      "enabled": true,
      "url": "https://meusite.com/webhook",
      "events": ["messages.upsert", "connection.update"],
      "headers": {
        "Authorization": "Bearer meu_token"
      }
    }
  }'
GET

Consultar Webhook

/webhook/find/:instance

Retorna a configuração atual de webhook para uma instância.

curl -X GET https://api.whatsmiau.dev/v2/webhook/find/MinhaInstancia \
  -H "apikey: SUA_CHAVE_AQUI"

Eventos de Webhook

Todos os eventos são enviados como HTTP POST para a URL configurada, dentro de um envelope padrão. O campo data varia conforme o tipo de evento.

Envelope

{
  event: string           // Tipo do evento (ex: "messages.upsert")
  instance: string        // ID da instância
  data: T                 // Payload específico do evento (ver abaixo)
  date_time: string       // Timestamp ISO 8601
  sender: string          // Remetente (quando aplicável)
  server_url: string      // URL do servidor
}
EVENT

messages.upsert

Disparado quando uma nova mensagem é recebida ou enviada. Inclui mensagens de texto, imagens, vídeos, áudios, documentos, reações, contatos, listas e botões.

Campos do payload (data)

keyobject

Identificador da mensagem.

remoteJid string

JID do chat (ex: 5511999999999@s.whatsapp.net).

fromMe boolean

Se a mensagem foi enviada por você.

id string

ID único da mensagem.

participant string?

JID do remetente em grupos.

pushName string

Nome de exibição do remetente.

status string

"sent" ou "received".

messageobject

Conteúdo da mensagem. Apenas um dos campos abaixo estará presente por vez:

conversation string?

Mensagem de texto simples.

imageMessage ImageMessage?

Imagem com url, mimetype, caption, width, height.

videoMessage VideoMessage?

Vídeo com url, mimetype, caption, seconds.

audioMessage AudioMessage?

Áudio com url, mimetype, seconds, ptt (voz).

documentMessage DocumentMessage?

Documento com url, mimetype, fileName, title.

reactionMessage ReactionMessage?

Reação com key (mensagem alvo) e text (emoji).

contactMessage ContactMessage?

Contato com displayName e vCard.

listResponseMessage ListResponseMessage?

Resposta de lista com title e singleSelectReply.selectedRowId.

mediaUrl string?

URL pública da mídia (imagem, áudio, vídeo, documento) após upload no storage.

messageType string

Tipo da mensagem (ex: "conversation", "imageMessage", "audioMessage").

messageTimestamp number

Unix timestamp em segundos.

instanceId string

ID da instância que recebeu a mensagem.

contextInfoobject?

Contexto da mensagem (presente quando é resposta, menção ou mensagem efêmera).

stanzaId string?

ID da mensagem original (quando é resposta).

participant string?

JID do autor da mensagem original.

quotedMessage Message?

Conteúdo da mensagem citada (mesma estrutura de message).

mentionedJid string[]?

Lista de JIDs mencionados na mensagem.

expiration number?

Tempo de expiração em segundos (mensagens efêmeras).

{
  "event": "messages.upsert",
  "instance": "Atendimento01",
  "date_time": "2026-03-30T14:32:00Z",
  "data": {
    "key": {
      "remoteJid": "5511999999999@s.whatsapp.net",
      "fromMe": false,
      "id": "3EB04A2D1F75..."
    },
    "pushName": "Maria Silva",
    "status": "received",
    "message": {
      "conversation": "Olá! Gostaria de saber o status do meu pedido."
    },
    "messageType": "conversation",
    "messageTimestamp": 1743349920,
    "instanceId": "Atendimento01",
    "source": "android"
  }
}
EVENT

messages.update

Disparado quando o status de entrega de uma mensagem muda. Ocorre quando a mensagem é entregue no dispositivo do destinatário (DELIVERY_ACK) ou quando é lida (READ).

Campos do payload (data)

messageId string

ID interno da mensagem.

keyId string

ID da chave da mensagem.

remoteJid string

JID do chat.

fromMe boolean

Se a mensagem foi enviada por você.

participant string

JID do participante (em grupos).

status "DELIVERY_ACK" | "READ"

Novo status da mensagem.

instanceId string

ID da instância.

{
  "event": "messages.update",
  "instance": "Atendimento01",
  "date_time": "2026-03-30T14:33:00Z",
  "data": {
    "messageId": "3EB04A2D1F75...",
    "keyId": "3EB04A2D1F75...",
    "remoteJid": "5511999999999@s.whatsapp.net",
    "fromMe": true,
    "participant": "",
    "status": "DELIVERY_ACK",
    "instanceId": "Atendimento01"
  }
}
EVENT

connection.update

Disparado quando o estado da conexão muda. Ocorre ao conectar com sucesso (escaneou QR Code), ao desconectar (logout, perda de sessão) ou em falhas de conexão.

Campos do payload (data)

instance string

ID da instância.

wuid string

WhatsApp UID (número conectado). Presente apenas quando state = "open".

profileName string

Nome do perfil do WhatsApp. Presente apenas quando state = "open".

profilePictureUrl string?

URL da foto de perfil (quando disponível).

state "open" | "close"

Estado atual da conexão.

statusReason number

Código do motivo (200 = sucesso, outros = erro).

{
  "event": "connection.update",
  "instance": "Atendimento01",
  "date_time": "2026-03-30T10:00:00Z",
  "data": {
    "instance": "Atendimento01",
    "wuid": "5511999998888@s.whatsapp.net",
    "profileName": "Meu Negócio",
    "profilePictureUrl": "https://pps.whatsapp.net/v/t61...",
    "state": "open",
    "statusReason": 200
  }
}
EVENT

contacts.upsert

Disparado quando um contato ou grupo é criado ou atualizado. Inclui mudanças de nome de exibição (push name), nome comercial, foto de perfil, informações de grupo e sincronização de histórico. O payload é um array de contatos.

Campos do payload (data[])

remoteJid string

JID do contato ou grupo.

remoteLid string

LID do contato (identificador alternativo).

pushName string

Nome de exibição do contato.

profilePicUrl string

URL da foto de perfil.

instanceId string

ID da instância.

Gatilhos: Mudança de push name, nome comercial (WhatsApp Business), foto de perfil, criação/atualização de grupo, sincronização de histórico de contatos.

{
  "event": "contacts.upsert",
  "instance": "Atendimento01",
  "date_time": "2026-03-30T15:00:00Z",
  "data": [
    {
      "remoteJid": "5511999999999@s.whatsapp.net",
      "remoteLid": "",
      "pushName": "Maria Silva",
      "profilePicUrl": "https://pps.whatsapp.net/v/t61...",
      "instanceId": "Atendimento01"
    }
  ]
}
EVENT

messages.delete

Disparado quando uma mensagem é apagada para todos (revoke). Ocorre quando o remetente apaga uma mensagem que já foi entregue — o WhatsApp envia um protocolo de revogação que dispara este evento.

Campos do payload (data)

id string

ID da mensagem apagada.

remoteJid string

JID do chat.

fromMe boolean

Se a mensagem apagada era sua.

participant string

JID do participante (em grupos).

status "DELETED"

Sempre "DELETED".

instanceId string

ID da instância.

{
  "event": "messages.delete",
  "instance": "Atendimento01",
  "date_time": "2026-03-30T16:00:00Z",
  "data": {
    "id": "3EB04A2D1F75...",
    "remoteJid": "5511999999999@s.whatsapp.net",
    "fromMe": false,
    "participant": "",
    "status": "DELETED",
    "instanceId": "Atendimento01"
  }
}

Grupos

Crie, gerencie e administre grupos do WhatsApp. Todos os endpoints abaixo aceitam o nome curto da instância (ex: Marketing01) ou o ID completo no path.

POST

Criar Grupo

/group/create/:instance

Cria um novo grupo do WhatsApp. Você se torna admin automaticamente. Participantes precisam estar no formato 5511999998888 (com DDI).

Parâmetros

subjectstringObrigatório

Nome do grupo (1 a 25 caracteres).

descriptionstringOpcional

Descrição/tópico inicial do grupo.

participantsstring[]Opcional

Lista de números a adicionar (com DDI, sem caracteres especiais).

promoteParticipantsbooleanOpcional

Promover todos os participantes adicionados a admin.

curl -X POST https://api.whatsmiau.dev/v2/group/create/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "Time de Vendas",
  "description": "Canal interno do time de vendas",
  "participants": ["5511999998888", "5511988887777"],
  "promoteParticipants": false
}'
POST

Atualizar Nome do Grupo

/group/updateGroupSubject/:instance

Altera o nome (subject) de um grupo existente. Requer permissão de admin.

Parâmetros

groupJidstringObrigatório

JID do grupo (ex: 120363xxxxxxx@g.us).

subjectstringObrigatório

Novo nome do grupo (1 a 25 caracteres).

curl -X POST https://api.whatsmiau.dev/v2/group/updateGroupSubject/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "subject": "Time de Vendas 2026"
}'
POST

Atualizar Foto do Grupo

/group/updateGroupPicture/:instance

Define a foto do grupo. Aceita URL pública de JPEG ou imagem em base64. Requer permissão de admin.

Parâmetros

groupJidstringObrigatório

JID do grupo (ex: 120363xxxxxxx@g.us).

imagestringObrigatório

URL pública de uma imagem JPEG ou imagem em base64 (data URI ou puro base64).

curl -X POST https://api.whatsmiau.dev/v2/group/updateGroupPicture/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "image": "https://example.com/logo.jpg"
}'
POST

Atualizar Descrição do Grupo

/group/updateGroupDescription/:instance

Altera o tópico/descrição do grupo. Envie string vazia para remover a descrição.

Parâmetros

groupJidstringObrigatório

JID do grupo.

descriptionstringOpcional

Nova descrição. Use "" para limpar.

curl -X POST https://api.whatsmiau.dev/v2/group/updateGroupDescription/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "description": "Canal oficial de comunicação"
}'
GET

Buscar Informações do Grupo

/group/findGroupInfos/:instance?groupJid={jid}

Retorna metadados completos: nome, descrição, owner, lista de admins, configurações e contagem de membros.

Parâmetros

groupJidstring (query)Obrigatório

JID do grupo.

curl -X GET "https://api.whatsmiau.dev/v2/group/findGroupInfos/Marketing01?groupJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"
GET

Listar Todos os Grupos

/group/fetchAllGroups/:instance?getParticipants={bool}

Retorna todos os grupos em que a instância participa. Use getParticipants=true para incluir a lista completa de membros (mais lento).

Parâmetros

getParticipantsstring (query)Opcional

"true" para incluir participantes de cada grupo na resposta.

curl -X GET "https://api.whatsmiau.dev/v2/group/fetchAllGroups/Marketing01?getParticipants=false" \
  -H "apikey: SUA_CHAVE"
GET

Listar Participantes do Grupo

/group/participants/:instance?groupJid={jid}

Retorna apenas a lista de participantes de um grupo específico, com flags de admin e superAdmin.

Parâmetros

groupJidstring (query)Obrigatório

JID do grupo.

curl -X GET "https://api.whatsmiau.dev/v2/group/participants/Marketing01?groupJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"
GET

Obter Link de Convite

/group/inviteCode/:instance?groupJid={jid}

Gera (ou recupera) o código de convite do grupo. O link completo é https://chat.whatsapp.com/{inviteCode}.

Parâmetros

groupJidstring (query)Obrigatório

JID do grupo.

curl -X GET "https://api.whatsmiau.dev/v2/group/inviteCode/Marketing01?groupJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"
GET

Informações de um Convite

/group/inviteInfo/:instance?inviteCode={code}

Inspeciona um código de convite sem entrar no grupo. Útil para mostrar prévia (nome, descrição, número de membros) antes da entrada.

Parâmetros

inviteCodestring (query)Obrigatório

Código de convite (a parte após /chat.whatsapp.com/).

curl -X GET "https://api.whatsmiau.dev/v2/group/inviteInfo/Marketing01?inviteCode=D3uG6n9xT2pQ" \
  -H "apikey: SUA_CHAVE"
GET

Aceitar Convite

/group/acceptInviteCode/:instance?inviteCode={code}

Faz a instância entrar em um grupo usando um código de convite.

Parâmetros

inviteCodestring (query)Obrigatório

Código de convite do grupo.

curl -X GET "https://api.whatsmiau.dev/v2/group/acceptInviteCode/Marketing01?inviteCode=D3uG6n9xT2pQ" \
  -H "apikey: SUA_CHAVE"
POST

Enviar Convite via DM

/group/sendInvite/:instance

Envia o link de convite do grupo para uma lista de números em mensagens privadas. Substitui o fluxo manual de 'adicionar e tirar' para grupos com aprovação.

Parâmetros

groupJidstringObrigatório

JID do grupo.

descriptionstringOpcional

Texto opcional enviado junto com o link.

numbersstring[]Obrigatório

Lista de números (com DDI) que receberão o convite.

curl -X POST https://api.whatsmiau.dev/v2/group/sendInvite/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "description": "Você foi convidado!",
  "numbers": ["5511999998888"]
}'
POST

Revogar Link de Convite

/group/revokeInviteCode/:instance

Invalida o código de convite atual e gera um novo. Use quando o link vazar publicamente. Requer permissão de admin.

Parâmetros

groupJidstringObrigatório

JID do grupo.

curl -X POST https://api.whatsmiau.dev/v2/group/revokeInviteCode/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us"
}'
POST

Gerenciar Participantes

/group/updateParticipant/:instance

Adiciona, remove, promove ou rebaixa membros do grupo. Operações destrutivas (remove/demote) exigem que o JID esteja correto — IDs inválidos retornam erro 400.

Parâmetros

groupJidstringObrigatório

JID do grupo.

actionstringObrigatório

Uma de: "add" (adicionar), "remove" (remover), "promote" (tornar admin), "demote" (rebaixar admin).

participantsstring[]Obrigatório

Lista de JIDs ou números (com DDI) afetados pela operação.

curl -X POST https://api.whatsmiau.dev/v2/group/updateParticipant/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "action": "add",
  "participants": ["5511999998888"]
}'
POST

Configurações do Grupo

/group/updateSetting/:instance

Altera quem pode enviar mensagens e quem pode editar metadados (nome/descrição/foto). Use "announcement" para que apenas admins escrevam e "locked" para travar edição de metadados.

Parâmetros

groupJidstringObrigatório

JID do grupo.

actionstringObrigatório

"announcement" (só admin envia), "not_announcement" (todos enviam), "locked" (só admin edita info), "unlocked" (todos editam).

curl -X POST https://api.whatsmiau.dev/v2/group/updateSetting/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "action": "announcement"
}'
POST

Mensagens Efêmeras

/group/toggleEphemeral/:instance

Define o tempo após o qual mensagens do grupo são apagadas automaticamente. Valores válidos: 0 (desativado), 86400 (24h), 604800 (7 dias), 7776000 (90 dias).

Parâmetros

groupJidstringObrigatório

JID do grupo.

expirationnumberOpcional

Duração em segundos. Apenas um destes valores é aceito: 0 (desativado), 86400 (24h), 604800 (7 dias), 7776000 (90 dias). Omitir equivale a 0.

curl -X POST https://api.whatsmiau.dev/v2/group/toggleEphemeral/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "groupJid": "120363xxxxxxx@g.us",
  "expiration": 604800
}'
DELETE

Sair do Grupo

/group/leaveGroup/:instance?groupJid={jid}

Remove a instância do grupo. Operação irreversível — para voltar, será necessário um novo convite.

Parâmetros

groupJidstring (query)Obrigatório

JID do grupo do qual sair.

curl -X DELETE "https://api.whatsmiau.dev/v2/group/leaveGroup/Marketing01?groupJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"

Comunidades

Comunidades agrupam vários grupos sob um mesmo guarda-chuva. Cada comunidade tem um grupo de anúncios (criado automaticamente) e sub-grupos vinculados. Para gerenciar membros de um sub-grupo, use os endpoints de Grupos.

POST

Criar Comunidade

/community/create/:instance

Cria uma nova comunidade. Um grupo de anúncios é criado automaticamente como sub-grupo padrão.

Parâmetros

subjectstringObrigatório

Nome da comunidade (1 a 25 caracteres).

descriptionstringOpcional

Descrição da comunidade.

curl -X POST https://api.whatsmiau.dev/v2/community/create/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "Verzap",
  "description": "Comunidade oficial Verzap"
}'
POST

Criar Sub-grupo na Comunidade

/community/createSubGroup/:instance

Cria um novo grupo já vinculado a uma comunidade existente. É equivalente a criar um grupo + linkGroup em uma única chamada.

Parâmetros

subjectstringObrigatório

Nome do sub-grupo (1 a 25 caracteres).

parentJidstringObrigatório

JID da comunidade pai.

participantsstring[]Opcional

Números a adicionar ao novo sub-grupo.

curl -X POST https://api.whatsmiau.dev/v2/community/createSubGroup/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "Suporte",
  "parentJid": "120363xxxxxxx@g.us",
  "participants": ["5511999998888"]
}'
GET

Listar Sub-grupos

/community/subGroups/:instance?communityJid={jid}

Retorna todos os sub-grupos vinculados a uma comunidade.

Parâmetros

communityJidstring (query)Obrigatório

JID da comunidade pai.

curl -X GET "https://api.whatsmiau.dev/v2/community/subGroups/Marketing01?communityJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"
GET

Membros dos Grupos Vinculados

/community/linkedGroupsParticipants/:instance?communityJid={jid}

Retorna a união (deduplicada) de todos os membros dos sub-grupos da comunidade. Útil para campanhas de comunicação.

Parâmetros

communityJidstring (query)Obrigatório

JID da comunidade.

curl -X GET "https://api.whatsmiau.dev/v2/community/linkedGroupsParticipants/Marketing01?communityJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"
POST

Aprovação de Entrada

/community/setJoinApprovalMode/:instance

Quando ativado, novos membros que entram por link de convite precisam ser aprovados por um admin antes de aparecerem nos sub-grupos.

Parâmetros

communityJidstringObrigatório

JID da comunidade.

modebooleanOpcional

true para exigir aprovação de novos membros; false (padrão) para entrada livre via link de convite.

curl -X POST https://api.whatsmiau.dev/v2/community/setJoinApprovalMode/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "communityJid": "120363xxxxxxx@g.us",
  "mode": true
}'
POST

Modo de Adição de Membros

/community/setMemberAddMode/:instance

Define quem pode adicionar novos membros: apenas admins ("admin_add") ou qualquer membro ("all_member_add").

Parâmetros

communityJidstringObrigatório

JID da comunidade.

modestringObrigatório

"admin_add" ou "all_member_add".

curl -X POST https://api.whatsmiau.dev/v2/community/setMemberAddMode/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "communityJid": "120363xxxxxxx@g.us",
  "mode": "admin_add"
}'
GET

Solicitações Pendentes

/community/requestParticipants/:instance?communityJid={jid}

Lista os usuários que solicitaram entrar na comunidade e ainda aguardam aprovação (apenas se setJoinApprovalMode estiver ativo).

Parâmetros

communityJidstring (query)Obrigatório

JID da comunidade.

curl -X GET "https://api.whatsmiau.dev/v2/community/requestParticipants/Marketing01?communityJid=120363xxxxxxx@g.us" \
  -H "apikey: SUA_CHAVE"
POST

Aprovar ou Rejeitar Solicitações

/community/requestParticipants/update/:instance

Processa solicitações pendentes em lote. Use action='approve' para deixar entrar ou 'reject' para negar.

Parâmetros

communityJidstringObrigatório

JID da comunidade.

actionstringObrigatório

"approve" ou "reject".

participantsstring[]Opcional

Lista de JIDs a aprovar/rejeitar. Use a resposta de requestParticipants para obter os JIDs pendentes.

curl -X POST https://api.whatsmiau.dev/v2/community/requestParticipants/update/Marketing01 \
  -H "apikey: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "communityJid": "120363xxxxxxx@g.us",
  "action": "approve",
  "participants": ["5511999998888@s.whatsapp.net"]
}'

MCP — Model Context Protocol

novo

Conecte agentes de IA — como Claude Desktop, Cursor, Continue ou Cline — diretamente ao seu WhatsApp. Em vez de codar wrappers em volta da API REST, o agente descobre automaticamente as ferramentas disponíveis e as executa por você.

Padrão aberto da Anthropic. O Model Context Protocol é o padrão da indústria para LLMs acessarem ferramentas externas. Suportado nativamente por Claude Desktop, Cursor, Continue, Cline e qualquer cliente compatível.
Endpoint:https://mcp.whatsmiau.dev/mcp

Casos de uso

  • Atendimento automatizado: peça ao agente para responder leads no WhatsApp.
  • Notificações inteligentes: envie alertas formatados e contextuais a partir de prompts.
  • Operações sem código: criar, conectar e gerenciar instâncias falando em linguagem natural.

Como conectar

Transporte HTTP streaming + autenticação OAuth 2.0 com descoberta automática (.well-known/oauth-authorization-server) e Dynamic Client Registration. Você não precisa criar credenciais manualmente — o cliente MCP cuida de tudo. Basta colar a URL na configuração e fazer login com sua conta Whatsmiau no navegador.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "whatsmiau": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.whatsmiau.dev/mcp"]
    }
  }
}

Cursor / Continue / Cline

~/.cursor/mcp.json
{
  "mcpServers": {
    "whatsmiau": {
      "url": "https://mcp.whatsmiau.dev/mcp"
    }
  }
}
Login automático. Na primeira execução, o cliente abre seu navegador para autenticação OAuth com sua conta Whatsmiau. O token é armazenado localmente pelo cliente MCP e renovado automaticamente — nada de copiar API keys.

Verificar conexão

Após reiniciar o cliente, peça em linguagem natural: "liste minhas instâncias do WhatsApp". O agente deve invocar a tool list_instances e retornar suas instâncias.

Tools disponíveis

23 ferramentas expostas pelo servidor MCP, agrupadas em três áreas. O cliente MCP descobre os schemas (parâmetros, tipos) automaticamente via tools/list. Cada tool mapeia 1:1 para um endpoint REST — clique em qualquer card abaixo para ver os parâmetros completos e um exemplo cURL do endpoint correspondente.

Instâncias

(7 tools)

Mensagens

(12 tools)

Chat & Webhook

(4 tools)