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.
Identificador único da instância dentro da sua conta. Será usado como :name em todos os outros endpoints, então não pode ser alterado depois. Aceita letras sem acento, números, ponto, hífen e underline, até 40 caracteres, com pelo menos uma letra ou número. Nomes fora dessa regra são recusados com status 400.
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.
Sincroniza o histórico completo do WhatsApp ao conectar.
Se false, a mídia recebida não é armazenada (o webhook fica sem mediaUrl). Default: true (armazena).
Ativa o webhook na criação. O webhook só é configurado se uma URL válida também for fornecida.
URL HTTPS pública que receberá os eventos. Bloqueado: localhost, IPs privados e redes internas (proteção SSRF).
Headers HTTP enviados junto com cada evento (ex: Authorization). Aceita até 20, nomes únicos ignorando maiúsculas, e exige URL https.
Lista de eventos para filtrar. Se omitida, nenhum evento é entregue
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"
}'curl -X POST https://api.whatsmiau.dev/v2/instance/create \
-H "apikey: SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"instanceName": "Marketing01",
"rejectCall": true,
"msgCall": "Não atendemos ligações neste número.",
"alwaysOnline": true,
"readMessages": true,
"webhook": {
"enabled": true,
"url": "https://meusite.com/webhook",
"events": ["messages.upsert", "connection.update"]
}
}'const response = await fetch(
"https://api.whatsmiau.dev/v2/instance/create",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"apikey": "SUA_CHAVE_AQUI"
},
body: JSON.stringify({
instanceName: "Marketing01",
rejectCall: true,
alwaysOnline: true,
webhook: {
enabled: true,
url: "https://meusite.com/webhook",
events: ["messages.upsert", "connection.update"]
}
})
}
);
const data = await response.json();
console.log(data.id); // "Marketing01"
console.log(data.state); // "connecting"Listar Instâncias
Retorna todas as instâncias da sua conta com o estado atual. Uma suspensão nunca é causada apenas por exceder o limite do plano. Itens suspensos vêm com state: 'closed', suspended: true e suspension_reason.
curl -X GET https://api.whatsmiau.dev/v2/instance/fetchInstances \
-H "apikey: SUA_CHAVE"{
"id": "Marketing01",
"instanceName": "Marketing01",
"state": "closed",
"suspended": true,
"suspension_reason": "billing_past_due"
}Conectar Instância
Inicia a conexão e retorna o QR Code (base64) + pairing code quando disponível. Se o acesso estiver suspenso, retorna HTTP 423 com suspension_reason; uma decisão administrativa só pode ser revertida no painel Admin.
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"{
"id": "Marketing01",
"connected": false,
"base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"pairingCode": "ABCD-1234"
}{
"error": "instance suspended",
"suspension_reason": "administrative"
}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.
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', 'closed', 'connecting' e 'qr-code'. Quando suspensa, retorna 'closed', suspended: true e suspension_reason: administrative, billing_past_due, billing_ended ou billing.
Nome da instância.
curl -X GET https://api.whatsmiau.dev/v2/instance/connectionState/Marketing01 \
-H "apikey: SUA_CHAVE"{
"id": "Marketing01",
"state": "open",
"instance": {
"instanceName": "Marketing01",
"state": "open"
}
}{
"id": "Marketing01",
"state": "closed",
"suspended": true,
"suspension_reason": "billing_ended",
"instance": {
"instanceName": "Marketing01",
"state": "closed"
}
}Atualizar Instância
Atualiza webhook, comportamento e/ou proxy de uma instância existente. Todos os campos são opcionais: envie apenas os que deseja alterar, os demais permanecem inalterados. 'syncFullHistory' não é alterável por este endpoint. Campos de proxy são restritos ao plano Enterprise.
Nome da instância (path param).
Rejeita automaticamente chamadas recebidas.
Mensagem enviada automaticamente ao rejeitar uma chamada. Envie "" para remover a mensagem.
Ignora eventos de grupos no webhook.
Mantém a conta sempre online no WhatsApp.
Marca automaticamente as mensagens como lidas.
Se false, a mídia recebida não é armazenada (o webhook fica sem mediaUrl). Default: true (armazena).
Ativa/desativa o webhook.
URL HTTPS que receberá os eventos. Bloqueado: localhost, IPs privados e redes internas.
Headers HTTP enviados junto com cada evento (ex: Authorization). Aceita até 20, nomes únicos ignorando maiúsculas, e exige URL https.
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 '{
"rejectCall": true,
"msgCall": "Não atendemos ligações neste número.",
"alwaysOnline": true,
"readMessages": true
}'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.
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 no Core e, somente após essa confirmação, no Manager. Aceita o nome público, o ID completo do Core ou o ID interno retornado pelas APIs legadas. Pode responder 404 (não encontrada), 409 (exclusão já em andamento) ou 502 (Core não confirmou; o registro foi preservado para nova tentativa).
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"
Whatsmiau