Create transcription
Transcribes audio into text. Compatible with the OpenAI /v1/audio/transcriptions API.
Accepts an audio file (max 25 MB) as multipart/form-data and returns the transcript in the requested response_format. Available models include the EU-hosted Voxtral default and ElevenLabs Scribe (scribe_v2, scribe_v1) — swap the model string. The diarize, num_speakers, timestamps_granularity, tag_audio_events, and temperature fields are ElevenLabs Scribe options (ignored by Voxtral). Speaker segments and word timestamps are returned only when you request response_format=verbose_json with an ElevenLabs Scribe model: diarize=true adds a segments array (grouped by speaker) and timestamps_granularity (word/character) adds a words array. The json/text formats always return the plain transcript. Subtitle formats such as srt and vtt are not supported. Use /v2/models/all to discover audio transcription models.
Example request
curl https://api.deutschlandgpt.de/v2/audio/transcriptions \
-X POST \
-H "Authorization: Bearer $DGPT_API_KEY"curl https://api.deutschlandgpt.de/v2/audio/transcriptions \
-X POST \
-H "Authorization: Bearer $DGPT_API_KEY"import os, requests
response = requests.post(
"https://api.deutschlandgpt.de/v2/audio/transcriptions",
headers={"Authorization": f"Bearer {os.environ['DGPT_API_KEY']}"},
)
print(response.json())import os, requests
response = requests.post(
"https://api.deutschlandgpt.de/v2/audio/transcriptions",
headers={"Authorization": f"Bearer {os.environ['DGPT_API_KEY']}"},
)
print(response.json())const response = await fetch('https://api.deutschlandgpt.de/v2/audio/transcriptions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.DGPT_API_KEY}`,
},
});
console.log(await response.json());const response = await fetch('https://api.deutschlandgpt.de/v2/audio/transcriptions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.DGPT_API_KEY}`,
},
});
console.log(await response.json());Response
{
"text": "string"
}{
"text": "string"
}Transcription result. The media type depends on response_format.
Also available as text/plain
The response takes one of the following shapes:
Variant 1
Returned when response_format is json (default).
textstringrequiredThe transcribed text.
Variant 2
Returned when response_format is verbose_json. words and segments appear only on the ElevenLabs Scribe path.
textstringrequiredThe transcribed text.
wordsobject[]optionalWord-level timestamps. Present only on the ElevenLabs Scribe path when timestamps_granularity is word or character (omitted for none).
wordstringrequiredThe transcribed word or sound.
startnumberoptionalStart time of the token in seconds.
endnumberoptionalEnd time of the token in seconds.
typestringrequiredToken type. audio_event marks non-speech sounds such as laughter (see tag_audio_events).
speakerstringoptionalIdentifier of the speaker of this token. Present only when diarize=true.
segmentsobject[]optionalTranscript grouped into consecutive runs by speaker. Present only on the ElevenLabs Scribe path when diarize=true.
speakerstringoptionalIdentifier of the speaker for this segment.
textstringrequiredThe text spoken in this segment.
startnumberoptionalStart time of the segment in seconds.
endnumberoptionalEnd time of the segment in seconds.
usageobjectrequiredaudioSecondsnumberrequiredDuration of the input audio in seconds, as reported by the provider.
costInEuronumberrequiredAmount deducted from the workspace credit balance for this request, in EUR.
Response headers
X-Request-IDstringUnique request identifier (req_<id>). Include in support tickets.
Response codes
Transcription result. The media type depends on response_format.
Invalid request — missing file, file exceeds 25 MB, or provider error.
Unauthorized — missing or invalid API key.
Insufficient credits.
API key lacks permission for this model.
Model not found or not configured for this workspace.
Server error.