Start creating

Leap API

Auto Subtitle APIfal's model, through Leap

Burns word-timed captions into a video, in the font, colors and position you choose, and returns the transcript with SRT and VTT. Billed per minute of the video. One Leap key and one balance run it and every other model, priced per call in dollars.

First $5 top-up, no card fee.

  • One key for every model
  • Every call quoted first
  • A failed call costs nothing
# Videos and sounds go up in three steps: start an upload of the file's# exact size, PUT the file where the answer says, then complete it.upload() {  UPLOAD=$(jq -n --arg type "$2" --arg name "$1" --argjson bytes "$(wc -c < "$1")" \    '{content_type: $type, bytes: $bytes, filename: $name}' \    | curl -s https://api.tryleap.ai/v1/uploads -H "x-api-key: $LEAP_API_KEY" \      -H "content-type: application/json" -d @-)  echo "$UPLOAD" | jq -r '"url = \"\(.upload_url)\"", "request = \"\(.upload_method)\"",    (.upload_headers | to_entries[] | "header = \"\(.key): \(.value)\"")' \    | curl -sf -K - -T "$1" > /dev/null  curl -s -X POST "https://api.tryleap.ai/v1/uploads/$(echo "$UPLOAD" | jq -r .id)/complete" \    -H "x-api-key: $LEAP_API_KEY" -H "content-type: application/json" -d '{}' | jq -r .id} FILE_ID=$(upload clip.mp4 video/mp4) # Then run the model with them.jq -n --arg video "$FILE_ID" '{  "model": "fal/auto-subtitle",  "input": {    "video": $video  }}' \  | curl https://api.tryleap.ai/v1/generations \    -H "x-api-key: $LEAP_API_KEY" \    -H "content-type: application/json" \    -H "prefer: wait=60" \    -d @- # Video often outlasts the wait and answers "queued" or "running".# Put its "id" in GENERATION_ID and read it again until it is done:# curl https://api.tryleap.ai/v1/generations/$GENERATION_ID -H "x-api-key: $LEAP_API_KEY"

Set LEAP_API_KEY and send it. It uploads your video first, since inputs take file IDs, not URLs. With prefer: wait=60 the answer holds the result when the call finishes within a minute; a longer one is read again by its ID.

Model ID
fal/auto-subtitle
Price per call
$0.041 a minute
This call
It costs $0.041 a minute.
First top-up
A first top-up of $5, with no fee, pays for your first calls.

What it makes

Made with Auto Subtitle

Real Auto Subtitle runs on Leap. Each one passed Leap's media quality check before it was shown.

  • Bold, three words at a time, on a wide film scene, a real run on Leap

    Bold, three words at a time, on a wide film scene

  • Word-timed captions on a rooftop line, a real run on Leap

    Word-timed captions on a rooftop line

  • Karaoke: every word lights up as she says it, a real run on Leap

    Karaoke: every word lights up as she says it

  • Karaoke on a selfie rant from a burning office, a real run on Leap

    Karaoke on a selfie rant from a burning office

The answer

What comes back

A generation. Check status first: succeeded has the file in output, a signed link that works for 24 hours, so download what you keep. failed has error and failure_cause, and costs nothing. usage.cost_usd is what the call was charged.

200 OK, trimmed
{  "id": "gen_...",  "object": "generation",  "model": "fal/auto-subtitle",  "status": "succeeded",  "output": [    {      "type": "video",      "url": "https://api.tryleap.ai/files/..."    }  ],  "error": null,  "usage": {    "cost_usd": "..."  }}

Inputs

What Auto Subtitle takes

Only video is needed; everything else has a default. The same schema is public, with no key, at api.tryleap.ai/v1/public/models/fal/auto-subtitle.

Videovideo
An image, requiredThe video to caption: an uploaded file, by ID. Up to 10 minutes and 100 MB.
Languagelanguage
English, Spanish, Portuguese, French, German, Italian, Dutch, Polish, Russian, Ukrainian, Turkish, Arabic, Hebrew, Persian, Hindi, Bengali, Urdu, Tamil, Indonesian, Malay, Filipino, Vietnamese, Thai, Chinese, Japanese, Korean, Swedish, Danish, Norwegian, Finnish, Greek, Czech, Romanian, Hungarian, Swahili, Yoruba. Default: EnglishThe language spoken in the video.
Fontsettings.font
Montserrat, Poppins, Inter, Bebas Neue, Oswald, Roboto. Default: Montserrat
Font sizesettings.font_size
20 to 150. Default: 100
Font weightsettings.font_weight
Normal, Bold, Black. Default: Bold
Text colorsettings.font_color
White, Black, Yellow, Orange, Red, Pink, Purple, Blue, Cyan, Green, Magenta, Gray, Brown. Default: White
Spoken word colorsettings.highlight_color
White, Black, Yellow, Orange, Red, Pink, Purple, Blue, Cyan, Green, Magenta, Gray, Brown. Default: Purple
Outline widthsettings.stroke_width
0 to 10. Default: 3
Outline colorsettings.stroke_color
White, Black, Yellow, Orange, Red, Pink, Purple, Blue, Cyan, Green, Magenta, Gray, Brown. Default: Black
Backgroundsettings.background_color
None, White, Black, Yellow, Orange, Red, Pink, Purple, Blue, Cyan, Green, Magenta, Gray, Brown. Default: None
Background opacitysettings.background_opacity
0 to 1. Default: 0
Positionsettings.position
Bottom, Center, Top. Default: Bottom
Vertical offsetsettings.y_offset
-200 to 200. Default: 75
Words at a timesettings.words_per_line
1 to 12. Default: 3
Bounce insettings.animation
On or off. Default: onEach caption bounces in as it appears.

Pricing

Price per call

It costs $0.041 a minute. A first top-up of $5, with no fee, pays for your first calls. Prices are the provider's list price plus our margin (35% on most models, less on the dearest video), read from the catalog, and a quote gives the exact price of any input for free.

A free quote
# With $FILE_ID from the uploads above.jq -n --arg video "$FILE_ID" '{  "model": "fal/auto-subtitle",  "input": {    "video": $video  }}' \  | curl https://api.tryleap.ai/v1/quotes \    -H "x-api-key: $LEAP_API_KEY" \    -H "content-type: application/json" \    -d @-

How it works

How the Auto Subtitle API works

Every model takes the same request, a model ID and its input, and results, prices, failures and limits work the same way for all of them.

  • Wait for it, or hear when it ends

    prefer: wait=60 holds the request until the result is ready, for up to a minute. A longer run is read again by its ID, or a signed webhook tells your server when it ends.

    prefer: wait=60 / "webhook": "https://..."

    In the docs
  • Failed calls cost nothing

    The price is held when a call starts and charged only if it succeeds. A failed or refused call comes back with its failure_cause, and the hold is released.

    "status": "failed" / "failure_cause": "provider_refused"

    In the docs
  • The price before the call

    POST /v1/quotes takes the same body as a generation and returns its exact price, with the input checked, for free. Every result carries what it was charged.

    POST https://api.tryleap.ai/v1/quotes / "cost_usd"

    In the docs
  • Rate limits

    600 requests a minute per API key and 300 per IP address. A 429 carries Retry-After with the seconds to wait.

    RateLimit-Remaining / Retry-After

    In the docs
  • Safe retries

    Send an idempotency key and a retry after a dropped connection returns the same generation instead of starting a second one.

    idempotency-key: <uuid>

    In the docs
  • Batches

    POST /v1/batches starts up to 50 calls in one request, priced and held together, so either all start or none do.

    POST https://api.tryleap.ai/v1/batches

    In the docs

MCP

Or let your agent call it.

Leap's MCP server lets Claude Code, Claude, VS Code and other MCP clients run Auto Subtitle, read its inputs and fetch the result, on your balance. Signing in happens in the browser, so there is no key to paste.

Add Leap to Claude Code
claude mcp add --transport http leap https://app.tryleap.ai/api/mcp

Claude Code signs you in through the browser the first time it calls Leap.

Teach your coding agent the Leap API
curl -fsSL https://www.tryleap.ai/install.sh | sh

Installs the Leap skill for every coding agent it finds: which endpoint to call, how to read a model's inputs, when to wait and when to poll.

Questions

Auto Subtitle API questions

How much does the Auto Subtitle API cost?
It costs $0.041 a minute. That is the provider's list price plus our margin, the same as in the studio. POST /v1/quotes prices any input for free before you run it.
Can I try the Auto Subtitle API for free?
No. API keys run on paid credit, so a key's first call needs a top-up, and quotes are free. A first top-up of $5, with no fee, pays for your first calls.
Do I pay for calls that fail?
No. The price is held when a call starts and charged only if it succeeds. A call that fails, or that the model's safety filter refuses, comes back with status "failed" and a failure_cause, and the hold is released.
Is this fal's own API?
No. Leap is a separate service: it sends your call to fal's model and gives you what it makes, so you need no fal account. One Leap key runs Auto Subtitle and every other model in the catalog, from one balance.
What are the rate limits?
600 requests a minute per API key and 300 a minute per IP address. A batch starts up to 50 calls in one request. A 429 says how long to wait in its Retry-After header.
Can an AI agent call it?
Yes. Leap's MCP server lets Claude Code, Claude, VS Code and other MCP clients find Auto Subtitle, read its inputs, run it and fetch the result on your balance. The client signs you in through the browser, so there is no key to paste.

Build with Auto Subtitle.

Keys run on paid credit, and the first top-up has no fee. The same key runs every model on Leap.

Get an API key