Skip to main content
Get Translation Status

Get Translation Status

Retrieve the current status of a translation project. Use this endpoint to poll for progress and get the translated video URL when processing is complete.

Request

Headers

string
required
Your VoiceCheap API key. Get one from app.voicecheap.ai/page-api.

Path Parameters

string
required
The unique identifier of the translation project returned from the Start Translation endpoint.

Response

The response structure varies based on the translation status.

Common Fields

string
required
The unique identifier of the project
string
required
The name of the project
string
required
URL to the original uploaded video/audio file
string
required
The detected or specified original language
string
required
The target language for translation
number
required
Duration of the content in seconds
number
required
Unix timestamp when the project was created
string
required
API workflow that created the project: translation or transcription.
string
required
Source-transcription status: processing, success, or failed. This signal is independent from dubbing completion.
object
required
Available normalized transcripts.
string
Translation work identifier for the currently reported translated version.
string
Translated version identifier for the currently reported translated version.
string
Current project step. During creation or transcription, this reflects the active creation step. Examples include downloading_content, content_validation, and transcription_processing. Once dubbing starts, it may switch to an active dubbing step such as smart_sync or audio_assembling. status: processing does not pair with actualProgressStep: done.
number
Approximate progress percentage for project creation/transcription (0-100)
string
Current dubbing step for the target language (e.g. smart_sync, audio_enhancement, video_upload)
number
Approximate progress percentage for dubbing (0-100)
string
required
Current status of the translation: processing, success, or failed

Lip Sync Fields

When lip-sync was requested, the response includes an additional lipSync object:
object
Lip-sync status and output details (only present when lip-sync was requested)
When lip-sync is requested, the translation stays in processing until lipSync.status is COMPLETED. If lip-sync fails, the status becomes failed and the error.code is LIPSYNC_FAILED. When lip-sync succeeds, read the lip-synced asset from lipSync.videoUrl; translatedVideoUrl is the translated video output before the lip-sync overlay.
Use GET /v1/projects/{projectId} when you need the full translated version history or complete lip-sync history.

Success Response Fields

For translation workflows, the following fields are included when status is success. A transcription-only workflow reaches success without translated media fields.
string
URL to download the translated video file
string
URL to download the translated audio file separately

Failed Response Fields

When status is failed, the following additional field is included:
object
Error details

Examples

Response Examples

Processing Status

Processing Status (Lip Sync Requested)

Success Status

Success Status (Lip Sync Completed)

Failed Status

Polling Best Practices

Recommended polling interval: 10-30 secondsTranslation time varies based on video length and complexity. For a typical 2-minute video, expect 2-5 minutes of processing time.
Rate Limit: 30 requests per minuteAvoid polling more frequently than once every 2 seconds to stay within rate limits.

Errors