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:HTTP Status Codes
| Status Code | Meaning |
|---|---|
| 200 | OK - Request succeeded |
| 400 | Bad Request - Invalid parameters or validation error |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - Valid API key but insufficient permissions |
| 404 | Not Found - Resource doesn’t exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error - Something went wrong on our end |
Authentication Errors
INVALID_API_KEY
INVALID_API_KEY
HTTP Status: 401The provided API key is invalid, expired, or missing.Solution: Check that your API key is correct and included in the
x-api-key header.SUBSCRIPTION_REQUIRED
SUBSCRIPTION_REQUIRED
HTTP Status: 403API access requires an active paid subscription.Solution: Upgrade to a paid plan at voicecheap.ai.
INSUFFICIENT_CREDITS
INSUFFICIENT_CREDITS
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
FILE_REQUIRED
FILE_REQUIRED
HTTP Status: 400No file was uploaded with the request.Solution: Include a file in the
file field of your multipart form data.INVALID_FILE_TYPE
INVALID_FILE_TYPE
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).
FILE_TOO_LARGE
FILE_TOO_LARGE
HTTP Status: 400The uploaded file exceeds the maximum allowed size (20 GB).Solution: Compress your file or split it into smaller segments.
DURATION_DETECTION_FAILED
DURATION_DETECTION_FAILED
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
INVALID_TARGET_LANGUAGE
INVALID_TARGET_LANGUAGE
HTTP Status: 400The specified target language is not supported.Solution: Use one of the supported languages.
INVALID_BOOLEAN_VALUE
INVALID_BOOLEAN_VALUE
HTTP Status: 400A boolean parameter received an invalid value.Solution: Use
true or false (as strings in form-data).INVALID_JSON_FORMAT
INVALID_JSON_FORMAT
HTTP Status: 400A JSON parameter could not be parsed.Solution: Ensure the JSON string is properly formatted.
Resource Errors
PROJECT_NOT_FOUND
PROJECT_NOT_FOUND
HTTP Status: 404The specified project does not exist.Solution: Verify the project ID is correct.
FORBIDDEN
FORBIDDEN
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
RATE_LIMIT_EXCEEDED
RATE_LIMIT_EXCEEDED
HTTP Status: 429You’ve exceeded the rate limit for this endpoint.Solution: Wait before making additional requests. Use exponential backoff.
| Endpoint | Rate Limit |
|---|---|
POST /v1/translate | 5 requests per minute |
GET /v1/translate/{id}/status | 30 requests per minute |
Processing Errors
These errors may be returned in theerror field when checking translation status:
TRANSCRIPTION_FAILED
TRANSCRIPTION_FAILED
The audio could not be transcribed.Possible causes:
- Audio quality is too low
- No speech detected in the audio
- Unsupported audio encoding
TRANSLATION_FAILED
TRANSLATION_FAILED
The transcription could not be translated.Possible causes:
- Unsupported language pair
- Content could not be processed
VOICE_SYNTHESIS_FAILED
VOICE_SYNTHESIS_FAILED
Voice synthesis failed during dubbing.Possible causes:
- Voice cloning failed
- Audio generation error
Server Errors
INTERNAL_ERROR
INTERNAL_ERROR
HTTP Status: 500An unexpected error occurred on our servers.Solution: Retry the request. If the problem persists, contact support.

