Introdução à megaAPI

Bem-vindo à megaAPI! Conheça nossa solução de integração com o WhatsApp e explore seus recursos:

Importante você saber

A Mega-api não é destinada para práticas de Spam no WhatsApp. Utilize com sabedoria e responsabilidade.

O que é a megaAPI?

A megaAPI é uma solução avançada para integração com o WhatsApp, permitindo que empresas e desenvolvedores ampliem suas capacidades de comunicação, conectando-se de maneira eficiente e segura com seus clientes através deste popular aplicativo de mensagens.

Para quem a megaAPI foi desenvolvida?

A megaAPI foi desenvolvida para empresas, desenvolvedores e profissionais que desejam otimizar sua comunicação via WhatsApp, seja para atendimento ao cliente, marketing ou outros objetivos empresariais. Independentemente do tamanho ou do setor, a megaAPI tem as ferramentas para impulsionar suas operações.

Quem pode utilizar a megaAPI?

Qualquer pessoa ou empresa que deseja melhorar e ampliar sua comunicação no WhatsApp. Desde pequenas empresas até grandes corporações, a megaAPI é flexível e escalável para atender às necessidades de todos.

Limites de envio de mensagens:

NÃO TEMOS LIMITE para o número de mensagens enviadas! No entanto, é importante entender que você está utilizando uma sessão do WhatsApp Web, então o padrão de utilização precisa ser compatível. Além disso, sempre recomendamos que você leia atentamente as políticas estabelecidas pelo próprio WhatsApp em sua página oficial.

Armazenamento de mensagens

A Mega-api não armazena nenhuma das mensagens que são trafegadas, durante a conexão do seu whatsapp com uma instância da Mega-api, fica por conta do usuário, criar seu banco de dados, para armazenamento de todas as mensagens.

URLs para chamadas dos endpoints

Os hosts listados abaixo podem variar de acordo com a instância criada. A seleção específica do host dependerá da disponibilidade do servidor no momento da criação da instância. Isso é feito para garantir que nossos servidores não sejam sobrecarregados e para manter a performance ideal para todos os usuários.

Host URL
apinocode01 apinocode01.megaapi.com.br

Para sua comodidade, lembre-se de que essas informações, bem como outras configurações e detalhes relevantes, estão sempre disponíveis no painel de usuário da Mega-api. Recomendamos verificar regularmente para obter as informações mais atualizadas e garantir a otimização do uso da nossa API.

Instance Key e Token

Entenda os conceitos da Mega-api e saiba como a Instance Key e o Token são fundamentais para a integração com sua aplicação.

Para que serve?

Para assegurar uma comunicação segura entre a Mega-api e sua aplicação, estabelecemos um protocolo de autenticação robusto. Cada interação com nossa API deve ser autenticada usando uma Instance Key e um Token. Esses identificadores garantem a integridade e segurança das suas requisições.

Na Mega-api, a Instance Key é usada na URL, enquanto o Token é incluído no header das requisições no formato Bearer, garantindo assim uma maior segurança na transmissão de dados.

Como localizar minha Instance Key e Token?

Assim que você cria sua conta na Mega-api, será necessário criar uma instância, que terá sua própria Instance Key e Token. Estes dois identificadores trabalham juntos para garantir a comunicação segura entre sua aplicação e a Mega-api. Para visualizar sua Instance Key e Token, acesse a instância no painel do usuário e clique em 'Detalhes'. Lá, você encontrará todos os detalhes relacionados à instância. E lembre-se, se você tiver múltiplas instâncias, cada uma terá sua própria Instance Key e Token.

Atenção

É fundamental proteger sua Instance Key e Token. Se caírem em mãos erradas, elas podem ser usadas para se comunicar com a Mega-api em seu nome. Lembre-se de manter essas informações longe do frontend e, ao interagir com nossa API, sempre inclua o Token no header das requisições no padrão Bearer. Isso garante a segurança e a correta autenticação das suas ações.

Autenticação Bearer Token

Para garantir uma comunicação segura e autenticada entre sua aplicação e a Mega-api, utilizamos o método de autenticação Bearer Token. Esta é uma prática padrão que oferece segurança robusta para APIs.

Na autenticação Bearer Token, o Token é enviado no header da requisição HTTP. Isso permite à Mega-api validar e autenticar a requisição antes de processá-la. Assegura-se de que apenas entidades autorizadas possam interagir com a API.

Aqui está um exemplo de como incluir o Bearer Token no header de uma requisição:

HTTP Header
Authorization: Bearer SEU_TOKEN_AQUI

Substitua SEU_TOKEN_AQUI pelo token específico da sua instância. Mantenha o prefixo "Bearer" exatamente como mostrado, seguido de um espaço e depois o seu token.

É essencial que todas as suas requisições para a Mega-api sigam este formato de autenticação. Isso não apenas garante a segurança das suas operações, mas também a integridade dos dados transmitidos.

Autenticação

Todas as requisições devem ser autenticadas usando um Bearer Token no cabeçalho.

HTTP Header
Authorization: Bearer SEU_TOKEN_AQUI

Base URL

Todos os endpoints seguem o padrão abaixo. Substitua {instance_key} pela chave da sua instância.

URL https://api.megaapi.com.br/rest/{instance_key}

Rate Limits

Limites de requisições para garantir a estabilidade da API.

Política de Rate Limiting

A MegaAPI implementa rate limiting para garantir a estabilidade e performance do serviço. Os limites são aplicados por instância (instance_key) e são medidos em requisições por minuto (RPM).

Limites Padrão

Plano Limite RPM Burst
Free 60 Até 120 requisições em picos curtos
Pro 300 Até 600 requisições em picos curtos
Enterprise 1000 Até 2000 requisições em picos curtos

Headers de Resposta

HTTP Headers
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 45 X-RateLimit-Reset: 1617181800

Códigos de Erro

Lista de códigos de erro comuns e suas soluções.

Código Descrição Solução
INVALID_TOKEN Token de autenticação inválido ou expirado Verifique se o token está correto e se a instância está ativa
INVALID_RECIPIENT Número do destinatário inválido Certifique-se de que o número inclui DDI e DDD (ex: 5511999999999)
RATE_LIMIT_EXCEEDED Limite de requisições excedido Aguarde até o reset do rate limit ou atualize seu plano
INSTANCE_NOT_READY Instância não está conectada ao WhatsApp Verifique o QR Code e reconecte a instância
MEDIA_DOWNLOAD_FAILED Falha ao baixar mídia da URL fornecida Verifique se a URL é pública e acessível

Webhooks

Receba notificações em tempo real sobre eventos da sua instância.

O que são Webhooks?

Webhooks são callbacks HTTP que notificam seu servidor sobre eventos importantes, como recebimento de mensagens, atualizações de status da instância, e muito mais.

Eventos Disponíveis

Evento Descrição Payload Exemplo
message.received Nova mensagem recebida {"event": "message.received", "data": {...}}
message.sent Mensagem enviada com sucesso {"event": "message.sent", "data": {...}}
instance.connected Instância conectada ao WhatsApp {"event": "instance.connected", "data": {...}}
instance.disconnected Instância desconectada {"event": "instance.disconnected", "data": {...}}

Configurar Webhook

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/webhook/set \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://seu-servidor.com/webhook", "events": ["message.received", "instance.connected"] }'

Enviar Texto

Envia uma mensagem de texto simples para um número ou grupo.

POST /sendMessage/text

Parâmetros (Body JSON)

Campo Tipo Descrição
to OBRIGATÓRIO string Número do destinatário com DDI e DDD (ex: 5511999999999) ou ID do grupo (@g.us).
text OBRIGATÓRIO string Conteúdo da mensagem de texto.

Exemplos de Código

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/text \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "text": "Olá! Seu pedido foi confirmado." } }'
JavaScript
const response = await fetch('https://api.megaapi.com.br/rest/megastart-123/sendMessage/text', { method: 'POST', headers: { 'Authorization': 'Bearer 123456', 'Content-Type': 'application/json' }, body: JSON.stringify({ messageData: { to: '5511999998888@s.whatsapp.net', text: 'Olá! Seu pedido foi confirmado.' } }) }); const data = await response.json(); console.log(data);
Python
import requests url = 'https://api.megaapi.com.br/rest/megastart-123/sendMessage/text' headers = { 'Authorization': 'Bearer 123456', 'Content-Type': 'application/json' } data = { 'messageData': { 'to': '5511999998888@s.whatsapp.net', 'text': 'Olá! Seu pedido foi confirmado.' } } response = requests.post(url, headers=headers, json=data) print(response.json())
PHP
<?php $url = 'https://api.megaapi.com.br/rest/megastart-123/sendMessage/text'; $headers = [ 'Authorization: Bearer 123456', 'Content-Type: application/json' ]; $data = [ 'messageData' => [ 'to' => '5511999998888@s.whatsapp.net', 'text' => 'Olá! Seu pedido foi confirmado.' ] ]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); $response = curl_exec($ch); curl_close($ch); $result = json_decode($response, true); print_r($result);

Resposta de Sucesso

JSON
{ "status": "success", "message": "Message sent successfully", "messageId": "3EB0C6D0F8F3A120", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Invalid recipient number", "code": "INVALID_RECIPIENT", "details": "The provided phone number is not valid" }

Enviar Imagem

Envia uma imagem via URL pública ou Base64 para um número ou grupo.

POST /sendMessage/image

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário com DDI e DDD (ex: 5511999999999) ou ID do grupo (@g.us).
url string SIM* URL pública da imagem (jpg, png, gif). Alternativamente, use base64.
base64 string SIM* Imagem em formato Base64. Use url ou base64, não ambos.
caption string NÃO Legenda da imagem (máx. 1024 caracteres).

Exemplos de Código

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/image \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "url": "https://exemplo.com/imagem.jpg", "caption": "Confira esta imagem!" } }'
JavaScript
const response = await fetch('https://api.megaapi.com.br/rest/megastart-123/sendMessage/image', { method: 'POST', headers: { 'Authorization': 'Bearer 123456', 'Content-Type': 'application/json' }, body: JSON.stringify({ messageData: { to: '5511999998888@s.whatsapp.net', url: 'https://exemplo.com/imagem.jpg', caption: 'Confira esta imagem!' } }) }); const data = await response.json(); console.log(data);
Python
import requests url = 'https://api.megaapi.com.br/rest/megastart-123/sendMessage/image' headers = { 'Authorization': 'Bearer 123456', 'Content-Type': 'application/json' } data = { 'messageData': { 'to': '5511999998888@s.whatsapp.net', 'url': 'https://exemplo.com/imagem.jpg', 'caption': 'Confira esta imagem!' } } response = requests.post(url, headers=headers, json=data) print(response.json())
PHP
<?php $url = 'https://api.megaapi.com.br/rest/megastart-123/sendMessage/image'; $headers = [ 'Authorization: Bearer 123456', 'Content-Type: application/json' ]; $data = [ 'messageData' => [ 'to' => '5511999998888@s.whatsapp.net', 'url' => 'https://exemplo.com/imagem.jpg', 'caption' => 'Confira esta imagem!' ] ]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); $response = curl_exec($ch); curl_close($ch); $result = json_decode($response, true); print_r($result);

Resposta de Sucesso

JSON
{ "status": "success", "message": "Image sent successfully", "messageId": "5FB1C7E1F9G4B230", "timestamp": 1617181825 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to download image from URL", "code": "MEDIA_DOWNLOAD_FAILED", "details": "The provided URL is not accessible or the image format is not supported" }

Enviar Áudio

Envia um arquivo de áudio (MP3, OGG) via URL ou Base64.

POST /sendMessage/audio

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário ou ID do grupo.
url string SIM* URL pública do áudio (MP3, OGG). Máx. 16MB.
base64 string SIM* Áudio em Base64. Use url ou base64.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/audio \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "url": "https://exemplo.com/audio.mp3" } }'

Enviar Vídeo

Envia um arquivo de vídeo (MP4) via URL ou Base64.

POST /sendMessage/video

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário ou ID do grupo.
url string SIM* URL pública do vídeo (MP4). Máx. 16MB.
base64 string SIM* Vídeo em Base64. Use url ou base64.
caption string NÃO Legenda do vídeo (máx. 1024 caracteres).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/video \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "url": "https://exemplo.com/video.mp4", "caption": "Confira este vídeo!" } }'

Enviar Documento

Envia um arquivo de documento (PDF, DOC, XLS) via URL ou Base64.

POST /sendMessage/document

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário ou ID do grupo.
url string SIM* URL pública do documento (PDF, DOC, XLS, TXT). Máx. 100MB.
base64 string SIM* Documento em Base64. Use url ou base64.
filename string NÃO Nome do arquivo (com extensão).
caption string NÃO Descrição do documento (máx. 1024 caracteres).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/document \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "url": "https://exemplo.com/documento.pdf", "filename": "relatorio.pdf", "caption": "Confira o relatório mensal." } }'

Enviar Localização

Envia uma localização com coordenadas geográficas.

POST /sendMessage/location

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário ou ID do grupo.
latitude number SIM Latitude da localização (-90 a 90).
longitude number SIM Longitude da localização (-180 a 180).
name string NÃO Nome do local (ex: "Restaurante XYZ").
address string NÃO Endereço completo do local.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/location \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "latitude": -23.550520, "longitude": -46.633308, "name": "Praça da Sé", "address": "São Paulo, SP, Brasil" } }'

Enviar Contato

Envia um cartão de contato (vCard) com informações de telefone, nome, etc.

POST /sendMessage/contact

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário ou ID do grupo.
name string SIM Nome completo do contato.
phone string SIM Número de telefone do contato (com DDI e DDD).
email string NÃO E-mail do contato.
org string NÃO Empresa/organização do contato.
title string NÃO Cargo/função do contato.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/contact \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "name": "João Silva", "phone": "5511988887777", "email": "joao@exemplo.com", "org": "Empresa XYZ", "title": "Gerente de Vendas" } }'

Enviar Lista

Envia uma mensagem interativa com lista de opções (menu).

POST /sendMessage/list

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
to string SIM Número do destinatário ou ID do grupo.
title string SIM Título da lista (máx. 24 caracteres).
description string NÃO Descrição da lista (máx. 72 caracteres).
buttonText string SIM Texto do botão (ex: "Abrir menu").
sections array SIM Array de seções, cada uma com título e opções.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/sendMessage/list \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "messageData": { "to": "5511999998888@s.whatsapp.net", "title": "Escolha uma opção", "description": "Selecione uma das opções abaixo", "buttonText": "Abrir menu", "sections": [ { "title": "Produtos", "options": [ {"id": "prod1", "description": "Produto A"}, {"id": "prod2", "description": "Produto B"} ] }, { "title": "Suporte", "options": [ {"id": "suporte1", "description": "Falar com atendente"}, {"id": "suporte2", "description": "Ver FAQ"} ] } ] } }'

Criar Grupo

Cria um novo grupo no WhatsApp com os participantes especificados.

POST /group/create

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
subject string SIM Nome do grupo (máx. 25 caracteres).
participants array SIM Array de números de telefone com DDI e DDD (ex: ["5511999999999", "5511888888888"]).
description string NÃO Descrição do grupo (máx. 512 caracteres).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/group/create \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "subject": "Meu Grupo de Teste", "participants": ["5511999998888", "5511888887777"], "description": "Grupo criado via API" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Group created successfully", "groupId": "123456789-123456@g.us", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to create group", "code": "GROUP_CREATE_FAILED", "details": "Invalid participant numbers" }

Adicionar Participante

Adiciona um participante a um grupo existente.

POST /group/add-participant

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).
participant string SIM Número do participante com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/group/add-participant \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "groupId": "123456789-123456@g.us", "participant": "5511999998888" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Participant added successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to add participant", "code": "ADD_PARTICIPANT_FAILED", "details": "Group not found or participant invalid" }

Remover Participante

Remove um participante de um grupo existente.

POST /group/remove-participant

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).
participant string SIM Número do participante com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/group/remove-participant \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "groupId": "123456789-123456@g.us", "participant": "5511999998888" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Participant removed successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to remove participant", "code": "REMOVE_PARTICIPANT_FAILED", "details": "Group not found or participant not in group" }

Promover Admin

Promove um participante a administrador do grupo.

POST /group/promote-admin

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).
participant string SIM Número do participante com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/group/promote-admin \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "groupId": "123456789-123456@g.us", "participant": "5511999998888" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Participant promoted to admin successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to promote participant", "code": "PROMOTE_ADMIN_FAILED", "details": "Group not found or participant not in group" }

Rebaixar Admin

Rebaixa um administrador para participante comum do grupo.

POST /group/demote-admin

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).
participant string SIM Número do participante com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/group/demote-admin \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "groupId": "123456789-123456@g.us", "participant": "5511999998888" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Admin demoted successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to demote admin", "code": "DEMOTE_ADMIN_FAILED", "details": "Group not found or participant not admin" }

Obter Informações do Grupo

Retorna informações detalhadas sobre um grupo.

GET /group/info?groupId={groupId}

Parâmetros (Query String)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).

Exemplo cURL

cURL
curl --request GET \ --url 'https://api.megaapi.com.br/rest/megastart-123/group/info?groupId=123456789-123456%40g.us' \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "id": "123456789-123456@g.us", "subject": "Meu Grupo de Teste", "description": "Grupo criado via API", "creation": 1617181723, "owner": "5511999999999@s.whatsapp.net", "participantsCount": 5, "adminsCount": 2 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to get group info", "code": "GROUP_INFO_FAILED", "details": "Group not found or access denied" }

Obter Participantes do Grupo

Retorna a lista de participantes de um grupo.

GET /group/participants?groupId={groupId}

Parâmetros (Query String)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).

Exemplo cURL

cURL
curl --request GET \ --url 'https://api.megaapi.com.br/rest/megastart-123/group/participants?groupId=123456789-123456%40g.us' \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "groupId": "123456789-123456@g.us", "participants": [ { "id": "5511999999999@s.whatsapp.net", "isAdmin": true, "isSuperAdmin": false }, { "id": "5511888888888@s.whatsapp.net", "isAdmin": false, "isSuperAdmin": false } ], "total": 2, "admins": 1 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to get group participants", "code": "GROUP_PARTICIPANTS_FAILED", "details": "Group not found or access denied" }

Sair do Grupo

Sai de um grupo (apenas se não for o proprietário).

POST /group/leave

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
groupId string SIM ID do grupo (formato: 123456789-123456@g.us).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/group/leave \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "groupId": "123456789-123456@g.us" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Left group successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to leave group", "code": "GROUP_LEAVE_FAILED", "details": "Group not found or you are the owner" }

Verificar Número

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

GET /contact/check?phone={phone}

Parâmetros (Query String)

Campo Tipo Obrigatório Descrição
phone string SIM Número de telefone com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request GET \ --url 'https://api.megaapi.com.br/rest/megastart-123/contact/check?phone=5511999998888' \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "phone": "5511999998888", "isRegistered": true, "isBusiness": false }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to check phone number", "code": "CONTACT_CHECK_FAILED", "details": "Invalid phone number format" }

Obter Perfil

Obtém informações do perfil de um contato.

GET /contact/profile?phone={phone}

Parâmetros (Query String)

Campo Tipo Obrigatório Descrição
phone string SIM Número de telefone com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request GET \ --url 'https://api.megaapi.com.br/rest/megastart-123/contact/profile?phone=5511999998888' \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "phone": "5511999998888", "name": "João Silva", "status": "Disponível", "pictureUrl": "https://pps.whatsapp.net/v/...", "lastSeen": 1617181723 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to get profile", "code": "CONTACT_PROFILE_FAILED", "details": "Phone number not registered or privacy settings" }

Bloquear Contato

Bloqueia um contato no WhatsApp.

POST /contact/block

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
phone string SIM Número de telefone com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/contact/block \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "phone": "5511999998888" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Contact blocked successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to block contact", "code": "CONTACT_BLOCK_FAILED", "details": "Phone number not found or already blocked" }

Desbloquear Contato

Desbloqueia um contato previamente bloqueado no WhatsApp.

POST /contact/unblock

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
phone string SIM Número de telefone com DDI e DDD (ex: 5511999999999).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/contact/unblock \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "phone": "5511999998888" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Contact unblocked successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to unblock contact", "code": "CONTACT_UNBLOCK_FAILED", "details": "Phone number not found or not blocked" }

Enviar Status

Publica um status no WhatsApp (texto, imagem ou vídeo).

POST /status/send

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
type string SIM Tipo do status: text, image, video.
content string SIM Conteúdo do status (texto) ou URL/base64 (para imagem/vídeo).
caption string NÃO Legenda para imagem/vídeo (máx. 1024 caracteres).

Exemplo cURL (Texto)

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/status/send \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "type": "text", "content": "Novo status via API!" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Status sent successfully", "statusId": "status_123456789", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to send status", "code": "STATUS_SEND_FAILED", "details": "Invalid content or media type" }

Excluir Status

Exclui um status publicado anteriormente.

POST /status/delete

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
statusId string SIM ID do status a ser excluído.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/status/delete \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "statusId": "status_123456789" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Status deleted successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to delete status", "code": "STATUS_DELETE_FAILED", "details": "Status not found or already deleted" }

Listar Status

Retorna a lista de status publicados.

GET /status/list?limit={limit}&offset={offset}

Parâmetros (Query String)

Campo Tipo Obrigatório Descrição
limit number NÃO Número máximo de status a retornar (padrão: 20, máximo: 100).
offset number NÃO Deslocamento para paginação (padrão: 0).

Exemplo cURL

cURL
curl --request GET \ --url 'https://api.megaapi.com.br/rest/megastart-123/status/list?limit=10&offset=0' \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "statuses": [ { "id": "status_123456789", "type": "text", "content": "Novo status via API!", "timestamp": 1617181723, "views": 15 } ], "total": 1, "limit": 10, "offset": 0 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to list statuses", "code": "STATUS_LIST_FAILED", "details": "No statuses found" }

Criar Instância

Cria uma nova instância para conexão com o WhatsApp.

POST /instance/create

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
name string SIM Nome amigável para a instância (ex: "Meu WhatsApp").
webhookUrl string NÃO URL para receber webhooks (opcional).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/instance/create \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "name": "Minha Instância", "webhookUrl": "https://meuservidor.com/webhook" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Instance created successfully", "instanceKey": "megastart-123", "token": "abcdef123456", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to create instance", "code": "INSTANCE_CREATE_FAILED", "details": "Maximum instances limit reached" }

Obter QR Code

Obtém o QR Code para conexão da instância com o WhatsApp.

GET /instance/qr

Descrição

Este endpoint retorna o QR Code atual da instância em formato Base64 ou URL. A instância deve estar no estado pending ou disconnected para gerar um novo QR Code.

Exemplo cURL

cURL
curl --request GET \ --url https://api.megaapi.com.br/rest/megastart-123/instance/qr \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...", "expiresIn": 60, "status": "pending" }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to get QR code", "code": "QR_CODE_FAILED", "details": "Instance already connected or not found" }

Verificar Status

Verifica o status atual da instância (conectada, desconectada, pendente).

GET /instance/status

Descrição

Retorna informações sobre o estado atual da instância, incluindo se está conectada ao WhatsApp, última atividade, versão do WhatsApp Web, etc.

Exemplo cURL

cURL
curl --request GET \ --url https://api.megaapi.com.br/rest/megastart-123/instance/status \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "instanceKey": "megastart-123", "state": "connected", "whatsappVersion": "2.24.8.78", "phoneNumber": "5511999999999", "lastActivity": 1617181723, "createdAt": 1617181623 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to get instance status", "code": "INSTANCE_STATUS_FAILED", "details": "Instance not found or token invalid" }

Desconectar Instância

Desconecta a instância do WhatsApp (mantém a instância ativa).

POST /instance/disconnect

Descrição

Desconecta a instância do WhatsApp, permitindo que um novo QR Code seja gerado para reconexão. A instância permanece ativa e pode ser reconectada posteriormente.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/instance/disconnect \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Instance disconnected successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to disconnect instance", "code": "INSTANCE_DISCONNECT_FAILED", "details": "Instance not found or already disconnected" }

Excluir Instância

Exclui permanentemente uma instância e todos os seus dados.

POST /instance/delete

Descrição

Exclui permanentemente a instância, incluindo todos os dados associados (chaves, tokens, configurações). Esta ação é irreversível.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/instance/delete \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Instance deleted successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to delete instance", "code": "INSTANCE_DELETE_FAILED", "details": "Instance not found or deletion not allowed" }

Configurar Webhook

Configura um webhook para receber notificações de eventos da instância.

POST /webhook/set

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
url string SIM URL do webhook (deve ser HTTPS).
events array SIM Array de eventos a serem notificados (ex: ["message.received", "instance.connected"]).

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/webhook/set \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://meuservidor.com/webhook", "events": ["message.received", "instance.connected"] }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Webhook configured successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to configure webhook", "code": "WEBHOOK_SET_FAILED", "details": "Invalid URL or events array" }

Listar Webhooks

Lista todos os webhooks configurados para a instância.

GET /webhook/list

Descrição

Retorna a lista de webhooks atualmente configurados para a instância, incluindo URLs e eventos.

Exemplo cURL

cURL
curl --request GET \ --url https://api.megaapi.com.br/rest/megastart-123/webhook/list \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "webhooks": [ { "id": "webhook_123", "url": "https://meuservidor.com/webhook", "events": ["message.received", "instance.connected"], "createdAt": 1617181723, "lastTriggered": 1617181823 } ], "total": 1 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to list webhooks", "code": "WEBHOOK_LIST_FAILED", "details": "No webhooks configured" }

Remover Webhook

Remove um webhook configurado anteriormente.

POST /webhook/remove

Parâmetros (Body JSON)

Campo Tipo Obrigatório Descrição
webhookId string SIM ID do webhook a ser removido.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/webhook/remove \ --header 'Authorization: Bearer 123456' \ --header 'Content-Type: application/json' \ --data '{ "webhookId": "webhook_123" }'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Webhook removed successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to remove webhook", "code": "WEBHOOK_REMOVE_FAILED", "details": "Webhook not found" }

Verificar Saúde

Verifica o status de saúde da API e da instância.

GET /health-check

Descrição

Este endpoint verifica se a API está operacional e se a instância está saudável. Útil para monitoramento e alertas.

Exemplo cURL

cURL
curl --request GET \ --url https://api.megaapi.com.br/rest/megastart-123/health-check \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "api": "healthy", "instance": "connected", "whatsapp": "online", "timestamp": 1617181723, "uptime": 86400 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Health check failed", "code": "HEALTH_CHECK_FAILED", "details": "Instance disconnected or WhatsApp offline" }

Obter Métricas

Obtém métricas de uso da instância, como mensagens enviadas, recebidas, taxas de erro, etc.

GET /metrics

Descrição

Este endpoint retorna estatísticas de uso da instância, incluindo contagens de mensagens, status de conexão, uso de recursos e outras métricas relevantes para monitoramento.

Exemplo cURL

cURL
curl --request GET \ --url https://api.megaapi.com.br/rest/megastart-123/metrics \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "data": { "instanceKey": "megastart-123", "messagesSent": 1500, "messagesReceived": 1200, "errorsCount": 15, "uptime": 86400, "lastActivity": 1617181723 }, "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to retrieve metrics", "code": "METRICS_GET_FAILED", "details": "Instance not found or metrics unavailable" }

Limpar Cache

Limpa o cache interno da instância, liberando memória e recursos.

POST /cache/clear

Descrição

Este endpoint limpa o cache interno da instância, removendo dados temporários armazenados em memória. Útil para liberar recursos ou resolver problemas de performance.

Exemplo cURL

cURL
curl --request POST \ --url https://api.megaapi.com.br/rest/megastart-123/cache/clear \ --header 'Authorization: Bearer 123456'

Resposta de Sucesso

JSON
{ "status": "success", "message": "Cache cleared successfully", "timestamp": 1617181723 }

Resposta de Erro

JSON
{ "status": "error", "message": "Failed to clear cache", "code": "CACHE_CLEAR_FAILED", "details": "Instance not found or cache already empty" }