API: Free tier gets a burst allowance on /v1/audio/*
API: Free tier gets a burst allowance on /v1/audio/*
The Free plan’s TTS rate limit no longer caps its burst bucket at the sustained rate. Previously Free was 1 request/second with a bucket capacity of 1, so a second request issued in the same second was rejected with 429. Free now gets a burst capacity of 10, so a normal opening burst of requests (a quickstart script, a first integration test) no longer trips the limiter.
Sustained throughput is unchanged on every tier — burst only smooths the first second of traffic; it does not raise your steady-state rate. This brings /v1/audio/* in line with the burst allowance /v1/agents/* has had since rate and concurrency limits were first published.
See the API limits reference for the full per-plan table.
Audio 404s now say what wasn’t found
POST /v1/audio/speech, POST /v1/audio/stream, and POST /v1/audio/stream/with-timestamps previously answered an unknown voice_id or model with an opaque, passed-through upstream 404 - indistinguishable from any other not-found. All three now classify the cause and return an actionable error instead:
voice_not_found is already part of the public ErrorCode enum; this is the first time these three endpoints return it instead of a generic upstream passthrough. No other error responses on these endpoints changed.