Upload de Arquivo
POST /backend/uploads
Content-Type: multipart/form-data
Parâmetros do Form
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
file | file | Sim | Arquivo para upload (máx. 10 MB) |
type | string | Não | Tipo do arquivo: media ou audio (padrão: media) |
folder | string | Não | Pasta para organizar o arquivo no storage |
Exemplo com cURL
curl -X POST "https://api.leavo.ai/backend/uploads" \
-H "Authorization: Bearer sua_chave_aqui" \
-F "file=@foto_produto.jpg" \
-F "type=media"
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('type', 'media');
const response = await fetch('https://api.leavo.ai/backend/uploads', {
method: 'POST',
headers: {
'Authorization': 'Bearer sua_chave_aqui'
},
body: formData
});
const upload = await response.json();
console.log('URL do arquivo:', upload.file_url);
import requests
with open('foto_produto.jpg', 'rb') as f:
response = requests.post(
'https://api.leavo.ai/backend/uploads',
headers={'Authorization': 'Bearer sua_chave_aqui'},
files={'file': f},
data={'type': 'media'}
)
print('URL do arquivo:', response.json()['file_url'])
Resposta (200)
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"tenant_id": "d6b10acc-2307-413f-a4de-4c2edf3f9a70",
"filename": "foto_produto",
"file_type": "media",
"file_url": "https://api.leavo.ai/media/proxy/d6b10acc/550e8400.jpg",
"mime_type": "image/jpeg",
"size": 1048576,
"status": "PENDING",
"created_at": "2024-01-15T10:30:00Z"
}
Enviar Mídia em Mensagem
Após o upload, use afile_url para enviar como mensagem de mídia:
POST /backend/messages/send-media
Content-Type: multipart/form-data
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
channel_id | UUID | Sim | Canal de envio |
remote_jid | string | Sim | Destinatário (JID do WhatsApp) |
message_type | string | Sim | image, audio, video ou document |
content | string | Não | Legenda da mídia |
file | file | Sim | Arquivo de mídia |
Erros Comuns
| Código | Descrição |
|---|---|
400 | Arquivo não enviado ou formato inválido |
413 | Arquivo excede o limite de 10 MB |