Edit and transform videos with AI Captions via the Muapi REST API. Pay per generation — no subscription needed.
POST https://api.muapi.ai/api/v1/ai-captionsSubmit a job with your MuApi API key in the x-api-key header, then poll https://api.muapi.ai/api/v1/predictions/{request_id}/result until status is completed.
| Name | Type | Required | Description |
|---|---|---|---|
| video_url | string | Yes | Public URL of the video to add captions to. Maximum 600MB or 10 minutes. |
| language | string | No | Language of the video audio for transcription.Options: English, English (USA), English (UK), English (Australia), English (Canada), Japanese, Chinese, German, Hindi, French, French (France), French (Canada), Korean, Portuguese (Brazil), Portuguese (Portugal), Portuguese, Spanish (Spain), Spanish (Mexico), Italian, Spanish, Indonesian, Dutch, Turkish, Filipino, Polish, Swedish, Bulgarian, Romanian, Arabic (Saudi Arabia), Arabic (UAE), Arabic, Czech, Greek, Finnish, Croatian, Malay, Slovak, Danish, Tamil, Telugu, Ukrainian, Russian, Hungarian, Norwegian, VietnameseDefault: "English" |
| theme | string | No | Visual style/theme for the captions. E.g. Hormozi_1, Hormozi_2.Options: Hormozi_1, Hormozi_2, Hormozi_3, Beast, Ali, Noah, Karl, Luke, Devin, Celine, Maya, Ella, Dan, David, Tracy, Umi, Iman, WilliamDefault: "Hormozi_1" |
REQUEST_ID=$(curl -s -X POST https://api.muapi.ai/api/v1/ai-captions \
-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)
curl -s https://api.muapi.ai/api/v1/predictions/$REQUEST_ID/result -H "x-api-key: $MUAPI_API_KEY"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}/ai-captions", 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)Full docs and agent/MCP integration: llms.txt. Get an API key at muapi.ai/access-keys.