Como usar a Audio API
Envie um áudio e receba o texto em JSON. A request fica aberta até o Whisper terminar (síncrono — use timeout ≥ 3 minutos).
Base https://audio-api.autoenvia.com.br
Health GET /api/health
Transcrever POST /api/transcribe
1 Base URL
Use sempre esta URL em produção (já está na raiz, sem /audio-api):
Base URL
https://audio-api.autoenvia.com.br
| Endpoint | URL completa |
|---|---|
| Health | https://audio-api.autoenvia.com.br/api/health |
| Transcrever | https://audio-api.autoenvia.com.br/api/transcribe |
| Admin / tokens | https://audio-api.autoenvia.com.br/admin/tokens |
Timeout do cliente
Configure pelo menos 180000 ms (3 min). Timeout curto parece “erro”, mas o servidor ainda pode estar transcrevendo.
2 Autenticação
POST /api/transcribe exige Bearer token.
Crie o token em
Admin → Tokens
(o valor aparece uma vez na criação).
Header
Authorization: Bearer SEU_TOKEN
GET /api/health— público, sem token- Token inválido → 401
- Token inativo / IP bloqueado → 403
3 Health check
Teste se a API está no ar:
GET
https://audio-api.autoenvia.com.br/api/health
Resposta 200
{
"success": true,
"status": "ok"
}
4 Transcrever áudio
POST
https://audio-api.autoenvia.com.br/api/transcribe
com multipart/form-data.
| Campo | Obrigatório | Descrição |
|---|---|---|
audio | Sim | Arquivo (.ogg, .opus, .mp3, .wav, .m4a) |
language | Não | Ex.: pt, en, auto |
prompt | Não | Contexto inicial (até 500 caracteres) |
enhance | Não | true/false — melhorar áudio (WhatsApp) |
trim | Não | true/false — cortar silêncio |
Limites
Máximo 25 MB por arquivo · rate limit padrão 30 requests / 60 s por token.
5 Respostas
Sucesso (200)
JSON
{
"success": true,
"transcription": "texto reconhecido...",
"duration_ms": 15230,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"model": "small-q5_1",
"language": "pt",
"enhanced": true,
"trimmed": true,
"engine": "server",
"vad": true
}
}
Erros comuns
| HTTP | Quando |
|---|---|
| 400 | Sem arquivo, extensão inválida ou opções inválidas |
| 401 | Bearer ausente ou token inválido |
| 403 | IP bloqueado ou token inativo |
| 413 | Arquivo maior que o limite |
| 429 | Rate limit |
| 500 | Falha no FFmpeg / Whisper |
6 Exemplos cURL (copiar e colar)
Troque só SEU_TOKEN e o caminho do áudio.
Health
PowerShell
curl.exe https://audio-api.autoenvia.com.br/api/health
Bash
curl https://audio-api.autoenvia.com.br/api/health
Transcrever (mínimo)
PowerShell
curl.exe -X POST https://audio-api.autoenvia.com.br/api/transcribe `
-H "Authorization: Bearer SEU_TOKEN" `
-F "audio=@C:\caminho\audio.ogg"
Bash
curl -X POST https://audio-api.autoenvia.com.br/api/transcribe \
-H "Authorization: Bearer SEU_TOKEN" \
-F "audio=@/caminho/audio.ogg"
Transcrever com opções
PowerShell
curl.exe -X POST https://audio-api.autoenvia.com.br/api/transcribe `
-H "Authorization: Bearer SEU_TOKEN" `
-F "audio=@C:\caminho\audio.ogg" `
-F "language=pt" `
-F "prompt=Conversa em português" `
-F "enhance=true" `
-F "trim=true"
Bash
curl -X POST https://audio-api.autoenvia.com.br/api/transcribe \
-H "Authorization: Bearer SEU_TOKEN" \
-F "audio=@/caminho/audio.ogg" \
-F "language=pt" \
-F "prompt=Conversa em português" \
-F "enhance=true" \
-F "trim=true"
7 Testar no Postman
-
Health —
GEThttps://audio-api.autoenvia.com.br/api/health(sem Auth) → Send. -
Transcrever —
POSThttps://audio-api.autoenvia.com.br/api/transcribe - Authorization → Type: Bearer Token → cole o token do admin.
-
Body → form-data → chave
audio, tipo File, escolha o áudio. -
(Opcional) Adicione Text:
language=pt,enhance=true,trim=true. - Settings → Request timeout ≥ 180000 → Send.
Dica
Não defina Content-Type manualmente — o Postman monta o boundary do multipart sozinho.