Comece com um upload multipart
Envie os bytes no campo file. Você também pode incluir language, diarize, source e webhook_url como campos do formulário. Veja o request multipart completo e como receber uma notificação por webhook.
Se o arquivo já está no servidor, basta enviá-lo com seu cliente HTTP. Deixe o cliente montar o boundary do multipart. Um caminho local dentro de um JSON não envia o arquivo: o request precisa levar os bytes. Se o arquivo estiver vazio ou tiver uma extensão incompatível, corrija isso antes de tentar de novo.
Confira tamanho e duração separadamente. Um áudio muito comprimido pode ter menos de 95 MB e passar de 5 horas. Um vídeo curto em alta resolução pode ultrapassar o limite do multipart. Escolha a forma de upload pelo tamanho em bytes e valide a duração à parte.
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected] \
-F language=autoReserve o upload antes de enviar um arquivo grande
Informe o nome e o tamanho do arquivo para reservar o upload. A resposta traz o plano das partes e um X-Upload-Token exclusivo desse envio. A documentação de upload em partes mostra a sequência completa.
Siga o plano retornado pela API. Cada parte tem índice, posição inicial em bytes e tamanho. Leia exatamente esse intervalo do arquivo; a última parte pode ser menor. O token autentica os requests PUT e vale por 1 hora, somente para esse upload. Ele não substitui sua chave de API nos demais endpoints.
Use a mesma Idempotency-Key se precisar repetir a reserva. Se o token expirar, repita a reserva com essa chave e os mesmos parâmetros para receber um token novo para o upload existente. Criar uma reserva a cada interrupção deixa transcrições abertas sem necessidade e dificulta acompanhar o envio.
curl -X POST "https://api.transcript1.com/v1/transcriptions" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Idempotency-Key: interview-2026-10-13" \
-H "Content-Type: application/json" \
-d '{"upload":{"filename":"interview.m4a","size":48210334,"mime_type":"audio/mp4"}}'Envie as partes e confirme quando terminar
Faça um PUT para cada URL recebida, usando o token de upload. Depois confirme a conclusão. O transcript1 verifica as partes e coloca a transcrição na fila. Veja os endpoints de upload para consultar o progresso e concluir o envio.
Para retomar, consulte GET /v1/transcriptions/:id/upload e compare received_chunks com o plano original. Envie só as partes ausentes. Reenviar uma parte substitui a anterior, mas o tamanho precisa continuar igual ao previsto. Um 401 pode indicar que o token expirou; não é motivo para gerar o arquivo de novo.
Se faltar alguma parte, a conclusão retorna 409 upload_incomplete com os índices que você precisa enviar. Quando o upload estiver completo e a transcrição entrar na fila, consulte seu status ou espere o webhook. Na interface, diferencie o progresso do upload do progresso da transcrição.
curl -X PUT "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/chunks/0" \
-H "X-Upload-Token: t1u_..." \
-H "Content-Type: application/octet-stream" \
--data-binary @chunk-0.bin
curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/complete" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Upload concluído não significa transcrição pronta
Uma reserva em awaiting_upload ainda não está transcrevendo nada. Primeiro os bytes chegam, depois verificamos o upload e só então começamos a processar a mídia. Se a conexão cair depois da confirmação, consulte a transcrição antes de repetir o request de conclusão.
Cada equipe pode manter até 20 reservas abertas. Se você não concluir o upload em 24 horas, a reserva é cancelada e as partes são excluídas. Após o processamento chegar ao status final, excluímos o arquivo de mídia em 24 horas. O texto fica até você excluí-lo. Guarde o original se sua aplicação precisar reproduzir o áudio depois.
A integração não termina na transferência. Se você está criando uma tela de upload, veja o guia de áudio para texto. Para entrevistas, confira como manter participantes, citações e gravações ligados no fluxo de pesquisa.