curl --request POST \
--url https://stt.omnia-voice.com/batch \
--header 'Content-Type: audio/mpeg' \
--header 'X-API-Key: <api-key>' \
--data '"<string>"'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'audio/mpeg'},
body: JSON.stringify('<string>')
};
fetch('https://stt.omnia-voice.com/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://stt.omnia-voice.com/batch"
payload = "<string>"
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "audio/mpeg"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"operationId": "<string>",
"status": "processing",
"pollUrl": "/batch/batch_a1b2c3d4-…",
"audioBytes": 123
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}Start a long-audio transcription
Asynchronous transcription for audio up to 8 hours and 500 MB:
meetings, call recordings, podcasts. Returns an operation to poll with
GET /batch/{operationId}.
Accepts the same formats as /transcribe plus audio/mp4 (M4A / AAC).
Speaker diarization. Add X-Diarization: true, or minSpeakers,maxSpeakers
such as 2,4, to get a speakerTurns array on the result. Diarization requires
X-Languages: auto or explicit codes from:
cmn-Hans-CN, de-DE, en-GB, en-IN, en-US, es-ES, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR.
Direct uploads are capped at about 32 MB by the platform. For larger files use
the signed-URL flow: POST /batch/init, PUT the audio to the returned URL,
then POST /batch/{operationId}/start.
curl --request POST \
--url https://stt.omnia-voice.com/batch \
--header 'Content-Type: audio/mpeg' \
--header 'X-API-Key: <api-key>' \
--data '"<string>"'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'audio/mpeg'},
body: JSON.stringify('<string>')
};
fetch('https://stt.omnia-voice.com/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://stt.omnia-voice.com/batch"
payload = "<string>"
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "audio/mpeg"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"operationId": "<string>",
"status": "processing",
"pollUrl": "/batch/batch_a1b2c3d4-…",
"audioBytes": 123
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}Authorizations
Your Omnia API key (om_… or ck_…)
Headers
Comma-separated BCP-47 codes (up to 10), or auto on its own to detect the
language. Defaults to fi-FI,sv-SE. Also accepted as ?languages=.
See GET /languages for supported codes.
"fi-FI,sv-SE"
JSON passed through unchanged to usage webhooks.
"{\"callId\": \"abc-123\"}"
true, or minSpeakers,maxSpeakers (1–20, e.g. 2,4).
"true"
Body
The body is of type file.