Pro plan required
pro_plan_required
The credential is real and the account exists — but the HTTP API is part of VoiceLabs Pro, and this account does not have it. Every /v1 operation is refused this way, reads included: the API is one feature, not a per-endpoint entitlement.
Why it happens
A key created on a free account, or a key on an account whose subscription or trial has since lapsed. Keys are not revoked when a subscription ends — they simply stop being accepted, and start working again the moment the account is on Pro.
How to fix it
Subscribe or restart the trial. The problem document carries a settings_url pointing at the billing page for the account that made the call, and the entitlement takes effect immediately — the very next request with the SAME key succeeds, with nothing to re-create.
Safe to retry?
No, and waiting does not help: this is not an allowance that resets. The account has to be on Pro.
What it looks like on the wire
{
"type": "https://voicelabs.now/errors/pro_plan_required",
"title": "Pro plan required",
"status": 403,
"detail": "A human-readable explanation of this particular occurrence.",
"instance": "/v1/speech",
"code": "pro_plan_required"
}
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.