For developers

One REST call away.

Speech recognition, translation, text-to-speech, and language detection — one API, one key, canonical JSON responses. No per-service SDKs to learn.

POST /v1/asrcurl
curl https://api.omeife.ai/v1/asr \
  -H "Authorization: Bearer omf_live_a1b2c3d4e5f6g7h8i9j0" \
  -F "audio_file=@speech.wav"

API reference

Every endpoint, straight from the contract.

GET/voices

List available TTS voices

Returns all voices currently enabled on the platform. Filter and group client-side by `language`.

GET /voices → 200json
{
  "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"
    }
  ]
}
Errors:unauthorizedrate_limitedinternal_error
POST/tts

Convert text to speech

Generates 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.

FieldTypeRequired
textstringrequired
voice_idstringoptional
output_formatmp3 | wav | pcmoptional
POST /tts → 200json
{
  "audio_url": "https://cdn.omeife.ai/audio/abc123.mp3",
  "voice_id": "ig-female-01",
  "output_format": "mp3",
  "request_id": "req_01J9X4YB4T"
}
Errors:invalid_inputunauthorizedunsupported_languagerate_limitedinternal_error
POST/asr

Transcribe audio (automatic language detection)

Transcribes an audio clip, automatically detecting the spoken language. Accepts wav, mp3, or m4a up to 60 seconds and 10 MB.

FieldTypeRequired
audio_filestringrequired
POST /asr → 200json
{
  "transcription": "Ndewo, kedu ka i mere?",
  "detected_language": "igbo",
  "request_id": "req_01J9X512M3"
}
Errors:invalid_inputunauthorizedpayload_too_largerate_limitedinternal_error
POST/asr/{language}

Transcribe audio with a forced language model

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.

FieldTypeRequired
languagepath paramrequired
audio_filestringrequired
POST /asr/{language} → 200json
{
  "transcription": "E kaaro, se daadaa ni?",
  "language": "yoruba",
  "request_id": "req_01J9X52T9Q"
}
Errors:invalid_inputunauthorizedpayload_too_largeunsupported_languagerate_limitedinternal_error
POST/language

Detect the language of spoken audio

FieldTypeRequired
audio_filestringrequired
POST /language → 200json
{
  "detected_language": "hausa",
  "confidence": 0.94,
  "request_id": "req_01J9X53Y1V"
}
Errors:invalid_inputunauthorizedpayload_too_largerate_limitedinternal_error
POST/translate

Translate text between supported languages

FieldTypeRequired
textstringrequired
source_languagestringrequired
target_languagestringrequired
POST /translate → 200json
{
  "translated_text": "E kaaro",
  "source_language": "english",
  "target_language": "yoruba",
  "request_id": "req_01J9X54Q7D"
}
Errors:invalid_inputunauthorizedunsupported_languagerate_limitedinternal_error

Auth & limits

Keys, headers, and caps.

Authentication

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.

Rate limits

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.

Input caps

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

Request API 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.

Run a pilot with your own audio.

Tell us what you're building and which languages matter to you. We'll set you up with API access and support through evaluation.