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:details, and field is omitted when the constraint message does not name a
specific property:
HTTP Status Codes
Transcription and transcript export errors
Dubbing option errors
Asynchronous SRT alignment errors
These errors occur after a translation or dub request has been accepted. The status endpoint responds with HTTP 200 andstatus: "failed"; its error and the project.translation.failed webhook contain only code and message. Stored failures use fixed VoiceCheap messages; cue numbers and segment indexes are not included. Synchronous request errors, including TRANSLATED_SRT_CUE_COUNT_MISMATCH, remain HTTP 400 above.
Authentication Errors
MISSING_API_KEY
MISSING_API_KEY
HTTP Status: 401The
x-api-key header was not provided.Solution: Include your API key in the x-api-key header.INVALID_API_KEY_FORMAT
INVALID_API_KEY_FORMAT
HTTP Status: 401The API key does not use the expected
vc_ prefix.Solution: Check that you copied the full key from the VoiceCheap app.INVALID_API_KEY
INVALID_API_KEY
HTTP Status: 401The provided API key is invalid.Solution: Check that your API key is correct and included in the
x-api-key header.SUBSCRIPTION_REQUIRED
SUBSCRIPTION_REQUIRED
HTTP Status: 403API and MCP access require a Starter plan or higher.Solution: Upgrade to a Starter plan or higher 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.
Other authentication and team errors
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: 413The uploaded file exceeds the allowance for the authenticated subscription: Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB, or Enterprise 60 GB.Solution: Check your plan limit, then compress the file, split it into smaller segments, or upgrade your plan.
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.
INVALID_NUMBER_VALUE
INVALID_NUMBER_VALUE
HTTP Status: 400An optional numeric form-data field was not a valid number. Send a numeric value within the documented range.
LIPSYNC_VIDEO_TOO_LONG
LIPSYNC_VIDEO_TOO_LONG
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
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.
Permissions and usage errors
See usage and limits for the shared account allowance. Errors do not consume monthly calls.
action_request_get, usage_get, projects_status, and GET /v1/translate/{projectId}/status are exempt from the monthly allowance.
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
LIPSYNC_FAILED
LIPSYNC_FAILED
Lip sync processing failed.Possible causes:
- A temporary lip-sync processing problem
- Invalid or unsupported media
- Request was rejected or canceled
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.

