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.
https://api.whatsmiau.dev/v2instanceName 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.
Verificar Credenciais
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.
Criar Instância
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
Identificador único da instância dentro da sua conta. Será usado como :name em todos os outros endpoints.
Retorna o QR Code na resposta de criação (se suportado pelo core).
Token personalizado.
Rejeita automaticamente chamadas recebidas.
Mensagem enviada automaticamente ao rejeitar uma chamada.
Ignora eventos de grupos no webhook.
Mantém a conta sempre online no WhatsApp.
Marca automaticamente as mensagens como lidas.
Marca automaticamente status como visto.
Sincroniza o histórico completo do WhatsApp ao conectar.
Ativa o webhook já na criação.
URL HTTPS pública que receberá os eventos. Bloqueado: localhost, IPs privados e redes internas (proteção SSRF).
Lista de eventos para filtrar. Se omitida, todos os eventos são enviados.
Se true, mídias nos eventos vêm codificadas em base64.
Proxy: host público (Enterprise).
Proxy: porta (Enterprise).
Proxy: "http", "https" ou "socks5" (Enterprise).
Proxy: usuário (Enterprise).
Proxy: senha (Enterprise).
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
}'Listar Instâncias
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"Conectar Instância
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
Nome da instância (o mesmo "instanceName" usado ao criar).
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"QR Code como PNG
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
Nome da instância.
curl -X GET https://api.whatsmiau.dev/v2/instance/connect/Marketing01/image \
-H "apikey: SUA_CHAVE" \
-o qr.pngEstado da Conexão
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
Nome da instância.
curl -X GET https://api.whatsmiau.dev/v2/instance/connectionState/Marketing01 \
-H "apikey: SUA_CHAVE"Atualizar Instância
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
Nome da instância (path param).
Ativa/desativa o webhook.
URL HTTPS que receberá os eventos. Bloqueado: localhost, IPs privados e redes internas.
Filtro de eventos (ex: messages.upsert, connection.update).
Se true, mídias nos eventos vêm codificadas em base64.
Host público do proxy (Enterprise).
Porta do proxy (Enterprise).
"http", "https" ou "socks5" (Enterprise).
Usuário do proxy (Enterprise).
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"]
}
}'Desconectar (Logout)
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
Nome da instância.
curl -X DELETE https://api.whatsmiau.dev/v2/instance/logout/Marketing01 \
-H "apikey: SUA_CHAVE"Deletar Instância
Remove permanentemente a instância, encerra a sessão e libera slot no seu plano.
Parâmetros
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.
Enviar Texto
Envia uma mensagem de texto simples. Suporta emojis.
Parâmetros
Número do destinatário com DDI e DDD (ex: 5511999998888).
O texto a ser enviado.
Atraso em milissegundos antes de enviar (máx: 300000).
Exibir preview de links.
Mencionar todos em grupos.
Lista de JIDs a mencionar.
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
}'Enviar Mídia
Envia imagens, vídeos ou documentos via URL pública.
Parâmetros
Número do destinatário.
"image", "video" ou "document".
URL pública do arquivo.
Legenda da mídia.
Nome do arquivo (para documentos).
MIME type do arquivo.
Atraso em milissegundos (máx: 300000).
Mensagem a ser respondida (key.id obrigatório).
Mencionar todos em grupos.
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!"
}'Enviar Áudio (PTT)
Envia um arquivo de áudio como se fosse gravado na hora (Push-To-Talk).
Parâmetros
Número do destinatário.
URL pública do arquivo MP3/OGG.
Atraso em milissegundos (máx: 300000).
Re-encodar o áudio antes de enviar.
Mensagem a ser respondida (key.id obrigatório).
Mencionar todos em grupos.
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"
}'Enviar Lista
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
Número do destinatário (ex: 5511999998888).
Título da mensagem.
Descrição/corpo da mensagem.
Texto do botão que abre a lista.
Texto do rodapé.
Seções da lista, cada uma com title e rows[].
Título da seção.
Título da opção.
Descrição da opção.
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" }
]
}
]
}'Enviar Figurinha
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
Número do destinatário (ex: 5511999998888).
URL pública do arquivo WebP.
Atraso em milissegundos antes de enviar (máx: 300000).
Se true, não tenta converter o arquivo antes de enviar.
Mensagem a ser respondida (key.id obrigatório).
Mencionar todos em grupos.
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"
}'Enviar Localização
Envia um pin de localização geográfica. Funciona com coordenadas em graus decimais.
Parâmetros
Número do destinatário (ex: 5511999998888).
Latitude em graus decimais (ex: -23.55052).
Longitude em graus decimais (ex: -46.633308).
Nome/rótulo do local (ex: "Av. Paulista, 1000").
Endereço textual complementar.
Atraso em milissegundos (máx: 300000).
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"
}'Enviar Contato
Envia um ou mais cartões de contato (vCard). Para múltiplos contatos, envie um único array — o WhatsApp agrupa automaticamente.
Parâmetros
Número do destinatário (ex: 5511999998888).
Lista de contatos a enviar.
Nome completo do contato.
Número de telefone do contato.
WhatsApp UID do contato (se souber).
Organização/empresa.
E-mail do contato.
Website do contato.
Atraso em milissegundos (máx: 300000).
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"
}
]
}'Enviar Enquete
Cria uma enquete com opções para o destinatário votar. O voto chega via webhook como evento pollUpdateMessage.
Parâmetros
Número do destinatário (ex: 5511999998888).
Pergunta da enquete.
Opções de resposta (mínimo 2, máximo 12).
Quantas opções o usuário pode escolher. 0 = apenas 1 voto (padrão). Use 1..N para múltipla escolha.
Atraso em milissegundos (máx: 300000).
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
}'Enviar Vídeo Redondo (PTV)
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
Número do destinatário (ex: 5511999998888).
URL pública do arquivo MP4.
Atraso em milissegundos (máx: 300000).
Mensagem a ser respondida (key.id obrigatório).
Mencionar todos em grupos.
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"
}'Enviar Status
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
"text", "image", "audio" ou "video".
Texto do status OU URL pública do arquivo de mídia.
Legenda (apenas para imagem/vídeo).
Cor de fundo em HEX para status de texto (ex: "#FF5733").
Índice da fonte para texto (0-5).
Se true, envia para todos os contatos.
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.
Enviar Reação
Reage a uma mensagem específica com um emoji.
Parâmetros
Emoji da reação (ex: 👍, ❤️). String de 1 caractere.
Chave da mensagem alvo.
JID do chat (ex: 5511...@s.whatsapp.net).
ID da mensagem alvo.
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
}
}'Enviar Presença
Simula o status de presença (digitando, gravando áudio, online) em um chat.
Parâmetros
Número do chat alvo (ex: 5511999998888).
"composing" (digitando) ou "available" (online).
"text" ou "audio". Define o tipo de presença.
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
}'Marcar como Lido
Marca mensagens específicas como lidas.
Parâmetros
Array de mensagens a marcar como lidas.
JID do chat (ex: 5511...@s.whatsapp.net).
ID da mensagem.
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"
}
]
}'Verificar Número
Verifica se um número está registrado no WhatsApp.
Parâmetros
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"]
}'Deletar Mensagem
Revoga (apaga para todos) uma mensagem enviada ou recebida em um chat individual ou grupo.
Parâmetros
ID da mensagem a ser deletada.
JID do chat (ex: 5511999998888@s.whatsapp.net ou grupo@g.us).
Se a mensagem foi enviada por você (true) ou recebida (false).
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.
Configurar Webhook
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
Ativa ou desativa o webhook.
URL que receberá os eventos via POST.
Lista de eventos para filtrar (ex: messages.upsert, connection.update).
Headers HTTP customizados enviados junto com cada evento.
Se true, envia um POST por evento. Se false, agrupa.
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"
}
}
}'Consultar Webhook
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
}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)
Identificador da mensagem.
JID do chat (ex: 5511999999999@s.whatsapp.net).
Se a mensagem foi enviada por você.
ID único da mensagem.
JID do remetente em grupos.
Nome de exibição do remetente.
"sent" ou "received".
Conteúdo da mensagem. Apenas um dos campos abaixo estará presente por vez:
Mensagem de texto simples.
Imagem com url, mimetype, caption, width, height.
Vídeo com url, mimetype, caption, seconds.
Áudio com url, mimetype, seconds, ptt (voz).
Documento com url, mimetype, fileName, title.
Reação com key (mensagem alvo) e text (emoji).
Contato com displayName e vCard.
Resposta de lista com title e singleSelectReply.selectedRowId.
URL pública da mídia (imagem, áudio, vídeo, documento) após upload no storage.
Tipo da mensagem (ex: "conversation", "imageMessage", "audioMessage").
Unix timestamp em segundos.
ID da instância que recebeu a mensagem.
Contexto da mensagem (presente quando é resposta, menção ou mensagem efêmera).
ID da mensagem original (quando é resposta).
JID do autor da mensagem original.
Conteúdo da mensagem citada (mesma estrutura de message).
Lista de JIDs mencionados na mensagem.
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"
}
}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)
ID interno da mensagem.
ID da chave da mensagem.
JID do chat.
Se a mensagem foi enviada por você.
JID do participante (em grupos).
Novo status da mensagem.
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"
}
}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)
ID da instância.
WhatsApp UID (número conectado). Presente apenas quando state = "open".
Nome do perfil do WhatsApp. Presente apenas quando state = "open".
URL da foto de perfil (quando disponível).
Estado atual da conexão.
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
}
}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[])
JID do contato ou grupo.
LID do contato (identificador alternativo).
Nome de exibição do contato.
URL da foto de perfil.
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"
}
]
}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 da mensagem apagada.
JID do chat.
Se a mensagem apagada era sua.
JID do participante (em grupos).
Sempre "DELETED".
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.
Criar Grupo
Cria um novo grupo do WhatsApp. Você se torna admin automaticamente. Participantes precisam estar no formato 5511999998888 (com DDI).
Parâmetros
Nome do grupo (1 a 25 caracteres).
Descrição/tópico inicial do grupo.
Lista de números a adicionar (com DDI, sem caracteres especiais).
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
}'Atualizar Nome do Grupo
Altera o nome (subject) de um grupo existente. Requer permissão de admin.
Parâmetros
JID do grupo (ex: 120363xxxxxxx@g.us).
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"
}'Atualizar Foto do Grupo
Define a foto do grupo. Aceita URL pública de JPEG ou imagem em base64. Requer permissão de admin.
Parâmetros
JID do grupo (ex: 120363xxxxxxx@g.us).
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"
}'Atualizar Descrição do Grupo
Altera o tópico/descrição do grupo. Envie string vazia para remover a descrição.
Parâmetros
JID do grupo.
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"
}'Buscar Informações do Grupo
Retorna metadados completos: nome, descrição, owner, lista de admins, configurações e contagem de membros.
Parâmetros
JID do grupo.
curl -X GET "https://api.whatsmiau.dev/v2/group/findGroupInfos/Marketing01?groupJid=120363xxxxxxx@g.us" \
-H "apikey: SUA_CHAVE"Listar Todos os Grupos
Retorna todos os grupos em que a instância participa. Use getParticipants=true para incluir a lista completa de membros (mais lento).
Parâmetros
"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"Listar Participantes do Grupo
Retorna apenas a lista de participantes de um grupo específico, com flags de admin e superAdmin.
Parâmetros
JID do grupo.
curl -X GET "https://api.whatsmiau.dev/v2/group/participants/Marketing01?groupJid=120363xxxxxxx@g.us" \
-H "apikey: SUA_CHAVE"Obter Link de Convite
Gera (ou recupera) o código de convite do grupo. O link completo é https://chat.whatsapp.com/{inviteCode}.
Parâmetros
JID do grupo.
curl -X GET "https://api.whatsmiau.dev/v2/group/inviteCode/Marketing01?groupJid=120363xxxxxxx@g.us" \
-H "apikey: SUA_CHAVE"Informações de um Convite
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
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"Aceitar Convite
Faz a instância entrar em um grupo usando um código de convite.
Parâmetros
Código de convite do grupo.
curl -X GET "https://api.whatsmiau.dev/v2/group/acceptInviteCode/Marketing01?inviteCode=D3uG6n9xT2pQ" \
-H "apikey: SUA_CHAVE"Enviar Convite via DM
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
JID do grupo.
Texto opcional enviado junto com o link.
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"]
}'Revogar Link de Convite
Invalida o código de convite atual e gera um novo. Use quando o link vazar publicamente. Requer permissão de admin.
Parâmetros
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"
}'Gerenciar Participantes
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
JID do grupo.
Uma de: "add" (adicionar), "remove" (remover), "promote" (tornar admin), "demote" (rebaixar admin).
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"]
}'Configurações do Grupo
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
JID do grupo.
"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"
}'Mensagens Efêmeras
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
JID do grupo.
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
}'Sair do Grupo
Remove a instância do grupo. Operação irreversível — para voltar, será necessário um novo convite.
Parâmetros
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.
Criar Comunidade
Cria uma nova comunidade. Um grupo de anúncios é criado automaticamente como sub-grupo padrão.
Parâmetros
Nome da comunidade (1 a 25 caracteres).
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"
}'Criar Sub-grupo na Comunidade
Cria um novo grupo já vinculado a uma comunidade existente. É equivalente a criar um grupo + linkGroup em uma única chamada.
Parâmetros
Nome do sub-grupo (1 a 25 caracteres).
JID da comunidade pai.
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"]
}'Vincular Grupo Existente
Anexa um grupo já existente a uma comunidade como sub-grupo. Você precisa ser admin de ambos.
Parâmetros
JID da comunidade.
JID do grupo a vincular.
curl -X POST https://api.whatsmiau.dev/v2/community/linkGroup/Marketing01 \
-H "apikey: SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"parentJid": "120363aaaaaaa@g.us",
"childJid": "120363bbbbbbb@g.us"
}'Desvincular Grupo
Remove um sub-grupo da comunidade. O grupo continua existindo, mas deixa de fazer parte da comunidade.
Parâmetros
JID da comunidade.
JID do sub-grupo a desvincular.
curl -X POST https://api.whatsmiau.dev/v2/community/unlinkGroup/Marketing01 \
-H "apikey: SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"parentJid": "120363aaaaaaa@g.us",
"childJid": "120363bbbbbbb@g.us"
}'Listar Sub-grupos
Retorna todos os sub-grupos vinculados a uma comunidade.
Parâmetros
JID da comunidade pai.
curl -X GET "https://api.whatsmiau.dev/v2/community/subGroups/Marketing01?communityJid=120363xxxxxxx@g.us" \
-H "apikey: SUA_CHAVE"Membros dos Grupos Vinculados
Retorna a união (deduplicada) de todos os membros dos sub-grupos da comunidade. Útil para campanhas de comunicação.
Parâmetros
JID da comunidade.
curl -X GET "https://api.whatsmiau.dev/v2/community/linkedGroupsParticipants/Marketing01?communityJid=120363xxxxxxx@g.us" \
-H "apikey: SUA_CHAVE"Aprovação de Entrada
Quando ativado, novos membros que entram por link de convite precisam ser aprovados por um admin antes de aparecerem nos sub-grupos.
Parâmetros
JID da comunidade.
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
}'Modo de Adição de Membros
Define quem pode adicionar novos membros: apenas admins ("admin_add") ou qualquer membro ("all_member_add").
Parâmetros
JID da comunidade.
"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"
}'Solicitações Pendentes
Lista os usuários que solicitaram entrar na comunidade e ainda aguardam aprovação (apenas se setJoinApprovalMode estiver ativo).
Parâmetros
JID da comunidade.
curl -X GET "https://api.whatsmiau.dev/v2/community/requestParticipants/Marketing01?communityJid=120363xxxxxxx@g.us" \
-H "apikey: SUA_CHAVE"Aprovar ou Rejeitar Solicitações
Processa solicitações pendentes em lote. Use action='approve' para deixar entrar ou 'reject' para negar.
Parâmetros
JID da comunidade.
"approve" ou "reject".
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
novoConecte 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ê.
https://mcp.whatsmiau.dev/mcpCasos 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"
}
}
}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.
Whatsmiau