Documentação completa da API para integração com ChatGPT e WhatsApp
Instâncias WhatsApp
POST
Ativo
/api/whats/startIniciar uma nova instância do WhatsApp
Request Body:
{"empCodigo":"233","titulo":"Instância Teste","numero":"5515996361986"}
Response:
{"ok":true,"sessionId":"W1","message":"Instância iniciada com sucesso"}
GET
Ativo
/api/whatsListar todas as instâncias ativas
{"ok":true,"sessions":[{"id":"W1","emp":"233","ready":true}]}
GET
Ativo
/api/whats/:id/qrObter QR Code de uma instância
GET
Ativo
/api/whats/:id/statusVerificar status de uma instância
Envio de Mensagens
POST
Ativo
/api/sessions/:id/sendEnviar mensagem de texto
Request Body:
{"to":"5511999999999","message":"Olá! Como posso ajudar?","userLogin":"WEBUSER"}
Response:
{"ok":true,"result":{"id":"3EB0C767D26C4A8B5C7A","to":"5511999999999@c.us","timestamp":1640995200}}
POST
Ativo
/api/sessions/:id/send-mediaEnviar mídia (imagem, áudio, vídeo, documento)
Request (FormData):
to: "5511999999999"
caption: "Legenda da mídia"
userLogin: "WEBUSER"
file: [arquivo]
ChatGPT Integration
GET
Ativo
/api/chatgpt/rules/:phone/:instanceVerificar regras aplicáveis para um número
{"success":true,"rule":{"ID":1,"INSTANCE":"W1","MATCH_TYPE":"exact","CHATGPT_ENABLED":true,"VISION_ENABLED":true}}
POST
Ativo
/api/chatgpt/testTestar integração com ChatGPT
Request:
{"phoneNumber":"5515996361986","instance":"W1","message":"Olá!","messageType":"text"}
Response:
{"success":true,"response":"Olá! Sou um assistente...","usage":{"total_tokens":150},"processingTime":1250}
POST
Ativo
/api/chatgpt/transcribeProcessar mídia com ChatGPT (transcrição, análise de imagem)
{"phoneNumber":"5515996361986","instance":"W1","mediaData":"base64_encoded_data","mediaType":"image/jpeg","fileName":"imagem.jpg"}
GET
Ativo
/api/chatgpt/summary/:phone/:instanceObter resumo de conversas gerado pelo ChatGPT
GET
Ativo
/api/chatgpt/history/:phone/:instance?hours=24Obter histórico de conversas de um contato
Configuração e Status
GET
Ativo
/api/diagDiagnóstico do sistema e status das sessões
Códigos de Status HTTP
| Código | Significado | Descrição |
|---|---|---|
| 200 | OK | Requisição processada com sucesso |
| 400 | Bad Request | Parâmetros inválidos ou ausentes |
| 404 | Not Found | Recurso não encontrado |
| 409 | Conflict | Instância desativada ou em conflito |
| 423 | Locked | Sessão não está pronta (aguarde conectar) |
| 500 | Internal Server Error | Erro interno do servidor |
Exemplos de Uso
JavaScript (Fetch API)
const response = await fetch('/api/sessions/W1/send', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ to: '5511999999999', message: 'Olá!', userLogin: 'WEBUSER' })
});
const result = await response.json();
cURL
curl -X POST http://localhost:3000/api/chatgpt/test \
-H "Content-Type: application/json" \
-d '{"phoneNumber":"5515996361986","instance":"W1","message":"Olá!","messageType":"text"}'
Python (requests)
import requests
files = {'file': open('imagem.jpg', 'rb')}
data = {'to': '5511999999999', 'caption': 'Legenda', 'userLogin': 'WEBUSER'}
response = requests.post('http://localhost:3000/api/sessions/W1/send-media', files=files, data=data)
print(response.json())