Our Audio Transcription API accepts BCP47 language tags. This page lists every tag the API accepts today (89 locale codes, plus multi for multilingual transcription).
Languages
| Language | Language Tags |
|---|
| Arabic | ar, ar-AE, ar-SA, ar-QA, ar-KW, ar-SY, ar-LB, ar-PS, ar-JO, ar-EG, ar-SD, ar-TD, ar-MA, ar-DZ, ar-TN, ar-IQ, ar-IR |
| Belarusian | be |
| Bengali | bn |
| Bosnian | bs |
| Bulgarian | bg |
| Catalan | ca |
| Chinese (Mandarin, Simplified) | zh, zh-CN, zh-Hans |
| Chinese (Mandarin, Traditional) | zh-TW, zh-Hant |
| Chinese (Cantonese, Traditional) | zh-HK |
| Croatian | hr |
| Czech | cs |
| Danish | da, da-DK |
| Dutch | nl |
| English | en, en-US, en-CA, en-IE, en-AU, en-GB, en-NZ, en-IN |
| Estonian | et |
| Finnish | fi |
| Flemish | nl-BE |
| French | fr, fr-CA |
| German | de, de-CH |
| Greek | el |
| Gujarati | gu, gu-IN |
| Hebrew | he |
| Hindi | hi |
| Hungarian | hu |
| Indonesian | id |
| Italian | it |
| Japanese | ja |
| Kannada | kn |
| Korean | ko, ko-KR |
| Latvian | lv |
| Lithuanian | lt |
| Macedonian | mk |
| Malay | ms |
| Marathi | mr |
| Norwegian | no |
| Persian | fa |
| Polish | pl |
| Portuguese | pt, pt-BR, pt-PT |
| Romanian | ro |
| Russian | ru |
| Serbian | sr |
| Slovak | sk |
| Slovenian | sl |
| Spanish | es, es-419 |
| Swedish | sv, sv-SE |
| Tagalog | tl |
| Tamil | ta |
| Telugu | te |
| Thai | th, th-TH |
| Turkish | tr |
| Ukrainian | uk |
| Urdu | ur |
| Vietnamese | vi |
Tags not listed here are rejected with a validation error on upload and streaming endpoints. Use exact casing (for example en-US, not en-us).
Multilingual Support
Multilingual transcription detects and transcribes multiple languages in the same audio. Use it when speakers switch languages during the encounter.
Automatic multilingual routing
If you pass any of the following base language tags, the API routes the request through multilingual code-switching (the same upstream behavior as language=multi):
| Language | Language Tags |
|---|
| Dutch | nl |
| French | fr |
| German | de |
| Hindi | hi |
| Italian | it |
| Japanese | ja |
| Portuguese | pt |
| Russian | ru |
| Spanish | es |
For example, language=es and language=multi both use multilingual code-switching. To target a single Spanish locale without that routing, use a regional tag such as es-419.
Explicit multi tag
You may also pass multi directly:
wss://api.sully.ai/v1/audio/transcriptions/stream?language=multi&sample_rate=16000
multi is accepted on streaming endpoints. File upload accepts the locale codes in the table above; use multi on streaming when you want the same multilingual behavior without picking a base language first.