Sign inGet $5 free
Compare/Voice-over with captions

Voice-over with captions

Your script read by a natural AI voice, loudness-normalized, with word-timed captions. 1 live · 1 in the catalog.

CheapestVoice-over with captions$0.218 per call
ProviderPriceStatus
Voice-over with captionsSuperpowers voice-over$0.218 / callLive

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.

Sign in to run comparisons. New accounts get $5 free.Sign in

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
    }
  ]
}