curl --request POST \
--url https://stt.omnia-voice.com/transcribe \
--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/transcribe', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://stt.omnia-voice.com/transcribe"
payload = "<string>"
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "audio/mpeg"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"transcript": "<string>",
"segments": [
{
"transcript": "<string>",
"confidence": 123,
"language": "fi-FI",
"isFinal": true
}
],
"audioSize": 123,
"estimatedDurationMs": 123,
"processingTime": 123,
"sessionId": "stt_1788786506604_8fd6cc541a02b620"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}{
"error": "<string>",
"message": "<string>",
"code": "INVALID_API_KEY"
}Transcribe a file
Synchronous transcription for audio up to 60 seconds and 10 MB.
The transcript comes back in the response. For longer audio use POST /batch.
Send the raw file bytes as the body with the matching Content-Type:
audio/mpeg (MP3), audio/wav, audio/flac, audio/ogg (Opus),
audio/webm (Opus), or audio/x-raw (16-bit 16 kHz mono PCM).
curl --request POST \
--url https://stt.omnia-voice.com/transcribe \
--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/transcribe', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://stt.omnia-voice.com/transcribe"
payload = "<string>"
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "audio/mpeg"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"transcript": "<string>",
"segments": [
{
"transcript": "<string>",
"confidence": 123,
"language": "fi-FI",
"isFinal": true
}
],
"audioSize": 123,
"estimatedDurationMs": 123,
"processingTime": 123,
"sessionId": "stt_1788786506604_8fd6cc541a02b620"
}{
"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\"}"
Body
The body is of type file.
Response
Transcription result
The full text.
Show child attributes
Show child attributes
Bytes received.
Audio length in milliseconds. This is what you are billed on.
Recognition time in milliseconds.
"stt_1788786506604_8fd6cc541a02b620"