Transcription API
Submit audio file, poll for the result, download the subtitles. Two requests, no SDK required.
Quick start
1Submit your audio
Upload a file with a single request. You get back a job id and a URL to check on it.
curl -X POST https://getsrt.app/api/v1/transcripts \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "audio=@/path/to/podcast.mp3"Response (202 Accepted):
{
"job_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"status": "pending",
"check_status_url": "https://getsrt.app/api/v1/transcripts/9b1deb4d-..."
}2Download the subtitles
Poll the status URL. While it's working you get JSON progress; once finished the same URL streams the .srt file directly.
curl -L https://getsrt.app/api/v1/transcripts/9b1deb4d-... \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-o transcript.srtWhile processing you'll see:
{ "status": "processing", "progress": 66, "completed_chunks": 2, "total_chunks": 3 }Good to know
- A valid API token is required for every request — anonymous uploads are rejected with 401.
- One credit is charged per second of audio, only on a successful transcription.
- You must have enough credits to cover the audio duration, or the upload is rejected with 402.
- Re-running a failed job is always free.
- Long files are split at natural silences and transcribed in parallel for speed.
- Audio defaults to English; pass
source_languageto transcribe another language or auto-detect it (see below).
Poll until done
job_id=9b1deb4d-...
until curl -sf https://getsrt.app/api/v1/transcripts/$job_id \
-H "Authorization: Bearer YOUR_API_TOKEN" -o transcript.srt \
&& head -c3 transcript.srt | grep -q "1"; do
echo "still working…"; sleep 1;
done
echo "saved transcript.srt"Specify a source language
By default the audio is assumed to be English. Add two optional fields to the same submit request to transcribe another language, or to translate the speech to English:
source_language— eitherauto(let whisper detect it) or one of the language codes listed below. Defaults toen.translate_to_english—1to translate the source speech to English (whisper's only supported translation target). Omit to keep the transcript in the source language.
curl -X POST https://getsrt.app/api/v1/transcripts \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "audio=@/path/to/podcast.mp3" \
-F "source_language=zh" \
-F "translate_to_english=1"The downloaded .srt filename carries a <source>-<target> suffix so you can tell jobs apart at a glance — e.g. podcast.zh-en.srt for Chinese audio translated to English, or podcast.en-en.srt when no translation was requested.
Supported source_language codes (100)
en Englishzh Chinesede Germanes Spanishru Russianko Koreanfr Frenchja Japanesept Portuguesetr Turkishpl Polishca Catalannl Dutchar Arabicsv Swedishit Italianid Indonesianhi Hindifi Finnishvi Vietnamesehe Hebrewuk Ukrainianel Greekms Malaycs Czechro Romanianda Danishhu Hungarianta Tamilno Norwegianth Thaiur Urduhr Croatianbg Bulgarianlt Lithuanianla Latinmi Maoriml Malayalamcy Welshsk Slovakte Telugufa Persianlv Latvianbn Bengalisr Serbianaz Azerbaijanisl Sloveniankn Kannadaet Estonianmk Macedonianbr Bretoneu Basqueis Icelandichy Armenianne Nepalimn Mongolianbs Bosniankk Kazakhsq Albaniansw Swahiligl Galicianmr Marathipa Punjabisi Sinhalakm Khmersn Shonayo Yorubaso Somaliaf Afrikaansoc Occitanka Georgianbe Belarusiantg Tajiksd Sindhigu Gujaratiam Amharicyi Yiddishlo Laouz Uzbekfo Faroeseht Haitian Creoleps Pashtotk Turkmennn Nynorskmt Maltesesa Sanskritlb Luxembourgishmy Myanmarbo Tibetantl Tagalogmg Malagasyas Assamesett Tatarhaw Hawaiianln Lingalaha Hausaba Bashkirjw Javanesesu Sundaneseyue Cantonese