Introduction to Andebet API
Andebet provides speech intelligence infrastructure built specifically for Ethiopian languages and complex multilingual conversational speech. Our API converts spoken audio into timestamped, speaker-separated text, extracts verifiable evidence, and enables downstream qualitative analysis.
Models calibrated on spoken Amharic, Afaan Oromoo, Tigrinya, and Ethiopian English.
Every sentence, summary claim, and entity links directly to start/end audio timestamps.
Quickstart
Submit your first recording in under 60 seconds with cURL or your preferred backend environment:
For files under 120 seconds, the API responds synchronously with HTTP 200 OK containing the complete transcript, speaker tags, and evidence array. For longer recordings, the API returns 202 Accepted with a job ID for polling or webhook dispatch.
API Keys & Environments
Andebet uses two distinct key environments to separate local testing from live production workloads:
Includes 45 free minutes on signup, isolated 15 RPM rate limits, and full debug logging. No credit card required.
Used in live user-facing applications with 600 RPM default concurrency and production SLA guarantees.
Supported Languages & Code-Switching
Pass language as a parameter or leave as auto for acoustic language identification:
| Code | Language | Script | Dialects Supported |
|---|---|---|---|
| am | Amharic (አማርኛ) | Ge'ez | Addis Ababa, Gondar, Wollo, Gojjam |
| om | Afaan Oromoo | Qubee (Latin) | Central (Shewa), Western (Wollega), Eastern (Harar) |
| ti | Tigrinya (ትግርኛ) | Ge'ez | Mekelle, Central Tigray |
| en | Ethiopian English | Latin | Colloquial mixed business & tech speech |
Authentication
Every API request must include the standard HTTP Authorization: Bearer <key> header. Requests without a valid key receive an immediate 401 Unauthorized response.
Audio Inputs & Requirements
Andebet supports direct multipart file uploads or public HTTPS download URLs. Audio is ingested without lossy pre-compression:
The API requires direct media streams (e.g. public .mp3, .wav, .m4a links) or multipart uploads. Passing raw HTML webpage URLs (such as https://www.youtube.com/watch?v=...) into audio_url returns an HTTP 400 with code unsupported_audio_source.
To transcribe YouTube videos, talk shows, or podcasts, extract the audio track first using yt-dlp or ffmpeg before submitting:
Response Schema & Verifiable Evidence
Successful transcriptions return a structured payload with verbatim segments, pre-formatted subtitle captions, and citation evidence:
Subtitles & Video Captions (SRT & WebVTT)
Andebet provides native caption generation designed for YouTube, broadcast television, and editing software. Every successful transcription generates sub-second synchronized SubRip (.srt) and WebVTT (.vtt) files.
Pass format=srt to receive the raw .srt file directly, compatible with YouTube Studio, Adobe Premiere, DaVinci Resolve, and VLC.
Pass format=vtt to receive HTML5 video captions with standardized speaker tags (<v Speaker>).
This production-ready Python script extracts audio from a YouTube link, submits it to Andebet, and saves the subtitles file:
Synchronous vs. Asynchronous Processing
Andebet enforces an unambiguous processing contract based on file duration:
The HTTP connection stays open and returns the complete transcription object in 800ms–2.5s.
The API returns immediately with an assigned job ID (tra_...) and polling endpoint. Supports files up to 4 hours (500 MB).
Polling & Webhook Callbacks
For asynchronous jobs, you can poll status or configure an automatic webhook delivery:
Error Catalog & Recovery
All error responses adhere to a consistent contract with an actionable explanation and request ID:
Idempotency
Include an Idempotency-Key: <UUID> header on all POST requests. If a request times out or is interrupted, retrying with the same idempotency key guarantees the server returns the cached result without duplicating billing.
Security & Data Retention
Audio is encrypted using TLS 1.3 in transit and AES-256 at rest. Recordings are retained for 30 days by default. To process sensitive audio in memory without persistence, pass retention=none. Customer data is never used to train public foundational models.
Billing & Usage Metering
Transcription usage is measured strictly by actual audio duration in 1-second increments (rounded to nearest second, with a 15-second minimum). Failed requests (4xx and 5xx responses) are never billed.
TypeScript / Node.js
Python
HMAC Webhook Verification (Production)
Verify webhook deliveries against replay attacks using the timing-safe HMAC validator: