# heygen-video-translate > Convert any video into 175+ languages with synchronized voice translation, AI-voice cloning, and accurate lip sync. Just upload your video (or provide a link), select a target language, and HeyGen recreates the speech in that language. 0.05$ per second. ## Overview - **Endpoint**: `POST https://api.muapi.ai/api/v1/heygen-video-translate` - **Model ID**: `heygen-video-translate` - **Category**: video to video - **Variant**: Video Translate - **Family**: tools - **Cost**: 0.25 credits per call (some models compute cost dynamically based on params) ## API Usage MuApi uses a **submit-then-poll** pattern: submit a job, get a `request_id`, then poll the predictions endpoint until `status` is `completed`. Optionally pass `?webhook=YOUR_URL` on the submit call to receive a POST callback when the job finishes (skip polling). **Authentication**: send your MuApi key in the `x-api-key` header. Get one at https://muapi.ai/access-keys. ### 1. Submit a job ```http POST https://api.muapi.ai/api/v1/heygen-video-translate Content-Type: application/json x-api-key: YOUR_API_KEY ``` **Minimum (required only):** ```json { "video_url": "https://example.com/your-video_url" } ``` **Full example (all params):** ```json { "video_url": "https://example.com/your-video_url", "language": "Hindi" } ``` **Response:** ```json { "request_id": "abc123", "status": "processing" } ``` ### 2. Poll for the result ```http GET https://api.muapi.ai/api/v1/predictions/{request_id}/result x-api-key: YOUR_API_KEY ``` Possible `status` values: `queued`, `pending`, `processing`, `completed`, `failed`, `cancelled`. Poll every 2-5 seconds until terminal. When `completed`, the result URLs are in the `outputs` array. **Example response when `completed`:** ```json { "id": "abc123", "status": "completed", "outputs": [ "https://cdn.muapi.ai/.../output.png" ], "urls": { "get": "https://api.muapi.ai/api/v1/predictions/abc123/result" }, "created_at": "2026-05-08T12:34:56Z", "has_nsfw_contents": [] } ``` ### cURL ```bash # 1. Submit REQUEST_ID=$(curl -s -X POST https://api.muapi.ai/api/v1/heygen-video-translate \ -H "x-api-key: $MUAPI_API_KEY" \ -H "Content-Type: application/json" \ -d '{"video_url":"https://example.com/your-video_url"}' | jq -r .request_id) # 2. Poll until completed while :; do RESP=$(curl -s https://api.muapi.ai/api/v1/predictions/$REQUEST_ID/result -H "x-api-key: $MUAPI_API_KEY") STATUS=$(echo "$RESP" | jq -r .status) [ "$STATUS" = "completed" ] && echo "$RESP" | jq .outputs && break [ "$STATUS" = "failed" ] && echo "$RESP" && exit 1 sleep 3 done ``` ### Python ```python import os, time, requests API = "https://api.muapi.ai/api/v1" headers = {"x-api-key": os.environ["MUAPI_API_KEY"]} r = requests.post(f"{API}/heygen-video-translate", headers=headers, json={"video_url":"https://example.com/your-video_url"}) request_id = r.json()["request_id"] while True: res = requests.get(f"{API}/predictions/{request_id}/result", headers=headers).json() if res["status"] == "completed": print(res["outputs"]); break if res["status"] == "failed": raise RuntimeError(res.get("error")); time.sleep(3) ``` ## Input Schema The API accepts the following input parameters: - **`video_url`** (`string`, _required_): URL of the input video. - **`language`** (`string`, _optional_): The target language in which the video will be translated. - Default: `"Hindi"` - Options: `"English"`, `"Spanish"`, `"French"`, `"Hindi"`, `"Italian"`, `"German"`, `"Polish"`, `"Portuguese"`, `"Chinese"`, `"Japanese"`, `"Dutch"`, `"Turkish"`, `"Korean"`, `"Danish"`, `"Arabic"`, `"Romanian"`, `"Mandarin"`, `"Filipino"`, `"Swedish"`, `"Indonesian"`, `"Ukrainian"`, `"Greek"`, `"Czech"`, `"Bulgarian"`, `"Malay"`, `"Slovak"`, `"Croatian"`, `"Tamil"`, `"Finnish"`, `"Russian"`, `"Afrikaans (South Africa)"`, `"Albanian (Albania)"`, `"Amharic (Ethiopia)"`, `"Arabic (Algeria)"`, `"Arabic (Bahrain)"`, `"Arabic (Egypt)"`, `"Arabic (Iraq)"`, `"Arabic (Jordan)"`, `"Arabic (Kuwait)"`, `"Arabic (Lebanon)"`, `"Arabic (Libya)"`, `"Arabic (Morocco)"`, `"Arabic (Oman)"`, `"Arabic (Qatar)"`, `"Arabic (Saudi Arabia)"`, `"Arabic (Syria)"`, `"Arabic (Tunisia)"`, `"Arabic (United Arab Emirates)"`, `"Arabic (Yemen)"`, `"Armenian (Armenia)"`, `"Azerbaijani (Latin, Azerbaijan)"`, `"Bangla (Bangladesh)"`, `"Basque"`, `"Bengali (India)"`, `"Bosnian (Bosnia and Herzegovina)"`, `"Bulgarian (Bulgaria)"`, `"Burmese (Myanmar)"`, `"Catalan"`, `"Chinese (Cantonese, Traditional)"`, `"Chinese (Jilu Mandarin, Simplified)"`, `"Chinese (Mandarin, Simplified)"`, `"Chinese (Northeastern Mandarin, Simplified)"`, `"Chinese (Southwestern Mandarin, Simplified)"`, `"Chinese (Taiwanese Mandarin, Traditional)"`, `"Chinese (Wu, Simplified)"`, `"Chinese (Zhongyuan Mandarin Henan, Simplified)"`, `"Chinese (Zhongyuan Mandarin Shaanxi, Simplified)"`, `"Croatian (Croatia)"`, `"Czech (Czechia)"`, `"Danish (Denmark)"`, `"Dutch (Belgium)"`, `"Dutch (Netherlands)"`, `"English (Australia)"`, `"English (Canada)"`, `"English (Hong Kong SAR)"`, `"English (India)"`, `"English (Ireland)"`, `"English (Kenya)"`, `"English (New Zealand)"`, `"English (Nigeria)"`, `"English (Philippines)"`, `"English (Singapore)"`, `"English (South Africa)"`, `"English (Tanzania)"`, `"English (UK)"`, `"English (United States)"`, `"Estonian (Estonia)"`, `"Filipino (Philippines)"`, `"Finnish (Finland)"`, `"French (Belgium)"`, `"French (Canada)"`, `"French (France)"`, `"French (Switzerland)"`, `"Galician"`, `"Georgian (Georgia)"`, `"German (Austria)"`, `"German (Germany)"`, `"German (Switzerland)"`, `"Greek (Greece)"`, `"Gujarati (India)"`, `"Hebrew (Israel)"`, `"Hindi (India)"`, `"Hungarian (Hungary)"`, `"Icelandic (Iceland)"`, `"Indonesian (Indonesia)"`, `"Irish (Ireland)"`, `"Italian (Italy)"`, `"Japanese (Japan)"`, `"Javanese (Latin, Indonesia)"`, `"Kannada (India)"`, `"Kazakh (Kazakhstan)"`, `"Khmer (Cambodia)"`, `"Korean (Korea)"`, `"Lao (Laos)"`, `"Latvian (Latvia)"`, `"Lithuanian (Lithuania)"`, `"Macedonian (North Macedonia)"`, `"Malay (Malaysia)"`, `"Malayalam (India)"`, `"Maltese (Malta)"`, `"Marathi (India)"`, `"Mongolian (Mongolia)"`, `"Nepali (Nepal)"`, `"Norwegian Bokmål (Norway)"`, `"Pashto (Afghanistan)"`, `"Persian (Iran)"`, `"Polish (Poland)"`, `"Portuguese (Brazil)"`, `"Portuguese (Portugal)"`, `"Romanian (Romania)"`, `"Russian (Russia)"`, `"Serbian (Latin, Serbia)"`, `"Sinhala (Sri Lanka)"`, `"Slovak (Slovakia)"`, `"Slovenian (Slovenia)"`, `"Somali (Somalia)"`, `"Spanish (Argentina)"`, `"Spanish (Bolivia)"`, `"Spanish (Chile)"`, `"Spanish (Colombia)"`, `"Spanish (Costa Rica)"`, `"Spanish (Cuba)"`, `"Spanish (Dominican Republic)"`, `"Spanish (Ecuador)"`, `"Spanish (El Salvador)"`, `"Spanish (Equatorial Guinea)"`, `"Spanish (Guatemala)"`, `"Spanish (Honduras)"`, `"Spanish (Mexico)"`, `"Spanish (Nicaragua)"`, `"Spanish (Panama)"`, `"Spanish (Paraguay)"`, `"Spanish (Peru)"`, `"Spanish (Puerto Rico)"`, `"Spanish (Spain)"`, `"Spanish (United States)"`, `"Spanish (Uruguay)"`, `"Spanish (Venezuela)"`, `"Sundanese (Indonesia)"`, `"Swahili (Kenya)"`, `"Swahili (Tanzania)"`, `"Swedish (Sweden)"`, `"Tamil (India)"`, `"Tamil (Malaysia)"`, `"Tamil (Singapore)"`, `"Tamil (Sri Lanka)"`, `"Telugu (India)"`, `"Thai (Thailand)"`, `"Turkish (Türkiye)"`, `"Ukrainian (Ukraine)"`, `"Urdu (India)"`, `"Urdu (Pakistan)"`, `"Uzbek (Latin, Uzbekistan)"`, `"Vietnamese (Vietnam)"`, `"Welsh (United Kingdom)"`, `"Zulu (South Africa)"`, `"English - Your Accent"`, `"English - American Accent"` ## Output Schema The polling endpoint returns the following fields: - **`id`** (`string`): The request ID. - **`status`** (`string`): One of `queued`, `pending`, `processing`, `completed`, `failed`, `cancelled`. - **`outputs`** (`array`): URLs to generated images/videos/audio. Empty until `status` is `completed`. - **`urls.get`** (`string`): Self-link to re-fetch this prediction. - **`error`** (`string` | `null`): Error message if `status` is `failed`. - **`created_at`** (`string`): ISO-8601 timestamp of when the request was created. - **`has_nsfw_contents`** (`array of boolean`): Per-output NSFW detection flags. ## Webhooks (optional) Append `?webhook=https://your-server/path` to the submit URL. When the job reaches a terminal state, MuApi will POST the same shape as the polling response to your URL — no polling needed. ## Agent Integration MuApi ships an MCP server and CLI so agents (Claude Code, Cursor, custom) can call this endpoint without writing HTTP code: ```bash # Install the CLI npm install -g muapi-cli # Authenticate once muapi auth login # Expose all MuApi models as MCP tools to your agent muapi mcp serve ``` The MCP server exposes tools that wrap submit + poll for every model, including `heygen-video-translate`. See `muapi --help` for category-specific shortcuts (`muapi image generate`, `muapi video from-image`, etc.). ## Related Models - [Image Faceswap](https://muapi.ai/playground/ai-image-face-swap) - [Product Shot](https://muapi.ai/playground/ai-product-shot) - [Image Upscaler](https://muapi.ai/playground/ai-image-upscaler) - [Skin Enhancer](https://muapi.ai/playground/ai-skin-enhancer) - [Product Photography](https://muapi.ai/playground/ai-product-photography) - [Background Remover](https://muapi.ai/playground/ai-background-remover) - [AI Captions](https://muapi.ai/playground/ai-captions) - [Ghibli Style](https://muapi.ai/playground/ai-ghibli-style) - [Anime Generator](https://muapi.ai/playground/ai-anime-generator) - [Image Extension](https://muapi.ai/playground/ai-image-extension) - [Object Eraser](https://muapi.ai/playground/ai-object-eraser) - [Video Translate](https://muapi.ai/playground/heygen-video-translate) - [Video Upscaler Pro](https://muapi.ai/playground/ai-video-upscaler-pro) - [Watermark Remover](https://muapi.ai/playground/video-watermark-remover) - [Dress Change](https://muapi.ai/playground/ai-dress-change) - [Color Photo](https://muapi.ai/playground/ai-color-photo) - [Video Faceswap](https://muapi.ai/playground/ai-video-face-swap) - [Video Background Remover](https://muapi.ai/playground/video-background-remover) - [Video Upscaler](https://muapi.ai/playground/ai-video-upscaler) - [Remix Video](https://muapi.ai/playground/remix-video) ## Resources - [Playground Page](https://muapi.ai/playground/heygen-video-translate) - [API Reference](https://muapi.ai/playground/heygen-video-translate?tab=2) - [Global llms.txt](https://muapi.ai/llms.txt)