Speech-to-Text-API für deine Audio- und Videodateien

Mit der Speech-to-Text-API transkribierst du Aufnahmen samt Zeitstempeln, Sprache je Segment und auf Wunsch Sprecherzuordnung. Bis 95 MB reicht ein Request. Größere Dateien bis 2 GB lädst du in Teilen hoch und setzt den Upload nach einer Unterbrechung fort.

  • Bis 95 MB in einem Request
  • Bis 2 GB mit fortsetzbarem Upload
  • Mediendateien werden 24 Stunden nach Abschluss gelöscht

Wähle den Upload passend zur Dateigröße

Audio und Video direkt senden
Die API nimmt MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM und MKV an. Die Datei braucht eine Tonspur. Du musst das Audio eines Videos nicht vorher separat exportieren.
Bis 95 MB mit Multipart
Sende kleinere Dateien als multipart/form-data an POST /v1/transcriptions. So kannst du eine Audiodatei per API transkribieren, ohne zuerst einen Upload zu reservieren.
Große Dateien in Teilen hochladen
Reserviere den Upload, sende die Chunks von etwa 8 MiB und schließe ihn ab. Das funktioniert bis 2 GB. Bricht die Verbindung ab, musst du nur die fehlenden Teile nachreichen.
Aufnahmen bis 5 Stunden
Speech-to-Text verarbeitet Aufnahmen bis 5 Stunden. Ist die Aufnahme länger, endet der Auftrag mit media_too_long. Dafür berechnen wir nichts.
Das Transkript bleibt, die Datei nicht
24 Stunden nach dem endgültigen Status löschen wir die hochgeladenen Medien. Das Transkript bleibt in deinem Konto, bis du es selbst löschst.

Bis 95 MB genügt ein Multipart-Request

Die Aufnahme gehört in den Multipart-Teil file. Als weitere Formularfelder kannst du language, diarize, source und webhook_url senden. Der Upload-Guide zeigt den Request. Mit einem Webhook erfährst du, wann die Verarbeitung endet.

Für eine kleinere Aufnahme, die bereits auf deinem Server liegt, ist Multipart ein guter Einstieg. Lass deinen HTTP-Client die Multipart-Boundary setzen. Sende die Dateidaten selbst, keinen lokalen Pfad als String in JSON. Eine leere Datei oder ein nicht unterstütztes Format wird auch durch wiederholte Requests nicht gültig.

Prüfe Größe und Laufzeit getrennt. Eine stark komprimierte Aufnahme kann unter 95 MB bleiben und trotzdem länger als 5 Stunden sein. Ein kurzes hochauflösendes Video kann dagegen schon für Multipart zu groß sein. Die Bytes entscheiden über den Upload-Weg, die Laufzeit über das Verarbeitungslimit.

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

Reserviere den Upload, bevor du Chunks sendest

Für Dateien bis 2 GB reservierst du zunächst einen Upload mit Dateiname und Größe. Du bekommst den Chunk-Plan und einen X-Upload-Token für genau diesen Upload. Die komplette Abfolge steht im Guide für Chunk-Uploads.

Halte dich an den zurückgegebenen Plan. Jeder Eintrag nennt Index, Byte-Offset und Größe. Lies jeweils genau diesen Bereich aus der Datei; der letzte Chunk kann kleiner sein. Mit dem Upload-Token autorisierst du die binären PUT-Requests. Er gilt 1 Stunde und ersetzt nicht deinen allgemeinen API-Schlüssel.

Nutze für die Reservierung einen festen Idempotency-Key. Ist der Token abgelaufen, wiederhole die Reservierung mit demselben Schlüssel und denselben Parametern. So bekommst du einen frischen Token für den bestehenden Upload. Eine neue Reservierung nach jeder Unterbrechung hinterlässt unnötig offene Aufträge.

Upload reservieren
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"}}'

Fehlende Chunks nachreichen, dann die Verarbeitung starten

Sende jeden Chunk per PUT mit dem Upload-Token an seine URL. Danach schließt du den Upload ab. Erst wenn alle Teile geprüft sind, kommt die Transkription in die Warteschlange. Die Routen für Status und Abschluss stehen in der Upload-Referenz.

Nach einer Unterbrechung liest du mit GET /v1/transcriptions/:id/upload den Fortschritt. Vergleiche received_chunks mit deinem Plan und sende nur die fehlenden Teile. Ein erneut gesendeter Chunk ersetzt den bisherigen; seine Größe muss weiter dem Plan entsprechen. Ein 401 kann auf einen abgelaufenen Token hinweisen.

Meldet der Abschluss 409 upload_incomplete, nennt die Antwort die fehlenden Indizes. Reiche diese Chunks nach. Sobald der Auftrag eingereiht ist, fragst du den Transkriptionsstatus ab oder wartest auf den Webhook. Zeige Upload-Fortschritt und Verarbeitung in deiner Oberfläche getrennt an.

Chunk senden und Upload abschließen
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"

Ein vollständiger Upload ist noch kein fertiges Transkript

awaiting_upload bedeutet, dass die API auf Dateidaten wartet. Die Transkription läuft zu diesem Zeitpunkt noch nicht. Erst nach dem erfolgreichen Abschluss folgen Warteschlange und Verarbeitung. Bricht die Verbindung direkt nach dem Abschluss ab, frage zuerst den Status des Auftrags ab, bevor du etwas wiederholst.

Pro Team können bis zu 20 Upload-Reservierungen offen sein. Nach 24 Stunden brechen wir unvollständige Uploads ab und löschen ihre Chunks. Nach dem endgültigen Transkriptionsstatus gilt eine eigene Frist: Dann löschen wir die Medien nach 24 Stunden. Soll deine Anwendung später noch Audio abspielen, musst du die Originaldatei selbst aufbewahren.

Für die Arbeit mit dem fertigen Text helfen der Audio-zu-Text-Guide und der Leitfaden für Forschungsinterviews. Dort geht es um die Prüfung der Aufnahme, die Zuordnung von Beteiligten und nachvollziehbare Zitate.

Mit 60 kostenlosen Minuten starten

Bestätige deine E-Mail-Adresse und teste mit 60 kostenlosen Minuten. Du bekommst sie einmalig, ohne Kreditkarte.

API-Schlüssel erstellen

Häufige Fragen

Deine Frage ist nicht dabei? Schreib dem Support

Welche Dateiformate unterstützt die API?

MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM und MKV mit Tonspur. Bei einer anderen Dateiendung antwortet die API mit 422 unsupported_media.

Wie groß darf eine Datei sein?

Bis 95 MB in einem Multipart-Request, bis 2 GB beim Upload in Chunks. Dein Tarif kann eine niedrigere Grenze vorgeben. Über dem erlaubten Limit bekommst du 413 media_too_large. Die Transkription kostet 1 Credit je Audiominute.

Wie lange speichert ihr meine Datei?

Wir löschen die Medien 24 Stunden nach dem endgültigen Status. Bleibt ein Upload 24 Stunden unvollständig, brechen wir ihn ab und löschen die Chunks. Das fertige Transkript behältst du, bis du es selbst löschst.

Bekomme ich auch eine Sprecherzuordnung?

Ja. Setze diarize=true, dann erhältst du Labels wie Speaker 1 und Speaker 2. Hochgeladene Dateien transkribieren wir immer mit KI-Speech-to-Text.