VIDEO LOCALIZATION · BUILT FOR DEVELOPERS

Video Translation
& AI Dubbing API

Your video. Another language.
One workflow your app can run.

Translate, review and dub videos through a REST API. Keep the background sound, add translated captions, and receive a finished video with SRT files.

$1 in free API trial credit for eligible new users. Start with a 20–30 second clip to check the result.

Standard $0.60/min · As low as $0.36/min with $20,000 in net top-ups over the past 365 days. See all discount tiers →

ASYNC VIDEO WORKFLOW REST / v1
product-walkthrough.mp4Source video · English
INPUT
  1. 1
    Recognize & translateChoose your target language
  2. 2
    Review the wordsOptional source + translation approval
  3. 3
    Dub & renderVoiceover + original background sound
VIDEOSOURCE SRTTRANSLATED SRT

Workflow illustration · one target language per job

Video + SRTDubbed video and two subtitle files
2 review stagesIncluded when enabled
2 concurrent jobsDedicated translation capacity
60 min / 2 GiBMaximum source per video job

FROM SOURCE TO DELIVERY

Build video translation into your product

A video translation API handles the work between a source video and its localized version. UnmarkAI exposes that work as an asynchronous job, with optional human review before voiceover.

  1. 01

    Upload your source

    Create a signed upload or import a directly downloadable HTTPS video URL. Wait until the upload is ready.

  2. 02

    Choose language and quality

    Submit a video_translation job with one target language. Choose Standard or Advanced and whether to render translated subtitles.

  3. 03

    Review before voiceover

    Optionally pause twice to correct the source transcript and translation. Confirm each stage through the review API.

  4. 04

    Collect video and subtitles

    Poll the job or receive signed webhooks. On success, download the video and both SRT files before the links expire.

ALREADY USING REMOVE TEXT?

Clean the old captions. Then create the new version.

For videos you own or are authorized to localize, run remove_text first. Upload or import the clean result, then start video_translation. Cleanup and translation are separate, separately billed jobs.

Explore subtitle removal API

CONTROL THE WORDS AND THE OUTPUT

Useful controls, a compact API

source_language

Auto-detect or specify

Use auto or provide the source language when you already know it.

target_language

One language per job

Pass a supported code such as en, es, ja or zh. Create separate jobs for additional languages.

advanced_quality

Standard or Advanced

Choose false for Standard or true for higher-quality processing. The selected rate is reserved before processing.

manual_review

Two text checkpoints

Correct names, numbers and terminology in the source and translation before voiceover. Defaults to false.

subtitle_enabled

Translated captions

Defaults to true. Set false when you do not want translated subtitles rendered into the output video.

metadata

Connect jobs to your assets

Attach application metadata, up to 16 KiB, for your orders, videos or localization pipeline.

Current public API scope: automatic voiceover, source-resolution video and preserved background sound. OCR boxes, custom voice selection, lip sync and in-job subtitle cleanup are not public request parameters. Check the API contract →

WATCH, LISTEN, THEN DECIDE

Evaluate the moments that matter

Use product tutorials, dialogue and captioned footage to judge fit. Example videos are being prepared; the slots below are not published performance results.

English → SpanishVideo example coming soon

Product walkthrough

Check technical terms, narration pacing, and subtitle readability.

Chinese → EnglishVideo example coming soon

Two-person dialogue

Listen for speaker changes, interruptions, and emotional delivery.

Clean → translate → captionVideo example coming soon

Captioned source video

Inspect the cleaned background, then check the new voice and subtitles.

For a fair quality comparison, use the same authorized source, language pair and subtitle settings. Compare names and numbers, speaker consistency, timing, background sound and caption legibility. No side-by-side quality ranking has been established on this page.

A CLEAR STARTING COST

Video translation API pricing

Pay from your API wallet. Standard and Advanced use the same integration and output contract.

STANDARD

$0.60 / source minute

Start here to assess your language pair and content.

  • Automatic translation and voiceover
  • Optional source and translation review
  • Translated subtitles at no extra charge
Start with Standard
ADVANCED

$1.50 / source minute

Enable advanced_quality for higher-quality processing.

  • Automatic translation and voiceover
  • Optional source and translation review
  • Translated subtitles at no extra charge
Start with Advanced

Published base rates, before account discounts. Source duration rounds up to a whole second, minimum one second. A 10-minute, single-target video is $6 Standard or $15 Advanced at base rates. Each additional target is a separate billed job. GET /v1/balance is authoritative for your effective rates.

Top up over time. Pay less per minute.

Save up to 40% on API processing. Your tier is based on net API wallet top-ups in the past 365 days; qualifying payments can add up across multiple top-ups.

At $500 in qualifying top-ups: $0.48/minStandard translation · 20% off the base rate
USD per minute at each qualifying top-up tier
Net top-ups in past 365 daysDiscountStandardAdvanced
Base rate$0.60$1.50
$100+10% off$0.54$1.35
$500+20% off$0.48$1.20
$2,000+25% off$0.45$1.125
$5,000+30% off$0.42$1.05
$10,000+35% off$0.39$0.975
$20,000+40% off$0.36$0.90

The lowest rate requires $20,000 in qualifying net top-ups. Each payment counts for 365 days from settlement; refunds, chargebacks and aging payments can lower your tier. This is a usage-rate discount, not a discount on the amount deposited. Promotional credits do not qualify.

API wallet funds do not expire. The discount applies to both text removal and video translation; website points and subscriptions are separate. Jobs lock their rate when funds are reserved. Per-minute figures are equivalents of per-second billing, rounded up to whole seconds with a one-second minimum. Pricing rules · Check your wallet tier. GET /v1/balance provides your authoritative effective rates.

Review time does not add cost. Each review stage has a 72-hour deadline; saving edits does not extend it.

Charge on successful delivery. Failed or canceled translation jobs release the full reservation. Download results within their retention period.

COMPARE THE CONTRACT, NOT JUST THE HEADLINE

UnmarkAI, HeyGen, ElevenLabs and Rask AI

Different APIs solve different localization problems. These are published API prices and documented features, not a controlled quality benchmark or website subscription comparison.

Sources checked . USD; taxes, discounts, plan access and optional features may change the total. Confirm the selected model and mode before purchase.

Video translation and AI dubbing API comparison
ProviderPublished API rateWorkflow & accessWhat to verify
UnmarkAIBase: $0.60 Standard / $1.50 Advanced per minute. At the 40%-off tier: $0.36 / $0.90 per minute.Source and translation text review; dubbed video and SRT files. Source resolution and background sound retained.

Separate API wallet; no website subscription required. Maximum discount requires $20,000 in net top-ups over the trailing 365 days; lower tiers start at $100.

One target per job. No public lip-sync or voice-selection parameter. Hardcoded subtitle cleanup is a separate job.

API contract & pricing

HeyGen$1 Audio Only / $2 Speed Lip Sync / $4 Precision Lip Sync per minuteMode-specific video translation with audio-only and lip-synced options.

Pay-as-you-go API; separate from website plans.

Proofread API is Enterprise-only. Rates shown are from the mode table, not its general $2/min summary.

Official API mode prices

ElevenLabsv1: $0.33 watermarked / $0.50 without watermark; v2: $2.20 per minuteAudio/video dubbing and speaker preservation; v2 documents 90+ languages.

API pricing and available usage depend on the account plan.

v1 and v2 are different offerings. The v2 documentation labels it Alpha; do not apply v1 pricing to v2.

Official API prices

Rask AIContact sales for API pricingTranslation, dubbing, captions and lip sync; advertises 130+ languages.

API access advertised for Business and Enterprise plans.

Confirm your API quote and enabled features. Website subscription minutes are not a verified API unit price.

Official API offering

ElevenLabs model and language details: official dubbing documentation. Advertised capabilities do not establish equal output quality. Compare samples for the exact version you intend to use.

Need text approval in your workflow?

UnmarkAI includes two optional text review stages in both quality tiers. Build approval into a localization tool for courses, tutorials or client videos.

Need lip sync or a specific voice?

Evaluate an API that explicitly offers those controls. UnmarkAI’s public translation request currently does not expose them.

Need high-volume delivery?

Check concurrency, model access, retention and account pricing. Run a representative sample before committing a video library.

YOUR FIRST TRANSLATION JOB

A small request. A complete video workflow.

Create an API key with jobs:write and jobs:read, check your trial credit or top up the wallet, and complete an upload. Set UNMARKAI_API_KEY and IDEMPOTENCY_KEY on your server; replace the sample upload ID. This example creates a job and checks it once.

cURL · video_translation
# Run on your server. Create an API key and fund the API wallet first.
# Complete an upload, then replace upload_id in the JSON below.
# Reuse the same idempotency key and body when retrying this request.
curl --fail-with-body https://api.unmarkai.net/v1/jobs \
  -H "Authorization: Bearer $UNMARKAI_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data '{
  "type": "video_translation",
  "input": {
    "upload_id": "REPLACE_WITH_COMPLETED_UPLOAD_ID"
  },
  "source_language": "auto",
  "target_language": "es",
  "manual_review": true,
  "advanced_quality": false,
  "subtitle_enabled": true
}'

# Save the returned id as JOB_ID. Check its state:
curl --fail-with-body "https://api.unmarkai.net/v1/jobs/$JOB_ID" \
  -H "Authorization: Bearer $UNMARKAI_API_KEY"

# waiting_review: fetch /jobs/$JOB_ID/review, save text, then confirm
# /jobs/$JOB_ID/continue. Repeat for source and translation stages.
# succeeded: download result.video.url and the two SRT result URLs.

Keep uma_live_* keys on a trusted server. Poll with backoff or subscribe to signed job events. A waiting_review job needs approval at both stages; it will not finish unattended. Signed output links last at most one hour; retained results are available for seven days.

DEVELOPER QUESTIONS

Video translation API FAQ

What is a video translation API?

A video translation API lets your application submit a video and receive a version in another language. UnmarkAI transcribes, translates, generates voiceover, and returns a dubbed video plus original and translated SRT files through an asynchronous REST job.

Is AI dubbing the same as text-to-speech?

No. Text-to-speech turns supplied text into audio. This AI dubbing API accepts a video and handles recognition, translation, voiceover and video output. Use it for a complete video localization task rather than a standalone TTS request.

How much does the UnmarkAI video translation API cost?

Published base rates are $0.60/minute for Standard and $1.50/minute for Advanced. Billing uses source duration rounded up to a whole second, with a one-second minimum. API wallet discounts apply. GET /v1/balance is authoritative for your effective rate; website points and subscriptions are separate.

Can I review the transcript and translation before dubbing?

Yes. Set manual_review to true. The job pauses separately for source text and translated text review. Fetch and edit the text through the review endpoints, then confirm each stage. Review and text edits carry no extra processing charge; each stage has a 72-hour deadline.

Can I translate a video into multiple languages?

Create one job per target_language, using a completed upload. Each job is billed separately for its source duration. Two translation jobs can run concurrently per account, independently of text-removal capacity. There is no multi-target array in the current public request.

Does the API remove hardcoded subtitles?

The video_translation request does not include a subtitle-removal option. For authorized caption replacement, first process the video with the separate remove_text API, then upload or import that clean result for translation. Both processing jobs are billed separately.

Does the public API support OCR boxes, lip sync or choosing voices?

Those options are not exposed in the current public video_translation request. Its documented controls include source and target language, manual_review, advanced_quality and subtitle_enabled. Do not assume all settings in the online studio are API parameters.

What files and limits should my integration expect?

Use a completed video upload, up to 2 GiB and 60 minutes. Successful jobs expose result.video, result.source_subtitles and result.translated_subtitles, each with a URL and expiration. Signed URLs last at most one hour; results are retained for seven days. Download and store the files your application needs.

What happens if a job fails or a review expires?

Translation funds are reserved before processing and charged only when the final video succeeds. Failure or cancellation releases the full reservation. A review that misses its 72-hour deadline is canceled with review_expired. Inspect the job error before retrying.

MAKE YOUR NEXT VIDEO MULTILINGUAL

Start with one source. Test one language.

Check the words, listen to the delivery, then automate the workflow that fits your content.