Skip to navigation

Migrating off Simba 1.6

Move to simba-3.5, or let the ids move on 2026-11-21

simba-english and simba-multilingual — the Simba 1.6 pair — are being withdrawn. This page is the one-stop migration guide: what changes, which model to move to, and how to buy time if you need it. The decision and the two dates were announced in the changelog entry that kicked this off.

If your synthesis requests set model to simba-english or simba-multilingual, they keep working after 2026-11-21, but the model behind them changes on that day. From then simba-multilingual is served by Simba 3.5, and simba-english by simba-3.2 for English and Simba 3.5 for any other language. To choose the model yourself and test your voices first, switch to simba-3.5, the recommended model, with 48 languages under one model id. The endpoint and request shape are otherwise unchanged. Already-generated audio is unaffected. Not ready to switch the model string by 2026-09-21? Pin Speechify-Version to a date before 2026-09-21 and both ids keep responding: see Buy time by pinning your API version.

What is changing

Withdrawal is two dated steps, both published up front:

WhenWhat happens
From API version 2026-09-21The pair is no longer selectable: naming either model returns 400 model_retired, and neither appears in GET /v1/audio/models. New workspaces are pinned at signup, so they can’t select it at all.
From 2026-11-21Both ids keep answering on every API version that can still name them, served by our current models instead of their Simba 1.6 training: simba-multilingual by Simba 3.5, simba-english by simba-3.2 for English and Simba 3.5 otherwise.

2026-11-21 is the date the audio changes for everyone still naming the pair, pinned or not. Nothing breaks, but the voice will not sound exactly as it does today. Two differences to plan for: SSML <prosody pitch>, <prosody volume>, <emphasis> and <speechify:style emotion> are not applied by the current models (breaks and <prosody rate> are), and a voice you tuned on Simba 1.6 is rendered by a different model.

Are you affected?

You are affected if a synthesis request sends model: "simba-english" or model: "simba-multilingual" to POST /v1/audio/speech or either /v1/audio/stream route.

You are not affected if you name simba-3.5, simba-3.2 or simba-3.0, or omit model entirely: an omitted model resolves to simba-3.0, which is unchanged.

Where to go

FromToNotes
simba-englishsimba-3.5The recommended model: 48 languages under one model id, English included. simba-3.2 stays available if your text is English only.
simba-multilingualsimba-3.548 languages under one model id. From 2026-11-21 it also serves requests that still name simba-multilingual.

For most integrations this is a one-line change — swap the model string and keep everything else — but check two things first:

  • Your languages. Check the languages you send against the languages simba-3.5 covers (see below).
  • Omitting language. On simba-multilingual, leaving language out auto-detects the language from your input text. simba-3.5 instead falls back to the voice’s own locale. If you rely on detection, set language explicitly on the request when you move.
{
"input": "Hello from Speechify.",
"voice_id": "your-voice-id",
"model": "simba-3.5"
}
POST
/v1/audio/speech
from speechify import Speechify
client = Speechify(
token="YOUR_TOKEN_HERE",
)
client.audio.speech(
audio_format="mp3",
input="Hello! This is the Speechify text-to-speech API.",
model="simba-3.2",
voice_id="geffen_32",
)

Check your languages first

simba-3.5 speaks 48 languages under one model id, and from 2026-11-21 it also serves requests that still name simba-multilingual, so moving first lets you pick the voice and test it. Compare the languages you send with its list, set language explicitly on the request (see the note above on omitting it), and the switch is a one-liner.

Buy time by pinning your API version

2026-09-21 is the cut-over. From that API version, naming either model returns 400 model_retired, so send Speechify-Version set to a date before 2026-09-21 on your synthesis requests to keep simba-english / simba-multilingual on their Simba 1.6 training until 2026-11-21. The official SDKs expose this as a version option; and because a workspace’s stored default only ever moves forward, the per-request header is how you hold an older shape. See API Versioning for how to read and set it.

While your workspace is pinned below 2026-09-21, both models still appear in GET /v1/audio/models carrying retired_at: "2026-09-21" and sunset_at: "2026-11-21". Read sunset_at for the day the model behind the id changes.

The pin holds Simba 1.6 until 2026-11-21, whatever you pin; from then the ids are served by our current models.

Migration checklist

1

Find where you name the models

Search your integration for simba-english and simba-multilingual. Requests that omit model are already on simba-3.0 — no change needed.

2

Pick the replacement

simba-english and simba-multilingual → simba-3.5, once your languages are in its list. simba-3.2 remains an option for English-only text.

3

Swap the model string and test

Change the model value and re-run your synthesis. The endpoint and request shape stay the same: confirm your voice lists the new model in its models array in GET /v1/voices, and set language explicitly if you were relying on auto-detection.

4

If you need longer, pin instead

Set Speechify-Version to a date before 2026-09-21 to keep the Simba 1.6 training until 2026-11-21 while you plan.

See also