Skip to main content
This page tracks notable changes to the Sunbird AI API. Use the version dropdown at the top of the sidebar to switch between the current API (v2.1 · Latest) and the older endpoints (v1 · Deprecated).
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.
  • audio and language are both required. Automatic language detection is not supported — always pass an explicit ISO 639-3 code.
  • New timestamps flag (default false) returns per-segment start/end/text in a new segments response field. The response also gains duration_seconds and usage.
  • 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). The spark-tts model and the Modal backend were removed.
  • Removed parameters (now rejected): model, platform, max_new_audio_tokens. New tuning knobs: temperature, top_p, repetition_penalty (alongside max_tokens and seed).
  • voice is now optional — when omitted a speaker is chosen for language (Luganda by default).
  • response_mode (url | stream | both) now applies to all requests; both returns the signed URL in the X-Audio-Url header.
  • POST /tasks/audio/speech/batch accepts 1–16 items per request (previously 128). GET /tasks/voice/speakers drops the model query parameter.
  • Responses now always include platform (runpod) and add usage (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 model field now selects between sunflower-14b (default; English + 31 Ugandan/regional languages) and sunflower-9b (67 African languages).
  • The old identifier Sunbird/Sunflower-14B is no longer accepted and returns 400.

Other changes

  • POST /tasks/translate responses gain an optional usage object with Sunflower token counts.
  • POST /auth/register and GET /auth/me expose email_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 return Deprecation 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/transcriptions endpoint routes to the Modal (Whisper large-v3) or RunPod backend, with optional speaker diarization.
  • Text to SpeechPOST /tasks/audio/speech exposes two models (orpheus-3b-tts and spark-tts), plus batch synthesis, voice discovery, and signed-URL refresh.
  • Conversational AIPOST /tasks/chat/completions is OpenAI-compatible, so the official OpenAI SDKs work by changing only the base URL and API key. It supports multi-turn conversations and streaming.
  • TranslationPOST /tasks/translate (Sunflower) now translates between any pair of 32 languages, with optional source-language inference.

New endpoints

  • PUT /auth/profile — Update Profile
  • GET /auth/profile/status — Profile Status
  • POST /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.