Guia completo para usar a API REST do Evolution GO.
http://localhost:4000
Todas as requisições precisam do header apikey:
curl -H "apikey: SUA-CHAVE-API" http://localhost:4000/endpointTipos de API Key:
- GLOBAL_API_KEY: Configurada na variável de ambiente, usada para operações administrativas (criar/deletar instâncias)
- Token da Instância: Definido ao criar a instância, usado para operações da instância (enviar mensagens, conectar, etc)
Content-Type: application/json
curl -X POST http://localhost:4000/instance/create \
-H "Content-Type: application/json" \
-H "apikey: GLOBAL_API_KEY" \
-d '{
"name": "teste",
"token": "token-teste-123"
}'{
"message": "success",
"data": {
"id": "uuid-abc-123",
"name": "teste",
"token": "token-teste-123",
"connected": false
}
}{
"error": "Instance not found",
"message": "A instância especificada não existe"
}| Código | Significado |
|---|---|
| 200 | OK - Requisição bem-sucedida |
| 201 | Created - Recurso criado com sucesso |
| 400 | Bad Request - Dados inválidos |
| 401 | Unauthorized - API key inválida |
| 404 | Not Found - Recurso não encontrado |
| 500 | Internal Server Error - Erro no servidor |
A API está organizada em módulos:
Gerenciar conexões WhatsApp
POST /instance/create- Criar instânciaPOST /instance/connect- Conectar via QR CodeGET /instance/status- Ver statusDELETE /instance/delete/:id- Deletar
Enviar e gerenciar mensagens
POST /send/text- Texto simplesPOST /send/link- Link com previewPOST /send/media- Mídia (imagem, vídeo, áudio, documento)POST /send/sticker- Sticker/figurinhaPOST /send/location- LocalizaçãoPOST /send/contact- ContatoPOST /send/poll- EnquetePOST /send/button- Botões interativosPOST /send/list- Lista de opções
Interagir com mensagens enviadas/recebidas
POST /message/react- Reagir a mensagemPOST /message/markread- Marcar como lidaPOST /message/delete- Deletar para todosPOST /message/edit- Editar mensagemPOST /message/presence- Definir presença (digitando, gravando)POST /message/downloadmedia- Baixar mídiaPOST /message/status- Ver status de entrega
Gerenciar perfil e contatos
POST /user/info- Informações do usuárioPOST /user/check- Verificar se número existePOST /user/avatar- Obter avatarGET /user/contacts- Listar contatosGET /user/privacy- Ver configurações de privacidadePOST /user/privacy- Configurar privacidadePOST /user/block- Bloquear contatoPOST /user/unblock- Desbloquear contatoGET /user/blocklist- Ver lista de bloqueadosPOST /user/profilePicture- Alterar foto de perfilPOST /user/profileName- Alterar nomePOST /user/profileStatus- Alterar status/recado
Gerenciar grupos WhatsApp
GET /group/list- Listar todos os gruposPOST /group/create- Criar grupoPOST /group/info- Informações do grupoPOST /group/invitelink- Obter link de convitePOST /group/photo- Alterar foto do grupoPOST /group/name- Alterar nomePOST /group/description- Alterar descriçãoPOST /group/participant- Gerenciar participantes (adicionar/remover/promover)POST /group/join- Entrar via linkPOST /group/leave- Sair do grupo
Gerenciar conversas
POST /chat/pin- Fixar conversaPOST /chat/unpin- Desfixar conversaPOST /chat/archive- Arquivar conversaPOST /chat/unarchive- DesarquivarPOST /chat/mute- Silenciar notificaçõesPOST /chat/unmute- Reativar notificaçõesPOST /chat/history-sync- Solicitar sincronização de histórico
Organizar conversas com etiquetas
POST /label/chat- Adicionar etiqueta a chatPOST /label/message- Adicionar etiqueta a mensagemPOST /label/edit- Criar/editar etiquetaGET /label/list- Listar todas as etiquetasPOST /unlabel/chat- Remover etiqueta de chatPOST /unlabel/message- Remover etiqueta de mensagem
Gerenciar chamadas
POST /call/reject- Rejeitar chamada
Gerenciar newsletters/canais
POST /newsletter/create- Criar newsletterGET /newsletter/list- Listar newslettersPOST /newsletter/info- Informações da newsletterPOST /newsletter/link- Obter link de convitePOST /newsletter/subscribe- Inscrever-sePOST /newsletter/messages- Ver mensagens
Gerenciar comunidades
POST /community/create- Criar comunidadePOST /community/add- Adicionar grupo à comunidadePOST /community/remove- Remover grupo da comunidade
Número do WhatsApp (DDI + DDD + Número)
- Formato: Apenas dígitos
- Exemplo:
"5511999999999"(Brasil) - Exemplo:
"1234567890"(EUA)
{
"number": "5511999999999"
}{
"number": "120363XXXXXXXXXX@g.us"
}O Evolution GO formata automaticamente números quando necessário.
Endpoints que retornam listas suportam paginação:
GET /endpoint?page=1&limit=50Para receber eventos em tempo real via WebSocket:
ws://localhost:4000/ws?token=SUA-CHAVE-API&instanceId=minha-instancia
Configure webhooks via variável de ambiente:
WEBHOOK_URL=https://seu-servidor.com/webhookEventos serão enviados via POST para a URL configurada.
Atualmente não há rate limiting configurado, mas é recomendado:
- Máximo 50 requisições por segundo por instância
- Aguarde resposta antes de enviar próxima mensagem
Documentação interativa disponível em:
http://localhost:4000/swagger/index.html
Recursos do Swagger:
- Testar endpoints diretamente
- Ver todos os parâmetros
- Exemplos de request/response
- Autenticação integrada
# 1. Criar instância (usa GLOBAL_API_KEY)
curl -X POST http://localhost:4000/instance/create \
-H "Content-Type: application/json" \
-H "apikey: GLOBAL_API_KEY" \
-d '{
"name": "vendas",
"token": "token-vendas-123"
}'
# 2. Conectar (usa token da instância)
curl -X POST http://localhost:4000/instance/connect \
-H "Content-Type: application/json" \
-H "apikey: token-vendas-123" \
-d '{
"webhookUrl": "https://meu-servidor.com/webhook"
}'
# 3. Ver QR Code (usa token da instância)
curl -X GET http://localhost:4000/instance/qr \
-H "apikey: token-vendas-123"curl -X POST http://localhost:4000/send/media \
-H "Content-Type: application/json" \
-H "apikey: token-vendas-123" \
-d '{
"number": "5511999999999",
"url": "https://exemplo.com/produto.jpg",
"type": "image",
"caption": "Confira nosso produto!"
}'curl -X POST http://localhost:4000/group/create \
-H "Content-Type: application/json" \
-H "apikey: token-vendas-123" \
-d '{
"name": "Equipe de Vendas",
"participants": ["5511999999999", "5511888888888"]
}'Use /user/check para verificar se número existe no WhatsApp
Sempre trate erros HTTP 4xx e 5xx
Para receber mensagens, configure webhooks em vez de polling
Use uma instância por número WhatsApp
Configure logs adequadamente para debug
Verifique se a apikey está correta
Certifique-se de que criou a instância primeiro
- Verifique status da conexão
- Confirme formato do número
- Verifique se número existe no WhatsApp
- API de Instâncias - Gerenciar instâncias
- API de Mensagens - Enviar mensagens
- API de Grupos - Gerenciar grupos
- Sistema de Eventos - Webhooks e eventos
Dica: Use o Swagger para explorar todos os endpoints disponíveis!