Voltar
8 min de leitura
Recursos Avançados

Integração via API

Documentação completa da API do VozParaTexto para desenvolvedores.

Integração via API

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.

Recursos da API

Autenticação por Token

Sistema seguro de autenticação via API tokens.

  • Tokens únicos por aplicação
  • Renovação automática disponível
  • Controle granular de permissões
  • Rate limiting personalizado

Upload Programático

Envio automatizado de arquivos para transcrição.

  • Múltiplos formatos suportados
  • Upload direto ou via URL
  • Processamento assíncrono
  • Callback de status em tempo real

Webhooks Inteligentes

Notificações automáticas sobre progresso.

  • Eventos configuráveis
  • Retry automático em falhas
  • Assinatura de segurança
  • Múltiplos endpoints por evento

Autenticação

Obtendo sua API Key

Acesse o Dashboard

Faça login no VozParaTexto

Configurações de API

Vá em Configurações → API → Chaves

Gere uma nova chave

Clique em "Nova API Key" e defina permissões

Copie e armazene

Copie a chave gerada e armazene com segurança

Nunca compartilhe sua API Key publicamente. Armazene em variáveis de ambiente e nunca em código-fonte versionado.

Usando a API Key

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"

Endpoints Principais

Upload de Arquivo

POST /v1/upload
Content-Type: multipart/form-data

Parâmetros:

  • file (required) - Arquivo de áudio/vídeo
  • language (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
}

Iniciar Transcrição

POST /v1/transcribe
Content-Type: application/json

Body:

{
  "uploadId": "upload_abc123",
  "engine": "ASSEMBLYAI",
  "speakerDetection": true,
  "language": "pt-BR"
}

Consultar Status

GET /v1/transcription/{id}/status

Resposta:

{
  "id": "trans_xyz789",
  "status": "COMPLETED",
  "progress": 100,
  "text": "Texto transcrito...",
  "duration": 120.5,
  "creditsUsed": 8
}

Baixar Resultado

GET /v1/transcription/{id}/export?format=json

Formatos disponíveis: json, txt, srt, vtt, docx, pdf

Rate Limiting

| 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.

Exemplos de Integração

Node.js

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;
}

Python

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()

Tratamento de Erros

| 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 |

Segurança

  • Use HTTPS em todas as requisições
  • Armazene API Keys em variáveis de ambiente
  • Rotacione chaves regularmente
  • Use permissões mínimas necessárias
  • Implemente verificação de assinatura em webhooks

Continue aprendendo