Key spend ceiling exceeded
key_ceiling_exceeded
This API KEY has spent the monthly ceiling its owner set for it. It is not the account's plan allowance (quota_exhausted) and not a request-rate window (rate_limit_exceeded): it is a per-key budget, configured by a human on the developer console, that exists so one key cannot spend everything. The account may have plenty of allowance left.
Why it happens
A key was given a ceiling — typically the key pasted into a script, a staging environment, or one handed to somebody else — and this month's generations have reached it. Only generated audio counts: reads never move it, and neither do transcriptions, which produce no audio.
How to fix it
The account owner raises or removes the ceiling on the **API keys** tab of the developer console — the problem document's settings_url points straight at it, and the change applies to the next request. A different key with its own budget is the other answer when the point of the ceiling was to keep this workload boxed in.
Safe to retry?
Not usefully. A ceiling is a budget, not a window: it clears at the start of next month, or when its owner changes it. Backing off will not clear it.
What it looks like on the wire
{
"type": "https://voicelabs.now/errors/key_ceiling_exceeded",
"title": "Key spend ceiling exceeded",
"status": 429,
"detail": "A human-readable explanation of this particular occurrence.",
"instance": "/v1/speech",
"code": "key_ceiling_exceeded"
}
Branch on code, never on status or on the prose in detail: two different problems can share a status, and detail is written for humans and may be reworded. Problems a settings page can resolve also carry settings_url, and a scope failure carries required_scope.
Every VoiceLabs API error is an RFC 9457 problem document with a stable code.