For developers
Speech recognition, translation, text-to-speech, and language detection — one API, one key, canonical JSON responses. No per-service SDKs to learn.
curl https://api.omeife.ai/v1/asr \ -H "Authorization: Bearer omf_live_a1b2c3d4e5f6g7h8i9j0" \ -F "audio_file=@speech.wav"
API reference
/voicesReturns all voices currently enabled on the platform. Filter and group client-side by `language`.
{
"voices": [
{
"voice_id": "ig-female-01",
"language": "igbo",
"gender": "female",
"name": "Adaeze"
},
{
"voice_id": "en-ng-male-01",
"language": "nigerian_english",
"gender": "male",
"name": "Chidi"
}
]
}/ttsGenerates audio from text. If `voice_id` is omitted, the platform detects the text language and assigns a default voice; the response then includes `detected_language`. Generated audio URLs are valid for 24 hours.
| Field | Type | Required |
|---|---|---|
| text | string | required |
| voice_id | string | optional |
| output_format | mp3 | wav | pcm | optional |
{
"audio_url": "https://cdn.omeife.ai/audio/abc123.mp3",
"voice_id": "ig-female-01",
"output_format": "mp3",
"request_id": "req_01J9X4YB4T"
}/asrTranscribes an audio clip, automatically detecting the spoken language. Accepts wav, mp3, or m4a up to 60 seconds and 10 MB.
| Field | Type | Required |
|---|---|---|
| audio_file | string | required |
{
"transcription": "Ndewo, kedu ka i mere?",
"detected_language": "igbo",
"request_id": "req_01J9X512M3"
}/asr/{language}Forces transcription with a specific language model — no automatic detection. Use when the spoken language is known; accuracy is higher and latency slightly lower than auto mode.
| Field | Type | Required |
|---|---|---|
| language | path param | required |
| audio_file | string | required |
{
"transcription": "E kaaro, se daadaa ni?",
"language": "yoruba",
"request_id": "req_01J9X52T9Q"
}/language| Field | Type | Required |
|---|---|---|
| audio_file | string | required |
{
"detected_language": "hausa",
"confidence": 0.94,
"request_id": "req_01J9X53Y1V"
}/translate| Field | Type | Required |
|---|---|---|
| text | string | required |
| source_language | string | required |
| target_language | string | required |
{
"translated_text": "E kaaro",
"source_language": "english",
"target_language": "yoruba",
"request_id": "req_01J9X54Q7D"
}Auth & limits
Every request needs Authorization: Bearer omf_live_… (or omf_test_… in the console for evaluation). Create and revoke keys from the customer console — never share a key or embed one in browser code.
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. A 429 includes Retry-After. Limits are per key, set by your plan.
Text: 500 characters per request. Audio: wav, mp3, or m4a, up to 60 seconds and 10 MB. Requests over either limit return invalid_input or payload_too_large before anything is processed.
Get access
Tell us what you're building and we'll set you up with a live key sized to your use case. Prefer to evaluate the platform more broadly first? Use the pilot access form instead.
Tell us what you're building and which languages matter to you. We'll set you up with API access and support through evaluation.