Cria uma transcrição em lote (arquivo ou URL)
https://api.int8labs.com/v1/stt/transcriptionsCria uma transcrição em lote a partir de um arquivo (multipart/form-data) ou de uma URL (JSON). O job entra na fila e a resposta é 202; com wait=true e áudio de até 10 minutos, a resposta espera o fim e volta 200.
Corpo: arquivomultipart/form-data
filefileobrigatórioO áudio: até 500 MB e 4 horas.
keytermsarray<string>opcionalaté 100 itens, cada um com até 50 caracteresAté 100 termos (nomes próprios, produtos, jargão) que o decodificador prefere.
webhook_urlstringopcionalURLRecebe transcription.completed ou transcription.failed.
waitbooleanopcionalpadrão falseCom áudio de até 10 minutos, espera o fim e responde 200.
Corpo: URLapplication/json
urlstringobrigatórioURLhttp(s) público; até 500 MB, baixado em até 60 s.
keytermsarray<string>opcionalaté 100 itens, cada um com até 50 caracteresAté 100 termos (nomes próprios, produtos, jargão) que o decodificador prefere.
webhook_urlstringopcionalURLRecebe transcription.completed ou transcription.failed.
waitbooleanopcionalpadrão falseCom áudio de até 10 minutos, espera o fim e responde 200.
Resposta 200
Com wait=true e áudio de até 10 minutos: o job já terminado.
idstringobrigatóriostatusstringobrigatóriosourcestringobrigatórioinputstringobrigatóriofile_namestring | nullobrigatóriosize_bytesinteger | nullobrigatórioduration_msinteger | nullobrigatóriokeytermsarray<string>obrigatóriowebhook_urlstring | nullobrigatóriocost_brlnumber | nullobrigatórioCusto cobrado quando o job concluiu; job que falha não cobra.
errorobject | nullobrigatórioerror.codestringobrigatórioerror.messagestringobrigatórioresultobject | nullopcionalSó no job concluído; a lista não traz este campo.
result.textstringobrigatórioEm minúsculas, sem pontuação e com os números por extenso.
result.segmentsarray<object>obrigatórioCortes em pontos de silêncio, de até 30 s.
result.segments[].start_msintegerobrigatórioresult.segments[].end_msintegerobrigatórioresult.segments[].textstringobrigatórioresult.duration_msintegerobrigatóriocreated_atstringobrigatóriostarted_atstring | nullobrigatóriocompleted_atstring | nullobrigatórioexpires_atstring | nullobrigatórioO resultado vale 30 dias depois de terminar.
Resposta 202
O job entrou na fila.
idstringobrigatóriostatusstringobrigatóriosourcestringobrigatórioinputstringobrigatóriofile_namestring | nullobrigatóriosize_bytesinteger | nullobrigatórioduration_msinteger | nullobrigatóriokeytermsarray<string>obrigatóriowebhook_urlstring | nullobrigatóriocost_brlnumber | nullobrigatórioCusto cobrado quando o job concluiu; job que falha não cobra.
errorobject | nullobrigatórioerror.codestringobrigatórioerror.messagestringobrigatórioresultobject | nullopcionalSó no job concluído; a lista não traz este campo.
result.textstringobrigatórioEm minúsculas, sem pontuação e com os números por extenso.
result.segmentsarray<object>obrigatórioCortes em pontos de silêncio, de até 30 s.
result.segments[].start_msintegerobrigatórioresult.segments[].end_msintegerobrigatórioresult.segments[].textstringobrigatórioresult.duration_msintegerobrigatóriocreated_atstringobrigatóriostarted_atstring | nullobrigatóriocompleted_atstring | nullobrigatórioexpires_atstring | nullobrigatórioO resultado vale 30 dias depois de terminar.
Erros
| HTTP | Código | O que fazer |
|---|---|---|
| 400 | invalid_request | Leia a message, que diz o campo, e corrija o pedido. Repetir igual dá o mesmo erro. |
| 401 | invalid_api_key | Mande Authorization: Bearer int8_live_… no servidor, ou ?token=int8_tmp_… no WebSocket do navegador. |
| 401 | api_key_expired | Crie uma chave nova no console, ou peça um token novo em POST /v1/tokens. |
| 401 | api_key_revoked | Troque pela chave nova. Os tokens emitidos pela chave revogada param de valer junto. |
| 402 | insufficient_balance | Recarregue em console › Faturamento. O crédito do PIX entra em segundos. |
| 403 | ip_not_allowed | Inclua o IP (ou a faixa CIDR) na chave, em console › Chaves de API › Editar. |
| 403 | scope_denied | Edite os escopos da chave no console, ou emita o token com o escopo certo. |
| 413 | payload_too_large | Divida o pedido. Os limites estão na página Limites. |
| 415 | unsupported_media | Mande wav, mp3, m4a/aac, ogg/opus, flac, webm ou mp4. Confira se o arquivo abre num player. |
| 429 | rate_limited | Espere os segundos do Retry-After e repita. Na transcrição ao vivo, mande o áudio no ritmo da fala. |
| 429 | concurrency_limited | Espere um pedido terminar, ou enfileire do seu lado. |