Documentação completa da API do VozParaTexto para desenvolvedores.
Documentação completa da API REST do VozParaTexto para desenvolvedores. Aprenda autenticação, endpoints principais, webhooks e como integrar transcrição automática em seus sistemas.
Sistema seguro de autenticação via API tokens.
Envio automatizado de arquivos para transcrição.
Notificações automáticas sobre progresso.
Nunca compartilhe sua API Key publicamente. Armazene em variáveis de ambiente e nunca em código-fonte versionado.
Inclua sua API Key no header Authorization de todas as requisições:
curl -X POST https://api.vozparatexto.com.br/v1/transcribe \
-H "Authorization: Bearer SUA_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@audio.mp3"
POST /v1/upload
Content-Type: multipart/form-data
Parâmetros:
file (required) - Arquivo de áudio/vídeolanguage (optional) - Código do idioma (ex: "pt-BR")engine (optional) - Motor de transcrição ("ASSEMBLYAI", "WHISPER", "ELEVENLABS")speaker_detection (optional) - Ativar identificação de oradores (boolean)Resposta:
{
"id": "upload_abc123",
"status": "UPLOADED",
"duration": 120.5,
"fileSize": 2048000
}
POST /v1/transcribe
Content-Type: application/json
Body:
{
"uploadId": "upload_abc123",
"engine": "ASSEMBLYAI",
"speakerDetection": true,
"language": "pt-BR"
}
GET /v1/transcription/{id}/status
Resposta:
{
"id": "trans_xyz789",
"status": "COMPLETED",
"progress": 100,
"text": "Texto transcrito...",
"duration": 120.5,
"creditsUsed": 8
}
GET /v1/transcription/{id}/export?format=json
Formatos disponíveis: json, txt, srt, vtt, docx, pdf
| Endpoint | Limite | Janela | |---|---|---| | Upload | 10 requisições | 60 segundos | | Transcrição | 10 requisições | 60 segundos | | Consulta | 60 requisições | 60 segundos | | Export | 30 requisições | 60 segundos |
Use webhooks ao invés de polling para acompanhar o status das transcrições. Isso reduz drasticamente o número de requisições e melhora a eficiência da integração.
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
const API_KEY = process.env.VOZPARATEXTO_API_KEY;
const BASE_URL = 'https://api.vozparatexto.com.br/v1';
async function transcribeFile(filePath) {
// 1. Upload
const form = new FormData();
form.append('file', fs.createReadStream(filePath));
const upload = await axios.post(`${BASE_URL}/upload`, form, {
headers: {
'Authorization': `Bearer ${API_KEY}`,
...form.getHeaders()
}
});
// 2. Transcrever
const transcription = await axios.post(`${BASE_URL}/transcribe`, {
uploadId: upload.data.id,
engine: 'ASSEMBLYAI',
speakerDetection: true
}, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
return transcription.data;
}
import requests
import os
API_KEY = os.environ['VOZPARATEXTO_API_KEY']
BASE_URL = 'https://api.vozparatexto.com.br/v1'
def transcribe_file(file_path):
headers = {'Authorization': f'Bearer {API_KEY}'}
# 1. Upload
with open(file_path, 'rb') as f:
upload = requests.post(
f'{BASE_URL}/upload',
headers=headers,
files={'file': f}
)
# 2. Transcrever
transcription = requests.post(
f'{BASE_URL}/transcribe',
headers=headers,
json={
'uploadId': upload.json()['id'],
'engine': 'ASSEMBLYAI',
'speakerDetection': True
}
)
return transcription.json()
| Código | Significado | Ação Recomendada | |---|---|---| | 400 | Requisição inválida | Verifique parâmetros | | 401 | Não autenticado | Verifique sua API Key | | 403 | Sem permissão | Verifique permissões do token | | 429 | Rate limit excedido | Aguarde e tente novamente | | 500 | Erro interno | Tente novamente após 30 segundos |