›_ documentação

API do msg.api

Tudo o que dá para fazer com o WhatsApp conectado: 104 endpoints REST, webhooks de mensagens recebidas, servidor MCP para agentes de IA e nó para o n8n.

Autenticação

A base da API é https://msg.api.br. Cada número conectado tem a própria chave, que vai no header apikey (ou como Authorization: Bearer). A chave aparece no painel, na aba Docs do número. O corpo das requisições é JSON.

curl -X POST 'https://msg.api.br/message/send-text' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "text": "Olá! Tudo bem?"
}'

Especificação OpenAPI 3.1: https://painel.msg.api.br/openapi.json

Integrações sem código

  • ChatGPT, Claude e outros apps com MCP: servidor MCP em https://msg.api.br/mcp (Streamable HTTP). No Claude e nos apps com OAuth, basta o endereço: você entra na sua conta e escolhe o número. Nos demais, a chave vai no header apikey.
  • n8n: instale o nó n8n-nodes-msgapi em Settings › Community Nodes › Install. Ele envia mensagens e dispara fluxos quando chega mensagem nova.

Endpoints

Conexão

GET/health

API no ar

Não precisa de chave.

curl -X GET 'https://msg.api.br/health'
ok
GET/status

Estado da conexão

curl -X GET 'https://msg.api.br/status' \
  -H 'apikey: SUA_CHAVE'
{
  "connected": true
}
GET/me

Número conectado

curl -X GET 'https://msg.api.br/me' \
  -H 'apikey: SUA_CHAVE'
{
  "connected": true,
  "logged_in": true,
  "push_name": "Minha Empresa",
  "pn": "5567999999999@s.whatsapp.net",
  "lid": "123456789012345@lid"
}
GET/qr

QR de pareamento (texto)

curl -X GET 'https://msg.api.br/qr' \
  -H 'apikey: SUA_CHAVE'
{
  "qr": "2@AbC…"
}
GET/qr.svg

QR de pareamento (SVG)

curl -X GET 'https://msg.api.br/qr.svg' \
  -H 'apikey: SUA_CHAVE'
<svg …>
POST/account/disconnect

Desconectar (mantém a sessão)

curl -X POST 'https://msg.api.br/account/disconnect' \
  -H 'apikey: SUA_CHAVE'
POST/account/reconnect

Reconectar

curl -X POST 'https://msg.api.br/account/reconnect' \
  -H 'apikey: SUA_CHAVE'
POST/account/logout

Sair e apagar a sessão

Depois disso é preciso parear de novo.

curl -X POST 'https://msg.api.br/account/logout' \
  -H 'apikey: SUA_CHAVE'
POST/call/reject

Rejeitar chamada

CampoTipoDescrição
call_idstringID da chamada
call_fromstringJID de quem ligou
curl -X POST 'https://msg.api.br/call/reject' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "call_id": "A1B2C3D4E5F6",
  "call_from": "5567999999999@s.whatsapp.net"
}'

Mensagens

POST/message/send-text

Enviar texto

Com o modo Comportamento ligado a resposta é {"queued": true, "id": "…"} e o resultado chega por webhook.

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
textstringTexto
urgentopcionalbooleanEnvia na hora, ignorando a fila do modo Comportamento
curl -X POST 'https://msg.api.br/message/send-text' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "text": "Olá! Tudo bem?"
}'
{
  "ok": true,
  "message_id": "3EB0C767D26A1D0C5F12",
  "to": "5567999999999@s.whatsapp.net"
}
POST/message/send-reaction

Reagir

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
message_idstringID da mensagem
emojistringEmoji da reação
from_meopcionalbooleanA mensagem foi enviada por este número
curl -X POST 'https://msg.api.br/message/send-reaction' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "message_id": "3EB0C767D26A1D0C5F12",
  "emoji": "👍"
}'
POST/message/edit

Editar

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
message_idstringID da mensagem
textstringTexto
curl -X POST 'https://msg.api.br/message/edit' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "message_id": "3EB0C767D26A1D0C5F12",
  "text": "Texto corrigido"
}'
POST/message/delete

Apagar para todos

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
message_idstringID da mensagem
curl -X POST 'https://msg.api.br/message/delete' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "message_id": "3EB0C767D26A1D0C5F12"
}'
POST/message/pin

Fixar

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
message_idstringID da mensagem
durationopcionalstring24h | 7d | 30d
from_meopcionalbooleanA mensagem foi enviada por este número
participantopcionalstringAutor da mensagem (em grupos)
curl -X POST 'https://msg.api.br/message/pin' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "message_id": "3EB0C767D26A1D0C5F12",
  "duration": "7d"
}'
POST/message/unpin

Desafixar

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
message_idstringID da mensagem
from_meopcionalbooleanA mensagem foi enviada por este número
participantopcionalstringAutor da mensagem (em grupos)
curl -X POST 'https://msg.api.br/message/unpin' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "message_id": "3EB0C767D26A1D0C5F12"
}'
POST/message/mark-read

Marcar como lida

CampoTipoDescrição
chatstringJID do chat
message_idsstring[]IDs das mensagens
senderopcionalstringAutor das mensagens (em grupos)
curl -X POST 'https://msg.api.br/message/mark-read' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "chat": "5567999999999@s.whatsapp.net",
  "message_ids": [
    "3EB0C767D26A1D0C5F12"
  ]
}'

Mídia

POST/message/send-media

Enviar mídia

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
typestringimage | video | audio | document
data_base64stringArquivo em base64
mimetypestringTipo MIME do arquivo
captionopcionalstringLegenda
filenameopcionalstringNome do arquivo (documentos)
curl -X POST 'https://msg.api.br/message/send-media' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "type": "image",
  "data_base64": "iVBORw0KGgoAAAANSUhEUgAA…",
  "mimetype": "image/png",
  "caption": "Confira!"
}'
{
  "ok": true,
  "message_id": "3EB0C767D26A1D0C5F12"
}
POST/message/download-media

Baixar mídia recebida

CampoTipoDescrição
typestringimage | video | audio | document
direct_pathstringmedia.direct_path do webhook
media_key_base64stringmedia.media_key do webhook
file_sha256_base64stringmedia.file_sha256 do webhook
file_enc_sha256_base64stringmedia.file_enc_sha256 do webhook
file_lengthnumbermedia.file_length do webhook
curl -X POST 'https://msg.api.br/message/download-media' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "type": "image",
  "direct_path": "/v/t62.7118-24/…",
  "media_key_base64": "…",
  "file_sha256_base64": "…",
  "file_enc_sha256_base64": "…",
  "file_length": 52341
}'
{
  "ok": true,
  "size": 52341,
  "data_base64": "/9j/4AAQSkZJRg…"
}

Chats

POST/chat/archive

Arquivar

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/chat/archive' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/unarchive

Desarquivar

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/chat/unarchive' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/pin

Fixar chat

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/chat/pin' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/unpin

Desafixar chat

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/chat/unpin' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/mute

Silenciar

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
until_ts_msopcionalnumberAté quando (epoch em ms). Sem o campo: para sempre
curl -X POST 'https://msg.api.br/chat/mute' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/unmute

Reativar som

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/chat/unmute' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/mark-read

Marcar chat como lido

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
readopcionalbooleanfalse marca como não lido
curl -X POST 'https://msg.api.br/chat/mark-read' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net",
  "read": true
}'
POST/chat/delete

Apagar chat

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
delete_mediaopcionalbooleanApaga também as mídias do aparelho
curl -X POST 'https://msg.api.br/chat/delete' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/chat/star

Favoritar mensagem

CampoTipoDescrição
chatstringJID do chat
message_idstringID da mensagem
from_meopcionalbooleanA mensagem foi enviada por este número
participantopcionalstringAutor da mensagem (em grupos)
curl -X POST 'https://msg.api.br/chat/star' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "chat": "5567999999999@s.whatsapp.net",
  "message_id": "3EB0C767D26A1D0C5F12"
}'
POST/chat/unstar

Desfavoritar mensagem

CampoTipoDescrição
chatstringJID do chat
message_idstringID da mensagem
from_meopcionalbooleanA mensagem foi enviada por este número
participantopcionalstringAutor da mensagem (em grupos)
curl -X POST 'https://msg.api.br/chat/unstar' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "chat": "5567999999999@s.whatsapp.net",
  "message_id": "3EB0C767D26A1D0C5F12"
}'
POST/chat/delete-message-for-me

Apagar mensagem só para mim

CampoTipoDescrição
chatstringJID do chat
message_idstringID da mensagem
from_meopcionalbooleanA mensagem foi enviada por este número
delete_mediaopcionalbooleanApaga também as mídias do aparelho
participantopcionalstringAutor da mensagem (em grupos)
curl -X POST 'https://msg.api.br/chat/delete-message-for-me' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "chat": "5567999999999@s.whatsapp.net",
  "message_id": "3EB0C767D26A1D0C5F12"
}'
POST/chat/typing

Digitando / gravando

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
statestringcomposing | recording | paused
curl -X POST 'https://msg.api.br/chat/typing' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "state": "composing"
}'

Presença

POST/presence/set

Definir presença

CampoTipoDescrição
statusstringavailable | unavailable
curl -X POST 'https://msg.api.br/presence/set' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "status": "available"
}'
POST/presence/subscribe

Acompanhar presença

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/presence/subscribe' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'
POST/presence/unsubscribe

Parar de acompanhar

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/presence/unsubscribe' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999@s.whatsapp.net"
}'

Perfil

POST/profile/status

Alterar recado

CampoTipoDescrição
textstringTexto
curl -X POST 'https://msg.api.br/profile/status' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "text": "Atendimento das 8h às 18h"
}'
POST/profile/name

Alterar nome

CampoTipoDescrição
namestringNome
curl -X POST 'https://msg.api.br/profile/name' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "name": "Minha Empresa"
}'
POST/profile/picture

Alterar foto

CampoTipoDescrição
image_base64stringImagem JPEG em base64
curl -X POST 'https://msg.api.br/profile/picture' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "image_base64": "/9j/4AAQSkZJRg…"
}'
POST/profile/remove-picture

Remover foto

curl -X POST 'https://msg.api.br/profile/remove-picture' \
  -H 'apikey: SUA_CHAVE'

Contatos

POST/contact/check

Tem WhatsApp?

CampoTipoDescrição
jidsstring[]Números ou JIDs
curl -X POST 'https://msg.api.br/contact/check' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jids": [
    "5567999999999"
  ]
}'
POST/contact/info

Informações

CampoTipoDescrição
jidsstring[]Números ou JIDs
curl -X POST 'https://msg.api.br/contact/info' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jids": [
    "5567999999999"
  ]
}'
POST/contact/profile-picture

Foto de perfil

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
previewopcionalbooleanMiniatura em vez da imagem completa
curl -X POST 'https://msg.api.br/contact/profile-picture' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999",
  "preview": false
}'
POST/contact/business-profile

Perfil comercial

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/contact/business-profile' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999"
}'
POST/contact/block

Bloquear

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/contact/block' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999"
}'
POST/contact/unblock

Desbloquear

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/contact/unblock' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999"
}'
POST/contact/is-blocked

Está bloqueado?

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/contact/is-blocked' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "5567999999999"
}'
GET/contact/blocklist

Lista de bloqueados

curl -X GET 'https://msg.api.br/contact/blocklist' \
  -H 'apikey: SUA_CHAVE'

Grupos

GET/group/list

Listar grupos

curl -X GET 'https://msg.api.br/group/list' \
  -H 'apikey: SUA_CHAVE'
POST/group/create

Criar grupo

CampoTipoDescrição
subjectstringNome do grupo
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/create' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "subject": "Equipe de vendas",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/info

Informações

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/group/info' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/group/subject

Alterar nome

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
subjectstringNome do grupo
curl -X POST 'https://msg.api.br/group/subject' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "subject": "Novo nome"
}'
POST/group/description

Alterar descrição

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
descriptionstringDescrição
curl -X POST 'https://msg.api.br/group/description' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "description": "Avisos da equipe"
}'
POST/group/leave

Sair do grupo

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/group/leave' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/group/participants/add

Adicionar membros

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/participants/add' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/participants/remove

Remover membros

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/participants/remove' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/participants/promote

Promover a admin

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/participants/promote' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/participants/demote

Remover admin

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/participants/demote' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/invite-link

Link de convite

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
resetopcionalbooleanGera um link novo (o anterior para de funcionar)
curl -X POST 'https://msg.api.br/group/invite-link' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "reset": false
}'
POST/group/join

Entrar por convite

CampoTipoDescrição
codestringCódigo ou link de convite
curl -X POST 'https://msg.api.br/group/join' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "code": "AbCdEfGh1234"
}'
POST/group/invite-info

Ver convite sem entrar

CampoTipoDescrição
codestringCódigo ou link de convite
curl -X POST 'https://msg.api.br/group/invite-info' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "code": "AbCdEfGh1234"
}'
POST/group/requests

Pedidos de entrada

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/group/requests' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/group/requests/approve

Aprovar pedidos

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/requests/approve' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/requests/reject

Recusar pedidos

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/requests/reject' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/requests/cancel

Cancelar pedidos

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/requests/cancel' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/requests/revoke-code

Revogar convites

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
participantsstring[]Números ou JIDs dos membros
curl -X POST 'https://msg.api.br/group/requests/revoke-code' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "participants": [
    "5567999999999"
  ]
}'
POST/group/acknowledge

Confirmar grupo

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/group/acknowledge' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/group/member-label

Etiqueta de membro

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
labelstringEtiqueta
curl -X POST 'https://msg.api.br/group/member-label' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "label": "Financeiro"
}'
POST/group/batch-info

Vários grupos

CampoTipoDescrição
jidsstring[]Números ou JIDs
curl -X POST 'https://msg.api.br/group/batch-info' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jids": [
    "120363000000000000@g.us"
  ]
}'
POST/group/profile-pictures

Fotos de vários grupos

CampoTipoDescrição
jidsstring[]Números ou JIDs
previewopcionalbooleanMiniatura em vez da imagem completa
curl -X POST 'https://msg.api.br/group/profile-pictures' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jids": [
    "120363000000000000@g.us"
  ],
  "preview": false
}'
POST/group/settings/locked

Só admins editam dados

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
lockedbooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/locked' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "locked": true
}'
POST/group/settings/announce

Só admins enviam mensagens

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
announcebooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/announce' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "announce": true
}'
POST/group/settings/ephemeral

Mensagens temporárias

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
secondsnumber0 desliga · 86400 (24h) · 604800 (7d) · 7776000 (90d)
curl -X POST 'https://msg.api.br/group/settings/ephemeral' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "seconds": 604800
}'
POST/group/settings/membership-approval

Aprovação para entrar

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
valuebooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/membership-approval' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "value": true
}'
POST/group/settings/member-add-mode

Quem adiciona membros

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
modestringadmin | all
curl -X POST 'https://msg.api.br/group/settings/member-add-mode' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "mode": "admin"
}'
POST/group/settings/member-link-mode

Quem compartilha o link

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
modestringadmin | all
curl -X POST 'https://msg.api.br/group/settings/member-link-mode' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "mode": "admin"
}'
POST/group/settings/member-share-history

Quem compartilha o histórico

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
modestringadmin | all
curl -X POST 'https://msg.api.br/group/settings/member-share-history' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "mode": "admin"
}'
POST/group/settings/no-frequently-forwarded

Bloquear encaminhadas com frequência

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
valuebooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/no-frequently-forwarded' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "value": true
}'
POST/group/settings/allow-admin-reports

Denúncias para admins

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
valuebooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/allow-admin-reports' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "value": true
}'
POST/group/settings/history

Histórico para novos membros

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
valuebooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/history' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "value": true
}'
POST/group/settings/limit-sharing

Limitar compartilhamento

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
valuebooleanLigado / desligado
curl -X POST 'https://msg.api.br/group/settings/limit-sharing' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us",
  "value": true
}'

Enquetes

POST/poll/create

Criar enquete

Guarde o message_secret_base64: ele é exigido para votar.

CampoTipoDescrição
tostringNúmero (DDI+DDD+número) ou JID do destino
namestringPergunta
optionsstring[]Opções
selectable_countopcionalnumberQuantas opções cada pessoa pode marcar
curl -X POST 'https://msg.api.br/poll/create' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "to": "5567999999999",
  "name": "Melhor horário?",
  "options": [
    "Manhã",
    "Tarde"
  ],
  "selectable_count": 1
}'
{
  "ok": true,
  "message_id": "3EB0C767D26A1D0C5F12",
  "message_secret_base64": "q1w2e3…"
}
POST/poll/vote

Votar

CampoTipoDescrição
chatstringJID do chat
poll_message_idstringID da mensagem da enquete
poll_creatorstringJID de quem criou a enquete
message_secret_base64stringSegredo devolvido na criação
optionsstring[]Opções escolhidas
curl -X POST 'https://msg.api.br/poll/vote' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "chat": "5567999999999@s.whatsapp.net",
  "poll_message_id": "3EB0C767D26A1D0C5F12",
  "poll_creator": "5567999999999@s.whatsapp.net",
  "message_secret_base64": "q1w2e3…",
  "options": [
    "Manhã"
  ]
}'
{
  "ok": true,
  "message_id": "3EB0C767D26A1D0C5F12"
}

Privacidade

GET/privacy

Configurações atuais

curl -X GET 'https://msg.api.br/privacy' \
  -H 'apikey: SUA_CHAVE'
POST/privacy/set

Alterar privacidade

CampoTipoDescrição
categorystringlast | online | profile | status | groupadd | readreceipts | calladd | messages
valuestringall | contacts | none | contact_blacklist | match_last_seen | known | off | on_standard
curl -X POST 'https://msg.api.br/privacy/set' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "category": "last",
  "value": "contacts"
}'
POST/privacy/disappearing

Temporárias por padrão

CampoTipoDescrição
secondsnumberDuração em segundos (0 desliga)
curl -X POST 'https://msg.api.br/privacy/disappearing' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "seconds": 0
}'

Status (stories)

POST/status/send-text

Publicar status de texto

CampoTipoDescrição
textstringTexto
recipientsstring[]Números ou JIDs que podem ver
background_argbopcionalnumberCor de fundo (ARGB)
fontopcionalnumberFonte (número)
curl -X POST 'https://msg.api.br/status/send-text' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "text": "Promoção de hoje!",
  "recipients": [
    "5567999999999"
  ]
}'
POST/status/revoke

Apagar status

CampoTipoDescrição
message_idstringID da mensagem
recipientsstring[]Números ou JIDs que podem ver
curl -X POST 'https://msg.api.br/status/revoke' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "message_id": "3EB0C767D26A1D0C5F12",
  "recipients": [
    "5567999999999"
  ]
}'

Canais

GET/newsletter/list

Canais seguidos

curl -X GET 'https://msg.api.br/newsletter/list' \
  -H 'apikey: SUA_CHAVE'
POST/newsletter/info

Informações

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/newsletter/info' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter"
}'
POST/newsletter/create

Criar canal

CampoTipoDescrição
namestringNome
descriptionopcionalstringDescrição
curl -X POST 'https://msg.api.br/newsletter/create' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "name": "Novidades",
  "description": "Ofertas e avisos"
}'
POST/newsletter/join

Seguir

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/newsletter/join' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter"
}'
POST/newsletter/leave

Deixar de seguir

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/newsletter/leave' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter"
}'
POST/newsletter/update

Editar canal

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
nameopcionalstringNome
descriptionopcionalstringDescrição
curl -X POST 'https://msg.api.br/newsletter/update' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter",
  "name": "Novo nome"
}'
POST/newsletter/invite-info

Ver convite

CampoTipoDescrição
codestringCódigo ou link de convite
curl -X POST 'https://msg.api.br/newsletter/invite-info' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "code": "0029VaAbCdEf"
}'
POST/newsletter/subscribe-live

Atualizações ao vivo

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/newsletter/subscribe-live' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter"
}'
POST/newsletter/react

Reagir

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
server_idnumberID da mensagem no canal
reactionstringEmoji
curl -X POST 'https://msg.api.br/newsletter/react' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter",
  "server_id": 123,
  "reaction": "👍"
}'
POST/newsletter/messages

Mensagens do canal

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
countnumberQuantidade
beforeopcionalnumberBusca antes deste server_id
curl -X POST 'https://msg.api.br/newsletter/messages' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@newsletter",
  "count": 20
}'

Comunidades

POST/community/create

Criar comunidade

CampoTipoDescrição
namestringNome
descriptionopcionalstringDescrição
closedopcionalbooleanEntrada só com aprovação
curl -X POST 'https://msg.api.br/community/create' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "name": "Clientes",
  "description": "Comunidade de clientes",
  "closed": false
}'
POST/community/deactivate

Desativar

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/community/deactivate' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/community/link

Vincular grupos

CampoTipoDescrição
communitystringJID da comunidade
subgroupsstring[]JIDs dos subgrupos
remove_orphan_membersopcionalbooleanRemove membros que ficarem sem grupo
curl -X POST 'https://msg.api.br/community/link' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "community": "120363000000000000@g.us",
  "subgroups": [
    "120363111111111111@g.us"
  ]
}'
POST/community/unlink

Desvincular grupos

CampoTipoDescrição
communitystringJID da comunidade
subgroupsstring[]JIDs dos subgrupos
remove_orphan_membersopcionalbooleanRemove membros que ficarem sem grupo
curl -X POST 'https://msg.api.br/community/unlink' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "community": "120363000000000000@g.us",
  "subgroups": [
    "120363111111111111@g.us"
  ]
}'
POST/community/subgroups

Subgrupos

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/community/subgroups' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/community/subgroup-counts

Membros por subgrupo

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/community/subgroup-counts' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/community/participants

Membros

CampoTipoDescrição
jidstringJID do chat, contato ou grupo (aceita número)
curl -X POST 'https://msg.api.br/community/participants' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "jid": "120363000000000000@g.us"
}'
POST/community/query-linked

Consultar subgrupo vinculado

CampoTipoDescrição
communitystringJID da comunidade
subgroupstringJID do subgrupo
curl -X POST 'https://msg.api.br/community/query-linked' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "community": "120363000000000000@g.us",
  "subgroup": "120363111111111111@g.us"
}'
POST/community/join-subgroup

Entrar em subgrupo

CampoTipoDescrição
communitystringJID da comunidade
subgroupstringJID do subgrupo
curl -X POST 'https://msg.api.br/community/join-subgroup' \
  -H 'apikey: SUA_CHAVE' \
  -H 'content-type: application/json' \
  -d '{
  "community": "120363000000000000@g.us",
  "subgroup": "120363111111111111@g.us"
}'

Webhooks

Configure a URL do webhook no painel. Cada mensagem recebida gera um POST em JSON:

{
  "tenant": "lobo-rosa-1542",
  "id": "3EB0C767D26A1D0C5F12",
  "from": "5567999999999@s.whatsapp.net",
  "chat": "5567999999999@s.whatsapp.net",
  "from_me": false,
  "text": "Oi! Quero um orçamento",
  "media": null
}

Mensagens enviadas pela fila geram os eventos message.sent e message.failed:

{
  "event": "message.sent",
  "queue_id": "8f14e45f-ceea-4672-a8b5-2a6c8b1f0d3e",
  "tenant": "lobo-rosa-1542",
  "wa_id": "3EB0C767D26A1D0C5F12",
  "to": "5567999999999@s.whatsapp.net"
}

Versão e limites

A versão atual é a v1: https://msg.api.br/v1/..., e as rotas sem prefixo respondem igual. Mudança incompatível só entra numa versão nova (/v2), avisada com pelo menos 6 meses de antecedência.

Cada chave pode fazer até 600 requisições por minuto. Os headers RateLimit-Remaining e RateLimit-Reset mostram quanto resta; acima do limite a resposta é 429 com Retry-After.

Erros

Os erros respondem em JSON, com a mensagem em português: {"error": "..."}.

400Corpo inválido ou valor fora do permitido
401Apikey ausente ou inválida
402Plano vencido: regularize no painel
403Número desativado ou conta suspensa
404Rota ou recurso não encontrado
415Faltou o header content-type: application/json
422Campo obrigatório ausente ou com tipo errado
429Limite de requisições atingido: aguarde o tempo do header Retry-After
502Número ainda não pareado ou o WhatsApp recusou a operação
503Conexão ainda iniciando

Dúvidas? Fale com a gente.