AI Captions API: AI Video Editing

Edit and transform videos with AI Captions via the Muapi REST API. Pay per generation — no subscription needed.

AI Captions API Reference

Endpoint

POST https://api.muapi.ai/api/v1/ai-captions

Submit 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.

Parameters

NameTypeRequiredDescription
video_urlstringYesPublic URL of the video to add captions to. Maximum 600MB or 10 minutes.
languagestringNoLanguage 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"
themestringNoVisual 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"

cURL example

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"

Python example

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.