Developers / Speech to Text

Transcribe audio synchronously

POST https://api.echonova.ai/v1/speech-to-text/sync

Transcribes an uploaded audio file of up to 10 minutes and 150MB in one call and returns the transcription with the credits charged.

Headers

Authorization string Required

Bearer, a space, then your API key, which starts with ek_. Create keys in the portal under Developers, API Keys.

Request body

multipart/form-data

file file Required

Audio file (up to 10 minutes, 150MB).

language string Optional

auto lets the service decide (Arabic today, which also handles mixed and clean English speech); ar for Arabic and mixed Arabic/English; en only for wholly English speech. Arabic sent as en comes back garbled.

auto, ar or endefault auto
numbers_as_digits boolean Optional

Write spoken numbers as digits (صفر واحد واحد → 011). Set false to keep them as words. Applies to Arabic; English transcripts are never converted.

default true
identify_speakers boolean Optional

Identify who speaks when: the finished job then lists the speakers and the transcript split into timed segments, each tagged with its speaker. Leave it out or send false for the transcript text alone.

default false

Response

200 application/json Every response uses this envelope.

data object

The result.

success boolean

true for a successful call.

statusCode integer

Repeats the HTTP status.

errorMessage string or null

null on success.

Errors

Same envelope, with success false and data null. All errors

POST /v1/speech-to-text/sync

curl -X POST "https://api.echonova.ai/v1/speech-to-text/sync" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@audio.mp3;type=audio/mpeg"

{
  "data": {
    "jobId": "66e3f2a1c9d4b8a1f0e12345",
    "status": "completed",
    "transcription": "مرحبا بكم في إيكونوڤا",
    "durationSeconds": 15.51,
    "language": "ar",
    "numbersAsDigits": true,
    "identifySpeakers": true,
    "segments": [
      {
        "start": 0.38,
        "end": 4.12,
        "text": "السلام عليكم، كيف حالك؟",
        "speaker": "spk0"
      }
    ],
    "speakers": [
      {
        "id": "spk0",
        "talkTime": 88.1
      }
    ],
    "creditsConsumed": 26
  },
  "success": true,
  "statusCode": 200,
  "errorMessage": null
}