Transcription

Submit batch transcription jobs, poll status, and retrieve Amharic transcripts from audio URLs.

The KI-AVA Amharic API transcribes audio files asynchronously. Use it for batch use cases like transcribing the DW Amharic archive.

Workflow

  • Submit a request to create a transcription job with audio file URL(s)
  • Receive a unique job_id immediately
  • Processing happens in the background
  • Poll the status endpoint to check progress
  • Retrieve results when status is "completed" (e.g. via transcript_urls)

1. Submit a transcription job

POST to /transcribe with audio_urls and language (e.g. am for Amharic):

curl -X POST "https://kiava-api.lesan.ai/transcribe" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "audio_urls": ["https://example.com/audio.mp3"],
    "language": "am"
  }'

2. Check job status

GET /transcribe/{job_id} to see status (pending, processing, completed, or failed):

curl -X GET "https://kiava-api.lesan.ai/transcribe/YOUR_JOB_ID" \
  -H "X-API-Key: YOUR_API_KEY"

3. Get transcription results

When status is completed, use transcript_urls from the status response. Each URL points to a JSON file (signed URL, valid for a limited time). Download the JSON to get segments and full text:

# Get status, then download first transcript
TRANSCRIPT_URL=$(curl -s -H "X-API-Key: YOUR_API_KEY" \
  "https://kiava-api.lesan.ai/transcribe/YOUR_JOB_ID" | jq -r '.transcript_urls[0]')
curl "$TRANSCRIPT_URL"

Supported languages and formats

  • Languages – e.g. am (Amharic), ti (Tigrinya)
  • Formats – .aac, .flac, .m4a, .mp3, .mp4, .mkv, .wav, .webm, .3gpp
  • Limits – Max 1GB per file; files must be accessible via public or pre-signed URLs

Rate limits

  • 100 job submissions per hour per API key
  • Max 10 concurrent jobs per API key
  • Jobs expire after 48 hours by default (configurable up to 168 hours)

For detailed API documentation, see the API Reference.