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:
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.
Base URL
Todos os endpoints seguem o padrão abaixo. Substitua {instance_key} pela chave da sua instância.
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
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
Enviar Texto
Envia uma mensagem de texto simples para um número ou grupo.
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
Resposta de Sucesso
Resposta de Erro
Enviar Imagem
Envia uma imagem via URL pública ou Base64 para um número ou grupo.
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
Resposta de Sucesso
Resposta de Erro
Enviar Áudio
Envia um arquivo de áudio (MP3, OGG) via URL ou Base64.
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
Enviar Vídeo
Envia um arquivo de vídeo (MP4) via URL ou Base64.
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
Enviar Documento
Envia um arquivo de documento (PDF, DOC, XLS) via URL ou Base64.
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
Enviar Localização
Envia uma localização com coordenadas geográficas.
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
Enviar Contato
Envia um cartão de contato (vCard) com informações de telefone, nome, etc.
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). |
| 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
Enviar Lista
Envia uma mensagem interativa com lista de opções (menu).
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
Criar Grupo
Cria um novo grupo no WhatsApp com os participantes especificados.
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
Resposta de Sucesso
Resposta de Erro
Adicionar Participante
Adiciona um participante a um grupo existente.
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
| participant | string | SIM | Número do participante com DDI e DDD (ex: 5511999999999). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Remover Participante
Remove um participante de um grupo existente.
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
| participant | string | SIM | Número do participante com DDI e DDD (ex: 5511999999999). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Promover Admin
Promove um participante a administrador do grupo.
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
| participant | string | SIM | Número do participante com DDI e DDD (ex: 5511999999999). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Rebaixar Admin
Rebaixa um administrador para participante comum do grupo.
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
| participant | string | SIM | Número do participante com DDI e DDD (ex: 5511999999999). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Obter Informações do Grupo
Retorna informações detalhadas sobre um grupo.
Parâmetros (Query String)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Obter Participantes do Grupo
Retorna a lista de participantes de um grupo.
Parâmetros (Query String)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Sair do Grupo
Sai de um grupo (apenas se não for o proprietário).
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| groupId | string | SIM | ID do grupo (formato: [email protected]). |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Verificar Número
Verifica se um número está registrado no WhatsApp.
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
Resposta de Sucesso
Resposta de Erro
Obter Perfil
Obtém informações do perfil de um contato.
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
Resposta de Sucesso
Resposta de Erro
Bloquear Contato
Bloqueia um contato no WhatsApp.
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
Resposta de Sucesso
Resposta de Erro
Desbloquear Contato
Desbloqueia um contato previamente bloqueado no WhatsApp.
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
Resposta de Sucesso
Resposta de Erro
Enviar Status
Publica um status no WhatsApp (texto, imagem ou vídeo).
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)
Resposta de Sucesso
Resposta de Erro
Excluir Status
Exclui um status publicado anteriormente.
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| statusId | string | SIM | ID do status a ser excluído. |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Listar Status
Retorna a lista de status publicados.
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
Resposta de Sucesso
Resposta de Erro
Criar Instância
Cria uma nova instância para conexão com o WhatsApp.
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
Resposta de Sucesso
Resposta de Erro
Obter QR Code
Obtém o QR Code para conexão da instância com o WhatsApp.
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
Resposta de Sucesso
Resposta de Erro
Verificar Status
Verifica o status atual da instância (conectada, desconectada, pendente).
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
Resposta de Sucesso
Resposta de Erro
Desconectar Instância
Desconecta a instância do WhatsApp (mantém a instância ativa).
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
Resposta de Sucesso
Resposta de Erro
Excluir Instância
Exclui permanentemente uma instância e todos os seus dados.
Descrição
Exclui permanentemente a instância, incluindo todos os dados associados (chaves, tokens, configurações). Esta ação é irreversível.
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Configurar Webhook
Configura um webhook para receber notificações de eventos da instância.
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
Resposta de Sucesso
Resposta de Erro
Listar Webhooks
Lista todos os webhooks configurados para a instância.
Descrição
Retorna a lista de webhooks atualmente configurados para a instância, incluindo URLs e eventos.
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Remover Webhook
Remove um webhook configurado anteriormente.
Parâmetros (Body JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| webhookId | string | SIM | ID do webhook a ser removido. |
Exemplo cURL
Resposta de Sucesso
Resposta de Erro
Verificar Saúde
Verifica o status de saúde da API e da instância.
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
Resposta de Sucesso
Resposta de Erro
Obter Métricas
Obtém métricas de uso da instância, como mensagens enviadas, recebidas, taxas de erro, etc.
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
Resposta de Sucesso
Resposta de Erro
Limpar Cache
Limpa o cache interno da instância, liberando memória e recursos.
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.