Video API from $0.02 a minute

Render 1080p MP4 videos without ffmpeg or servers.

reelsdk is a video rendering API. Send one HTTP call with one API key and get a finished mp4 back, or a signed webhook when it's done. Make narrated slideshows, burned-in captions and complete faceless shorts, or run raw ffmpeg 8.1, from any app.

  • First $1 is free
  • No subscription
  • 9:16, 16:9 or 1:1
curl "https://api.reelsdk.com/v1/slideshow" \
  -H "Authorization: Bearer $REELSDK_KEY" \
  --json '{
    "images": [
      "https://your.app/seville/river.jpg",
      "https://your.app/seville/plaza.jpg",
      "https://your.app/seville/oranges.jpg"
    ],
    "size": "16:9",
    "voiceover": {
      "text": "Three days in Seville...",
      "voice": "luna"
    },
    "captions": "karaoke"
  }'
RenderingReady in 27 s
1080p mp4

Works with

Video endpoints

Four ways to render video

Every clip below is real reelsdk output, each from one API call.

  • Rendered in 9 s

    Photos to slideshow

    Turn your photos into a narrated slideshow with transitions, Ken Burns motion, optional AI voiceover, music and karaoke captions.

  • Rendered in 7 s

    Auto captions

    Burn word-by-word TikTok-style captions straight into any clip. Automatic transcription is built in and included in the price.

  • Rendered in 70 s

    Topic to short

    Send a topic and get a faceless short with a script, AI scene images, voiceover, captions and music in under 2 minutes.

  • Rendered in 11 s

    Raw ffmpeg

    Run any ffmpeg 8.1 command or filter graph, like reframing a 16:9 video to 9:16 with a blurred background fill.

How it works

JSON in, MP4 out.

One key covers every endpoint.
Plain HTTPS and JSON, nothing to install.

Read the API docs
POST/v1/slideshow
curl "https://api.reelsdk.com/v1/slideshow" \
  -H "Authorization: Bearer $REELSDK_KEY" \
  --json '{
    "images": [
      "https://your.app/seville/river.jpg",
      "https://your.app/seville/plaza.jpg",
      "https://your.app/seville/oranges.jpg"
    ],
    "size": "16:9",
    "voiceover": {
      "text": "Three days in Seville...",
      "voice": "luna"
    },
    "captions": "karaoke"
  }'
The result16:9 MP4
Your input

3 photos. One story.

AI voiceover
Karaoke captions

Photos, a clip, a topic or an ffmpeg command. Same API, same workflow.

Video URL or webhook

Built for coding agents

Let your AI agent wire it up.

Building in Lovable, bolt, Cursor or Claude Code? Serverless apps can't pack a 100+ MB ffmpeg binary, so you hit spawn ffmpeg ENOENT. Point your agent at reelsdk and let it build the video pipeline over plain HTTPS.

Read the docs

Pricing

Pay per rendered minute

No subscription, no minimum, prepaid credit. Your first $1 of renders is free.

One minute of 1080p video
reelsdk$0.02
Shotstack$0.20
Creatomate$0.84
  • Slideshows and captions

    $0.02per output minute

    Voiceover $0.05 per 1,000 characters

    Transitions, Ken Burns motion and burned-in captions, with transcription included.

  • Faceless shorts

    All included

    $0.25per short up to 60 s

    $0.35 for shorts up to 90 s

    Script, AI scene images, voiceover, word-by-word captions and music in 6 languages.

  • Raw ffmpeg

    $0.01per compute minute

    ffmpeg 8.1 on a fresh machine per job

    Any command or filter graph, with inputs up to 500 MB each.

A minute is the length of the video you get back; raw ffmpeg is billed by compute time. Full comparison and limits

FAQ

Questions, answered

Why use reelsdk instead of running ffmpeg myself?

Supabase Edge Functions, Cloudflare Workers, Vercel, Netlify and apps built in Lovable or bolt can't run a 100+ MB ffmpeg binary or a long render. You hit bundle size limits or errors like "spawn ffmpeg ENOENT". reelsdk is plain HTTPS and JSON, so it works from any serverless function, n8n, Make, Zapier or a cron job.

How do I get the finished video back?

Create calls wait up to 60 seconds by default (up to 300 seconds with ?wait=) and return the finished job with download links. Longer jobs return a 202 with a poll URL, or pass a webhook_url and we POST the finished job to you, signed with HMAC-SHA256. Outputs stay downloadable for 7 days.

How fast is it, and what does a faceless short cost?

Every job runs on a fresh machine that's ready in about 1.9 seconds. A 30 second 1080x1920 slideshow takes about 40 seconds, captions on a 30 second clip take 30 to 43 seconds and a faceless short takes about 100 seconds. Shorts cost $0.25 up to 60 seconds and $0.35 up to 90 seconds, everything included.

How does it work with Claude Code, Cursor or Lovable?

We ship an open-source MCP server for Claude Code, Cursor and Windsurf (github.com/bitgate/reelapi-mcp, run it with npx -y github:bitgate/reelapi-mcp), a plain-text API reference at /llms.txt and an OpenAPI spec at /openapi.json, so your agent can read the docs and wire up video itself. There's also Shorts Studio (github.com/bitgate/shorts-studio), an open-source starter app you can clone and deploy to Cloudflare.

What are the limits, and how do I get a key?

Each key runs 3 jobs at once and 500 jobs a day, with 20 GiB of uploads a day. Input files can be up to 500 MB each (1 GB per job), media up to 15 minutes, and a job can run for 10 minutes. Sign up with Google to create keys in the dashboard, and email us to raise any limit.

Ready to build?

Ship video from your app today

Your first $1 of renders is free, and one key covers every endpoint.

Moonlit lake with a lit cabin under the mountains