Errors

When a request fails, the API returns an HTTP status and a JSON body with a human-readable error and a stable code. Branch on code, never on the message text.

Error shape

Error response

{
  "error": "Daily limit reached: 50,000 of 50,000 characters used today. Resets at 00:00 Sun 28 Sep.",
  "code": "QUOTA",
  "used": 50000,
  "limit": 50000,
  "resetsAt": "2026-09-27T17:00:00.000Z"
}

429 responses also carry a Retry-After header in seconds. The SDK throws VoixaError with the same status and code.

Request and account errors

StatusCodeMeaningWhat to do
400INVALIDThe body or query failed validation; error names the field.Fix the request.
403NOT_APPROVEDThe account is waiting for approval.Contact us.
404—The voice, clip or transcript does not exist or is not yours.Check the id.
409VOICE_NOT_READYThe voice is still processing (or failed).Wait for the clone to be ready.
409CLIP_NOT_READYYou tried to share a clip that is not ready.Share it once it is ready.
429QUOTADaily character allowance reached.Wait for resetsAt, or ask for more.
429AUDIO_QUOTADaily transcription allowance reached.Wait for resetsAt.
403CLONE_LIMITYour account has as many clones as it may hold (used, limit).Delete one, or ask for more.

Voice cloning errors

StatusCodeMeaning
400NO_REFERENCEPOST /voices before the recording was uploaded to uploadUrl.
400REFERENCE_EMPTYThe uploaded file is empty or too short to be speech.
400REFERENCE_TOO_LARGEThe recording is over 10 MB. Ten seconds of speech is plenty.
400INVALIDThe language has no voice cloning (Chinese, Japanese, Korean).

Failed clips and transcripts

A synthesis or transcription that fails after the request was accepted does not return an error: the object turns "status": "failed" with a readable failReason, and its characters or seconds go back to your allowance. For transcripts this includes a file over 5 GB or eight hours, an empty file, and an upload that never arrived. Retry with a new request.

Gateway errors

ResponseMeaning
403 {"message":"Forbidden"}Missing or wrong x-api-key — or a key created in the last few minutes.
429 {"message":"Too Many Requests"}The key went over its request rate or daily call count.
504 {"message":"Endpoint request timed out"}Rare; retry. speak answers well within the gateway's time limit.

Was this page helpful?