API Docs
API Docs
Translate spoken content in videos into other languages with synchronized audio and subtitles.
/api/vt
This endpoint translates spoken content in a video from one language to another. The pipeline includes speech recognition, translation, and synthesis to generate a translated video output.
Requests are processed asynchronously. Once accepted, the API returns a unique log_id that can be used to track processing status and retrieve the final translated video.
Request Body
project_title (string, required)
A human-readable title to identify the video translation project.
Example: "My Project"
file (file, optional)
Video file to be translated. Required if youtube_url is not provided.
Example: "video.mp4"
youtube_url (string, optional)
YouTube video URL to translate. Required if file is not provided. Do not provide both file and youtube_url.
Example: "https://www.youtube.com/watch?v=XXXX"
output_language (string, required)
Target language into which the video should be translated.
View example →ttt_model (string, required)
Text Translation model used to translate the recognized speech.
View example →stt_model (string, required)
Speech to Text model used to extract spoken content from the video.
Example: "narris_fast"
speed (number, optional)
Playback speed of the translated audio. Defaults to 1.
Example: 1
pitch (number, optional)
Pitch adjustment for translated audio. Defaults to 0.
0Note: You must provide either a video file or a youtube_url. Providing both or neither will result in a validation error.
Response
On successful submission, the API returns a unique log_id.
Use this log_id with the Fetch Video Translation By ID endpoint to retrieve the translated video and processing metadata.
{
"log_id": "694d96ef7d5247d58c02984c"
}curl
curl --location 'https://api.narris.io/api/vt' \ --header 'x-api-key: YOUR_API_KEY' \ --form 'project_title="My Project"' \ --form 'file=@"/path/to/video.mp4"' \ --form 'input_language="english"' \ --form 'output_language="hindi"' \ --form 'ttt_model="narris"' \ --form 'stt_model="narris_fast"' \ --form 'speed="1"' \ --form 'pitch="0"'
/api/vt/logs
This endpoint allows you to fetch a paginated list of previously created video translation requests.
Each entry represents a video translation job and includes its current status, input source, and timestamps.
Request Body
page (number, optional)
Page number for pagination.
Example: 1
limit (number, optional)
Number of records to return per page.
Example: 10
Response
On success, the API returns a paginated list of video translation logs.
Each log contains a unique _id which can be used with the Fetch Video Translation By ID endpoint to retrieve the translated video output and metadata.
{
"total": 2,
"page": 1,
"limit": 10,
"logs": [
{
"_id": "694ae751edd62bc79702edfb",
"project_title": "My Project",
"input_file": "https://lingui-dev.s3.amazonaws.com/input/trim_copy_1766516561227.mp4",
"status": "pending",
"createdAt": "2025-12-23T19:02:41.919Z"
},
{
"_id": "694adceac08501b29ef8109f",
"project_title": "My Project",
"input_file": "https://lingui-dev.s3.amazonaws.com/input/trim_copy_1766513897882.mp4",
"status": "finished",
"createdAt": "2025-12-23T18:18:18.350Z",
"finishedAt": "2025-12-23T18:18:50.347Z",
"output_file": "https://lingui-dev.s3.amazonaws.com/video_features/output/20251223181848_20251223181846.mp4"
}
]
}curl
curl --location 'https://api.narris.io/api/vt/logs?page=1&limit=10' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY'
/api/vt/{log_id}
This endpoint allows you to fetch the complete details of a video translation request using its unique log_id.
The response includes input video details, source and target languages, speech and translation models used, processing status, timestamps, and the final translated video output once the job is completed.
Request Body
log_id (string, required)
Unique identifier of the video translation request returned during creation or from video translation logs.
Example: "694adceac08501b29ef8109f"
Response
On success, the API returns detailed information about the video translation request.
If processing is completed, the output_file field will contain the translated video URL.
{
"_id": "694adceac08501b29ef8109f",
"project_title": "My Project",
"input_file": "https://lingui-dev.s3.amazonaws.com/input/trim_copy_1766513897882.mp4",
"input_language": "english",
"output_language": "hindi",
"speed": "1",
"pitch": "0",
"ttt_model": "narris",
"stt_model": "narris_fast",
"status": "finished",
"createdAt": "2025-12-23T18:18:18.350Z",
"updatedAt": "2025-12-23T18:18:50.348Z",
"finishedAt": "2025-12-23T18:18:50.347Z",
"output_file": "https://lingui-dev.s3.amazonaws.com/video_features/output/20251223181848_20251223181846.mp4"
}curl
curl --location 'https://api.narris.io/api/vt/694adceac08501b29ef8109f' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY'
• Video translation requests are processed asynchronously. Always store the returned log_id to track translation status.
• Jobs may remain in pending or processing state depending on video length, target language, and system load.
• Use the Fetch Video Translation List endpoint to view all translation jobs and Fetch Video Translation By ID to retrieve the final translated video and associated metadata.