Skip to main content

Error Codes

The VoiceCheap API uses standard HTTP status codes and returns structured error responses to help you handle errors gracefully.

Error Response Format

All error responses follow this structure:
Some errors may include additional fields:

HTTP Status Codes

Authentication Errors

HTTP Status: 401The x-api-key header was not provided.Solution: Include your API key in the x-api-key header.
HTTP Status: 401The API key does not use the expected vc_ prefix.Solution: Check that you copied the full key from the VoiceCheap app.
HTTP Status: 401The provided API key is invalid or expired.Solution: Check that your API key is correct and included in the x-api-key header.
HTTP Status: 403The account has a valid key, but API access is not enabled for that account.Solution: Request API access or use an account that already has API access enabled.
HTTP Status: 403API access requires an active paid subscription.Solution: Upgrade to a paid plan at voicecheap.ai.
HTTP Status: 403Your account doesn’t have enough credits to process this request.Solution: Purchase more credits or upgrade your subscription plan.

File Validation Errors

HTTP Status: 400No file was uploaded with the request.Solution: Include a file in the file field of your multipart form data.
HTTP Status: 400The uploaded file type is not supported.Solution: Upload a file in one of the supported formats (MP4, MOV, MKV, WebM, MPEG, MP3, WAV, M4A, FLAC, OGG, AAC).
HTTP Status: 400The uploaded file exceeds the maximum allowed size (20 GB).Solution: Compress your file or split it into smaller segments.
HTTP Status: 400Could not detect the duration of the uploaded file.Solution: Ensure the file is a valid, non-corrupted video or audio file.

Validation Errors

HTTP Status: 400The specified target language is not supported.Solution: Use one of the supported languages.
HTTP Status: 400A boolean parameter received an invalid value.Solution: Use true or false (as strings in form-data).
HTTP Status: 400A JSON parameter could not be parsed.Solution: Ensure the JSON string is properly formatted.
HTTP Status: 400Lip-sync was requested for media longer than the supported lip-sync duration.Solution: Omit lipsyncPro for this request, or submit a media file within the lip-sync limit.

Resource Errors

HTTP Status: 404The specified project does not exist.Solution: Verify the project ID is correct.
HTTP Status: 403You don’t have permission to access this resource.Solution: Ensure you’re using the correct API key for this project.

Rate Limiting

HTTP Status: 429You’ve exceeded the rate limit for this endpoint.Solution: Wait before making additional requests. Use exponential backoff.
HTTP Status: 429You already have the maximum number of translations running in parallel.Solution: Wait for one of your in-progress translations to finish, then retry the request.

Processing Errors

These errors may be returned in the error field when checking translation status:
The audio could not be transcribed.Possible causes:
  • Audio quality is too low
  • No speech detected in the audio
  • Unsupported audio encoding
The transcription could not be translated.Possible causes:
  • Unsupported language pair
  • Content could not be processed
Voice synthesis failed during dubbing.Possible causes:
  • Voice cloning failed
  • Audio generation error
Lip sync processing failed.Possible causes:
  • Lip sync provider error
  • Invalid or unsupported media
  • Request was rejected or canceled

Server Errors

HTTP Status: 500An unexpected error occurred on our servers.Solution: Retry the request. If the problem persists, contact support.

Handling Errors