v2.1 — 51-language ASR, Orpheus-only TTS, Sunflower model selection
Breaking changes
Speech to Text — POST /tasks/audio/transcriptions
- Now powered by Sunbird’s faster-whisper ASR model (
Sunbird/faster-whisper-51-african-languages) covering 51 African languages (up from 10). All previously supported languages remain available. audioandlanguageare both required. Automatic language detection is not supported — always pass an explicit ISO 639-3 code.- New
timestampsflag (defaultfalse) returns per-segmentstart/end/textin a newsegmentsresponse field. The response also gainsduration_secondsandusage. - Removed parameters (now rejected with
422):platform,adapter,whisper,recognise_speakers,org,gcs_blob_name. Speaker diarization and the organization workflow are no longer available on this endpoint.
Text to Speech — POST /tasks/audio/speech
- All synthesis is served by the RunPod Orpheus-3B deployment (
sunbird-orpheus-tts, 20 African languages / 40+ speakers). Thespark-ttsmodel and the Modal backend were removed. - Removed parameters (now rejected):
model,platform,max_new_audio_tokens. New tuning knobs:temperature,top_p,repetition_penalty(alongsidemax_tokensandseed). voiceis now optional — when omitted a speaker is chosen forlanguage(Luganda by default).response_mode(url|stream|both) now applies to all requests;bothreturns the signed URL in theX-Audio-Urlheader.POST /tasks/audio/speech/batchaccepts 1–16 items per request (previously 128).GET /tasks/voice/speakersdrops themodelquery parameter.- Responses now always include
platform(runpod) and addusage(input_characters,output_audio_bytes,duration_seconds). - The legacy per-provider TTS routes were removed:
/tasks/tts,/tasks/modal/tts(+/stream,/stream-with-url,/refresh-url,/speakers),/tasks/modal/orpheus/*,/tasks/runpod/tts.
Chat — POST /tasks/chat/completions
- The
modelfield now selects betweensunflower-14b(default; English + 31 Ugandan/regional languages) andsunflower-9b(67 African languages). - The old identifier
Sunbird/Sunflower-14Bis no longer accepted and returns400.
Other changes
POST /tasks/translateresponses gain an optionalusageobject with Sunflower token counts.POST /auth/registerandGET /auth/meexposeemail_verified.
New endpoints
GET /auth/verify-email— landing endpoint for the emailed verification link.POST /auth/resend-verification— resend the verification email for the authenticated user.POST /auth/refresh-token— rotate the caller’s API key (revokes the previous token).
v2 — Unified audio, chat, and translation endpoints
Unified endpoints
We consolidated the speech, text-to-speech, and conversational AI surfaces into a smaller set of unified endpoints. The old routes still work but are deprecated and now returnDeprecation and Sunset response headers. They are documented under the v1 · Deprecated version, and the full list is kept on the Deprecations page.Migration map
Highlights
- Speech to Text — a single
POST /tasks/audio/transcriptionsendpoint routes to the Modal (Whisper large-v3) or RunPod backend, with optional speaker diarization. - Text to Speech —
POST /tasks/audio/speechexposes two models (orpheus-3b-ttsandspark-tts), plus batch synthesis, voice discovery, and signed-URL refresh. - Conversational AI —
POST /tasks/chat/completionsis OpenAI-compatible, so the official OpenAI SDKs work by changing only the base URL and API key. It supports multi-turn conversations and streaming. - Translation —
POST /tasks/translate(Sunflower) now translates between any pair of 32 languages, with optional source-language inference.
New endpoints
PUT /auth/profile— Update ProfileGET /auth/profile/status— Profile StatusPOST /tasks/classify_language— Classify Language
Migrating an existing integration? See the per-feature Guides for full request/response examples, or jump straight to the relevant endpoint page in this API Reference.

