📚 Up API - Documentação

← Voltar ao Painel

🔐 Autenticação

Todas as requisições devem incluir a API Key no header:

x-api-key: sua-api-key-aqui

Ou como query parameter:

?apikey=sua-api-key-aqui

📱 Gerenciamento de Instâncias

POST /instance/create

Cria uma nova instância e gera o QR Code para conexão

Body (JSON):
{
  "name": "minha-instancia"
}
Resposta:
{
  "success": true,
  "instance": {
    "name": "minha-instancia",
    "status": "qrcode",
    "qrCode": "...",
    "qrCodeBase64": "data:image/png;base64,..."
  }
}
GET /instance/list

Lista todas as instâncias criadas

Resposta:
{
  "instances": [
    { "name": "inst1", "status": "connected", "phone": "5511999999999" },
    { "name": "inst2", "status": "qrcode", "phone": null }
  ]
}
GET /instance/:name/status

Retorna o status detalhado de uma instância

GET /instance/:name/qrcode

Retorna o QR Code em formato JSON (qrCode e qrCodeBase64)

GET /instance/:name/qrcode/image

Retorna o QR Code como imagem PNG (pode abrir no navegador)

POST /instance/:name/reconnect

Força reconexão da instância

POST /instance/:name/logout

Desconecta a instância do WhatsApp

DELETE /instance/:name

Remove a instância completamente

💬 Envio de Mensagens

Formato do número: Use apenas números com código do país e DDD.
Exemplo: 5511999999999 (Brasil + SP + número)
POST /message/:instance/text

Envia uma mensagem de texto

number string Número do destinatário *obrigatório
message string Texto da mensagem *obrigatório
Body (JSON):
{
  "number": "5511999999999",
  "message": "Olá! Esta é uma mensagem de teste."
}
POST /message/:instance/image

Envia uma imagem

number string Número do destinatário *obrigatório
imageUrl string URL da imagem *obrigatório
caption string Legenda da imagem (opcional)
Body (JSON):
{
  "number": "5511999999999",
  "imageUrl": "https://exemplo.com/imagem.jpg",
  "caption": "Veja esta imagem!"
}
POST /message/:instance/document

Envia um documento/arquivo

Body (JSON):
{
  "number": "5511999999999",
  "documentUrl": "https://exemplo.com/arquivo.pdf",
  "filename": "documento.pdf",
  "caption": "Segue o documento"
}
POST /message/:instance/audio

Envia um áudio

Body (JSON):
{
  "number": "5511999999999",
  "audioUrl": "https://exemplo.com/audio.mp3"
}
GET /message/:instance/history

Retorna o histórico de mensagens enviadas/recebidas

limit number Quantidade de mensagens (padrão: 50)

📝 Exemplos de Uso

cURL - Criar instância

curl -X POST http://localhost:3000/instance/create \
  -H "Content-Type: application/json" \
  -H "x-api-key: minha-chave-secreta" \
  -d '{"name": "meu-whatsapp"}'

cURL - Enviar mensagem

curl -X POST http://localhost:3000/message/meu-whatsapp/text \
  -H "Content-Type: application/json" \
  -H "x-api-key: minha-chave-secreta" \
  -d '{"number": "5511999999999", "message": "Olá!"}'

JavaScript (fetch)

// Enviar mensagem
const response = await fetch('http://localhost:3000/message/meu-whatsapp/text', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'minha-chave-secreta'
  },
  body: JSON.stringify({
    number: '5511999999999',
    message: 'Olá do JavaScript!'
  })
});

const data = await response.json();
console.log(data);

Python (requests)

import requests

url = "http://localhost:3000/message/meu-whatsapp/text"
headers = {
    "Content-Type": "application/json",
    "x-api-key": "minha-chave-secreta"
}
data = {
    "number": "5511999999999",
    "message": "Olá do Python!"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())

Node.js (axios)

const axios = require('axios');

axios.post('http://localhost:3000/message/meu-whatsapp/text', {
  number: '5511999999999',
  message: 'Olá do Node.js!'
}, {
  headers: { 'x-api-key': 'minha-chave-secreta' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

PHP

$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => "http://localhost:3000/message/meu-whatsapp/text",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "x-api-key: minha-chave-secreta"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "number" => "5511999999999",
        "message" => "Olá do PHP!"
    ])
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;