Transcribe spoken audio into text using STT models.
Speech-to-text (STT) transcribes audio into text. You send the audio inline as base64 inside the JSON body — there is no multipart upload — and the model returns a transcript.
POST https://opendunes.com/v1/audio/transcriptionsAudio goes under input_audio, either inline as base64 plus its container
format, or as a reference to a file you already uploaded to the
Files API. Send one or the other, not both.
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | An STT model slug — filter the catalog with ?modality=transcription |
input_audio.data | string | Yes, unless file_id is set | Base64-encoded audio bytes |
input_audio.format | string | With data | One of wav, mp3, flac, m4a, ogg, webm, aac |
input_audio.file_id | string | Yes, unless data is set | Id of an uploaded audio file. The format is taken from the stored file, so you don't send one |
language | string | No | BCP-47 language hint, e.g. "ar", "fr", "en" — improves accuracy |
temperature | number | No | Sampling temperature, 0–1 (0 = deterministic) |
curl https://opendunes.com/v1/audio/transcriptions \
-H "Authorization: Bearer $OPENDUNES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "example-provider/stt-model",
"input_audio": { "data": "'"$(base64 -i clip.mp3)"'", "format": "mp3" },
"language": "ar"
}'Transcribing the same clip more than once? Upload it and reference it by id — the bytes travel over the wire once instead of on every call:
FILE_ID=$(curl -s https://opendunes.com/v1/files \
-H "Authorization: Bearer $OPENDUNES_API_KEY" \
-F file=@clip.mp3 | jq -r .id)
curl https://opendunes.com/v1/audio/transcriptions \
-H "Authorization: Bearer $OPENDUNES_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"example-provider/stt-model\",
\"input_audio\": { \"file_id\": \"$FILE_ID\" }
}"{
"text": "أهلاً وسهلاً! هذا اختبار لنظام التعرف على الكلام."
}Arabic (Modern Standard Arabic and Algerian Darija), French, and English are priority targets. Darija accuracy depends on the underlying model — check the model detail page for supported languages.
STT is billed in DA per second of audio processed (audio seconds are rounded up). Rates vary by model — see the pricing reference and the model catalog.
GET https://opendunes.com/api/models?modality=transcription