POST /v1/audio/transcriptions

Endpoint OpenAI-compatible pra transcrever áudio (Whisper). Aceita arquivos de até 25MB em multipart/form-data. Suporta pt-BR nativamente.

Autenticação

http
Authorization: Bearer sk-tokia-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Adicione o modelo Whisper à lista permitida da key (criar nova ou editar existente em /dashboard/keys).

Request fields (multipart)

CampoTipoObrigatórioDescrição
filearquivosimmp3, wav, m4a, mp4, webm, flac, ogg. Máx 25MB.
modelstringsimID Whisper no catálogo (ex: openrouter/openai/whisper-large-v3).
languagestringnãoISO-639-1 (pt, en). Acelera + melhora precisão.
promptstringnãoHint de contexto/glossário pro Whisper.
response_formatstringnãojson (default), text, srt, vtt, verbose_json.
temperaturenumbernão0-1. Default 0 (determinístico).

Exemplo cURL

bash
curl https://api.usetokia.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $TOKIA_KEY" \
  -F file=@reuniao.mp3 \
  -F model=openrouter/openai/whisper-large-v3 \
  -F language=pt

Exemplo Python (SDK OpenAI)

python
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKIA_KEY"],
    base_url="https://api.usetokia.com/v1",
)

with open("reuniao.mp3", "rb") as f:
    result = client.audio.transcriptions.create(
        model="openrouter/openai/whisper-large-v3",
        file=f,
        language="pt",
    )
print(result.text)

Response (json)

json
{
  "text": "Bom dia, a reunião de hoje começou às 9h..."
}

Limites

LimiteValor
Tamanho máximo do arquivo25 MB
Duração recomendadaaté ~30 min (split antes pra arquivos longos)
Formatos aceitosmp3, mp4, mpeg, mpga, m4a, wav, webm, flac, ogg

Códigos de erro

Tabela completa em /docs/api/errors. Específicos do Whisper:

HTTPcodeCausa
400invalid_content_typeHeader não é multipart/form-data.
400empty_bodyNão enviou nenhum campo (file ausente).
413(Fastify default)Arquivo > 25MB. Comprimir ou dividir.