Voice-over with captions
Your script read by a natural AI voice, loudness-normalized, with word-timed captions. 1 live · 1 in the catalog.
| Provider | Price | Status |
|---|---|---|
| Voice-over with captionsSuperpowers voice-over | $0.218 / call | Live |
Success rate and speed will show once a provider has 5 real calls in the last 30 days.
Run a comparison
Pick up to 6 live providers. Each one is charged at its own price; failures are free.
Questions
Which Voice-over with captions API is cheapest?
The cheapest is Superpowers voice-over at $0.218 per call. Failed calls are not charged.
How do I call a Voice-over with captions API from an AI agent?
Connect your agent once: paste the message from superpowers.tools/docs into Claude, ChatGPT or Codex. Then ask in your own words, and your agent picks this provider and runs it. You pay only when a call works, and new accounts get $5 free. Developers can call POST /v1/run with "tool": "voiceover.render" or use the MCP server.
For developersAPI call and the shared input and output format
Call it with one API key: POST /v1/run with "tool": "voiceover.render", or through the MCP server. Every provider takes the same input and returns the same output, and failed calls are not charged.
Input
{
"type": "object",
"additionalProperties": false,
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 400
},
"description": "The script, one line per sentence or shot, written by you (at most 600 characters in total). Any language Eleven v4 speaks"
},
"voice": {
"type": "string",
"maxLength": 40,
"default": "jessica",
"description": "jessica (playful, warm), sarah (confident), chris (down-to-earth), eric (smooth), or an ElevenLabs voice id"
},
"pause_ms": {
"type": "integer",
"minimum": 0,
"maximum": 3000,
"default": 350,
"description": "Silence between lines"
},
"loudness": {
"type": "string",
"enum": [
"social",
"podcast",
"broadcast"
],
"default": "social",
"description": "social = -14 LUFS (Reels, TikTok, YouTube), podcast = -16, broadcast = -23 (EBU R128)"
},
"caption_chars": {
"type": "integer",
"minimum": 16,
"maximum": 80,
"default": 42,
"description": "Longest caption line"
}
}
}Normalized output
{
"audio_url": "",
"srt_url": "",
"vtt": "",
"duration_s": 0,
"loudness_lufs": 0,
"lines": [
{
"text": "",
"start_s": 0,
"end_s": 0
}
]
}