source_languageAuto-detect or specify
Use auto or provide the source language when you already know it.
VIDEO LOCALIZATION · BUILT FOR DEVELOPERS
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 →
Workflow illustration · one target language per job
FROM SOURCE TO DELIVERY
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.
Create a signed upload or import a directly downloadable HTTPS video URL. Wait until the upload is ready.
Submit a video_translation job with one target language. Choose Standard or Advanced and whether to render translated subtitles.
Optionally pause twice to correct the source transcript and translation. Confirm each stage through the review API.
Poll the job or receive signed webhooks. On success, download the video and both SRT files before the links expire.
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.
CONTROL THE WORDS AND THE OUTPUT
source_languageUse auto or provide the source language when you already know it.
target_languagePass a supported code such as en, es, ja or zh. Create separate jobs for additional languages.
advanced_qualityChoose false for Standard or true for higher-quality processing. The selected rate is reserved before processing.
manual_reviewCorrect names, numbers and terminology in the source and translation before voiceover. Defaults to false.
subtitle_enabledDefaults to true. Set false when you do not want translated subtitles rendered into the output video.
metadataAttach 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
Use product tutorials, dialogue and captioned footage to judge fit. Example videos are being prepared; the slots below are not published performance results.
Check technical terms, narration pacing, and subtitle readability.
Listen for speaker changes, interruptions, and emotional delivery.
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
Pay from your API wallet. Standard and Advanced use the same integration and output contract.
$0.60 / source minute
Start here to assess your language pair and content.
$1.50 / source minute
Enable advanced_quality for higher-quality processing.
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.
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.
| Net top-ups in past 365 days | Discount | Standard | Advanced |
|---|---|---|---|
| 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
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.
| Provider | Published API rate | Workflow & access | What to verify |
|---|---|---|---|
| UnmarkAI | Base: $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. |
| HeyGen | $1 Audio Only / $2 Speed Lip Sync / $4 Precision Lip Sync per minute | Mode-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. |
| ElevenLabs | v1: $0.33 watermarked / $0.50 without watermark; v2: $2.20 per minute | Audio/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. |
| Rask AI | Contact sales for API pricing | Translation, 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. |
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.
UnmarkAI includes two optional text review stages in both quality tiers. Build approval into a localization tool for courses, tutorials or client videos.
Evaluate an API that explicitly offers those controls. UnmarkAI’s public translation request currently does not expose them.
Check concurrency, model access, retention and account pricing. Run a representative sample before committing a video library.
YOUR FIRST TRANSLATION JOB
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.
# 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
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.
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.
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.
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.
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.
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.
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.
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.
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
Check the words, listen to the delivery, then automate the workflow that fits your content.