Een speech-to-text-API voor je audio- en videobestanden

Met de speech-to-text-API zet je een audio- of videobestand om in tekst met tijdstempels en een taal per segment. Sprekerherkenning zet je aan als je die nodig hebt. Stuur tot 95 MB in één request, of upload tot 2 GB in delen die je na een onderbreking kunt hervatten.

  • Tot 95 MB in één request
  • Tot 2 GB in delen, met hervatten
  • Media verwijderd 24 uur na de eindstatus

Kies de uploadroute die bij je bestand past

Audio en video zonder omweg
Upload mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm of mkv. Het bestand moet een audiotrack bevatten.
Klein bestand? Eén request
Stuur bestanden tot 95 MB als multipart/form-data naar POST /v1/transcriptions. Meer uploadstappen zijn dan niet nodig.
Grote bestanden in delen
Reserveer een upload tot 2 GB, stuur de delen van ongeveer 8 MiB en rond de upload af. Valt de verbinding weg, dan ga je verder met de ontbrekende delen.
Opnames tot 5 uur
AI-transcriptie accepteert opnames tot 5 uur. Duurt de opname langer, dan krijg je media_too_long en betaal je niets.
Het transcript blijft, de media niet
We verwijderen het geüploade bestand 24 uur nadat de transcriptie een eindstatus bereikt. Het transcript blijft bewaard totdat je het zelf verwijdert.

Een audiobestand transcriberen via de API

Stuur de opname in het multipart-veld file. Je kunt language, diarize, source en webhook_url meegeven. De uploaddocumentatie toont het volledige request. Met een webhook hoor je wanneer de verwerking klaar is of mislukt.

Deze route is handig als je server het bestand al op schijf heeft. Laat je HTTP-client de multipart-boundary instellen en verstuur de echte bestandsbytes. Een lokaal pad als tekst in JSON is geen upload. Een leeg bestand of verkeerde extensie vraagt om betere invoer, niet om eindeloze retries.

Controleer bestandsgrootte en speelduur apart. Een sterk gecomprimeerde opname kan onder 95 MB blijven maar langer dan 5 uur duren. Een korte video met hoge resolutie kan juist te groot zijn voor één request. De grootte bepaalt de uploadroute; de duur bepaalt of speech-to-text de opname accepteert.

cURL
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F [email protected] \
  -F language=auto

Een upload opzetten die je kunt hervatten

Reserveer de upload met de bestandsnaam en grootte. Je krijgt een plan met de te versturen delen en een X-Upload-Token voor alleen deze upload. De stappen voor chunked uploads beschrijven de hele volgorde.

Volg het plan uit de response. Elk deel heeft een index, byte-offset en grootte. Lees precies dat bereik uit je bestand; het laatste deel kan kleiner zijn. Gebruik het uploadtoken voor de binaire PUT-requests. Het is 1 uur geldig en vervangt je gewone API-sleutel niet.

Gebruik een vaste Idempotency-Key als je de reservering mogelijk moet herhalen. Is het token verlopen, stuur dan dezelfde sleutel en parameters opnieuw: je krijgt een nieuw token voor de bestaande upload. Zo raak je de voortgang niet kwijt tussen onnodige nieuwe reserveringen.

Een upload reserveren
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"}}'

Stuur de delen en geef aan dat de upload compleet is

Stuur elk deel met PUT naar de bijbehorende URL, met het uploadtoken. Rond daarna de upload af. Pas als alle delen kloppen, zetten we de transcriptie in de wachtrij. De upload-endpoints geven je de voortgang en de afrondingsroute.

Vraag voor het hervatten GET /v1/transcriptions/:id/upload op. Vergelijk received_chunks met je oorspronkelijke plan en verstuur alleen wat ontbreekt. Verstuur je een deel opnieuw, dan vervangt dat het eerdere deel; de grootte moet nog steeds kloppen. Een 401 kan betekenen dat je token is verlopen, niet dat je het mediabestand opnieuw moet maken.

Bij 409 upload_incomplete krijg je de ontbrekende indexen terug. Vul die aan en rond de upload opnieuw af. Zodra de transcriptie in de wachtrij staat, volg je de status of wacht je op de webhook. Laat je interface onderscheid maken tussen uploadvoortgang en transcriptievoortgang.

Een deel versturen en de upload afronden
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"

Een geüpload bestand is nog geen afgerond transcript

Bij awaiting_upload wacht de reservering nog op het bestand. Na het versturen volgen de controle van de upload en pas daarna de verwerking. Verlies je de verbinding na het afronden, lees dan eerst de status. Ga er niet vanuit dat je opnieuw moet afronden.

Per team kun je maximaal 20 open uploadreserveringen hebben. Rond je een reservering niet binnen 24 uur af, dan annuleren we die en verwijderen we de delen. Na de eindstatus van een transcriptie verwijderen we de media na 24 uur. Het transcript blijft totdat je het verwijdert. Bewaar zelf de audio als je app die later nog moet kunnen afspelen.

De bytes versturen is het begin. Maak je een uploadfunctie voor gebruikers, lees dan ook hoe je opnames voorbereidt en tekst controleert. Voor onderzoek helpt de interviewgids je om deelnemers, citaten en notities goed uit elkaar te houden.

Probeer het met 60 gratis minuten

Bevestig je e-mailadres en je krijgt 60 gratis minuten. Je hoeft geen creditcard op te geven.

Maak een API-sleutel aan

Veelgestelde vragen

Nog een vraag? Neem contact op

Welke bestanden kan ik uploaden?

mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm en mkv, met een audiotrack. Bij een andere extensie krijg je 422 unsupported_media.

Hoe groot mag mijn bestand zijn?

Tot 95 MB in één request, of tot 2 GB in delen. Je abonnement kan een lagere limiet hebben. Een te groot bestand levert 413 media_too_large op.

Hoelang bewaren jullie mijn bestanden?

Tot 24 uur na de eindstatus van de transcriptie. Een upload die je niet binnen 24 uur afrondt, annuleren we; de delen verwijderen we dan ook. Het transcript blijft bewaard totdat je het zelf verwijdert.

Kan ik ook laten aangeven wie er spreekt?

Ja. Zet diarize op true voor labels als Speaker 1 en Speaker 2. Geüploade bestanden verwerken we altijd met AI-speech-to-text.