AI shorts API, from $0.25 a short

Topic in, finished faceless short out

Send a topic or your own script and get back a vertical MP4 with a written script, AI images, a voiceover, word-by-word captions and music. It costs $0.25 for up to 60 seconds and $0.35 for up to 90, everything included, and takes about 100 seconds end to end. Pick from 8 visual styles and 6 languages.

  • 8 visual styles
  • 6 languages
  • 15 to 90 seconds

POST /v1/shorts

"status": "succeeded",
"stage": null

  1. planningWrites the script and plans every scene
  2. voiceReads the script aloud
  3. imagesPaints one still per scene
  4. renderingMotion, captions and music

Video, poster and subtitles ready

Visual styles

One scene, eight styles

The same octopus scene, painted by the image model behind the API with each style's own prompt. Every style comes with a caption preset you can override.

  • The same octopus scene painted in the cinematic style

    cinematicdefault

    Anamorphic film still with natural grain

    captions: bold

  • The same octopus scene painted in the photoreal style

    photoreal

    Realistic photo on a 50mm lens

    captions: bold

  • The same octopus scene painted in the anime style

    anime

    Cel-shaded 2D anime key visual

    captions: karaoke

  • The same octopus scene painted in the 3d-cartoon style

    3d-cartoon

    Stylized 3D animated film render

    captions: bold

  • The same octopus scene painted in the watercolor style

    watercolor

    Hand-painted watercolor washes

    captions: minimal

  • The same octopus scene painted in the comic style

    comic

    Bold ink outlines and halftone dots

    captions: bold

  • The same octopus scene painted in the dark-documentary style

    dark-documentary

    Low-key light from a single source

    captions: bold

  • The same octopus scene painted in the oil-painting style

    oil-painting

    Old-master oils with visible brushwork

    captions: minimal

Quick start

One POST, one finished short

A short takes 60 to 120 seconds, so this call waits up to 180. The result carries a title, a caption to post with it and every scene.

curl "https://api.reelsdk.com/v1/shorts?wait=180" \
  -H "Authorization: Bearer $REELSDK_KEY" \
  --json '{
    "topic": "Why octopuses have three hearts",
    "style": "cinematic",
    "aspect": "9:16",
    "duration_s": 30
  }'
200 OK, finished in 100 s
{
  "job": {
    "id": "job_xg9edn581u33xtplpft7",
    "op": "shorts",
    "status": "succeeded",
    "stage": null,
    "created_at": "2026-10-26T09:30:12.077Z",
    "finished_at": "2026-10-26T09:31:52.540Z",
    "outputs": {
      "video": "https://api.reelsdk.com/f/out/job_xg9edn581u33xtplpft7/video.mp4",
      "poster": "https://api.reelsdk.com/f/in/job_xg9edn581u33xtplpft7/scene-01.jpg",
      "transcript": "https://api.reelsdk.com/f/out/job_xg9edn581u33xtplpft7/transcript.json",
      "srt": "https://api.reelsdk.com/f/out/job_xg9edn581u33xtplpft7/captions.srt",
      "vtt": "https://api.reelsdk.com/f/out/job_xg9edn581u33xtplpft7/captions.vtt"
    },
    "result": {
      "title": "Why Octopuses Have Three Hearts",
      "post_caption": "Two hearts for the gills, one for the body. #octopus #ocean #science",
      "scenes": [
        {
          "narration": "An octopus has three hearts, and each one has a job.",
          "image": "https://api.reelsdk.com/f/in/job_xg9edn581u33xtplpft7/scene-01.jpg"
        },
        {
          "narration": "Two of them push blood through the gills.",
          "image": "https://api.reelsdk.com/f/in/job_xg9edn581u33xtplpft7/scene-02.jpg"
        }
        // 6 more scenes
      ]
    },
    "duration_s": 31.4,
    "error": null,
    "usage": {
      "output_seconds": 31.4,
      "audio_seconds": 30.9,
      "tts_characters": 431,
      "images": 8
    },
    "poll_url": "https://api.reelsdk.com/v1/jobs/job_xg9edn581u33xtplpft7"
  }
}

While it runs, GET the poll_url and job.stage moves through planning, voice, images and rendering.

Languages

Six languages, 50-plus voices

Set language and the script, voice and captions follow. Region codes like es-MX work too, and Japanese, Chinese and Korean captions use bundled Noto Sans fonts.

Languages and voices for faceless shorts
LanguageCodeVoicesDefault voice
Englishen40 Deepgram Aura-2 voicesluna
Spanishes10 Deepgram Aura-2 voicesaquila
FrenchfrMeloTTSbuilt in
JapanesejaMeloTTSbuilt in
ChinesezhMeloTTSbuilt in
KoreankoMeloTTSbuilt in

What you control

Everything a faceless channel needs, in one request

  • A topic or your own script

    Send a topic and the planner writes the narration and plans 4 to 24 scenes. Or send a script of up to 3,000 characters and we read it word for word while the topic steers the visuals.

  • 15 to 90 seconds, three shapes

    Shorts run 45 seconds at 1080x1920 unless you say otherwise. Set duration_s from 15 to 90, or render 1:1 or 16:9 for the feed and YouTube.

  • Captions timed to every word

    Each style comes with a caption preset. Swap in bold, karaoke, minimal or your own style, or pass false for a clean video.

  • Public domain music

    On auto the planner picks a mood that fits the script. Choose from 8 moods yourself or pass none. Every track is CC0 music by HoliznaCC0.

  • Ready to post

    Each short comes back with a title, a social caption with hashtags, a poster from the first scene, SRT and VTT subtitles, and every scene's narration and image.

  • Renders that pick up where they stopped

    A failed step is retried once on its own. The retry resumes from the last finished step, so a script, stills or a voiceover that already exist are never made twice.

Specs

Shorts API specs

reelsdk faceless shorts API specifications
EndpointPOST /v1/shorts
Inputtopic (up to 500 characters) or script (up to 3,000 characters that reads in 90 seconds or less, about 250 words in English)
Length15 to 90 seconds, 45 by default
Size9:16 at 1080x1920 (default), 1:1 at 1080x1080, 16:9 at 1920x1080
Stylescinematic (default), photoreal, anime, 3d-cartoon, watercolor, comic, dark-documentary, oil-painting
LanguagesEnglish, Spanish, French, Japanese, Chinese and Korean
ScenesOne AI image about every 4 seconds, 4 to 24 per short
Musicauto (default), lofi, chill, upbeat, cinematic, dramatic, dark, energetic, inspiring or none
Files returnedvideo.mp4, poster image, transcript.json, captions.srt, captions.vtt
Extrastitle, post_caption (up to 150 characters plus 3 to 5 hashtags), scenes with narration and image URLs
Render timeAbout 100 seconds end to end, most between 60 and 120
Price$0.25 up to 60 seconds, $0.35 up to 90 seconds, everything included

Pricing

$0.25 a short, everything included

Priced by length, with the script, images, voice, captions and music included.

Up to 60 seconds

$0.25per short

  • Script and scene plan
  • One AI image per scene
  • Voiceover in 6 languages
  • Word-by-word captions
  • Music and the final render

Up to 90 seconds

$0.35per short

  • Script and scene plan
  • One AI image per scene
  • Voiceover in 6 languages
  • Word-by-word captions
  • Music and the final render

One price, the whole video

Rendering one minute of video alone lists at $0.20 on Shotstack pay as you go and $0.84 on Creatomate Essential (checked October 2026), before you pay anyone for a script, images or a voice.

No subscription and no minimum. You work from prepaid credit, and your first $1 is free: that's four 60-second shorts.

Use cases

What builders make with it

  1. 01

    Faceless channels on autopilot

    Schedule posts from a cron job or an n8n workflow. Each finished job hands you the MP4, a poster and a caption ready to paste.

  2. 02

    A make-me-a-video button

    Call it from a Lovable, bolt or Supabase app. Topics the image safety filter flags come back as a clear 422 you can show in your UI.

  3. 03

    Explainers for courses and newsletters

    Send a lesson or an issue as the script and get a narrated short, plus SRT and VTT subtitles for every platform.

  4. 04

    One short, six languages

    Render the same topic in English, Spanish, French, Japanese, Chinese and Korean, three jobs at a time per key.

FAQ

Shorts API questions

How much does a faceless short cost?

$0.25 for a short up to 60 seconds and $0.35 for up to 90 seconds. The script, images, voiceover, captions and music are all included. There's no subscription; you use prepaid credit, and your first $1 of renders is free, which covers four 60-second shorts.

How long does a short take, and how do I get it?

About 100 seconds end to end, and most finish in 60 to 120. The create call waits 60 seconds by default, so it usually answers 202 with a poll_url. Pass ?wait=180 (up to 300) to hold the request open until the video is done, or pass a webhook_url and we POST the finished job to you, signed with HMAC-SHA256.

Can I use my own script?

Yes. Send script instead of topic and the narration is read word for word. It can be up to 3,000 characters and must read in 90 seconds or less, which is about 250 words with the default English voice. A longer script is rejected up front with an estimate of its length.

What happens if a step fails halfway through?

Server-side failures are retried once automatically, and the retry resumes from the last finished step: script, stills, voiceover or render. A brand-new request always starts from scratch.

Which AI models make the short?

All of them run on Cloudflare Workers AI. Google Gemma 4 writes the script, FLUX.2 klein paints the scenes, Deepgram Aura-2 reads English and Spanish, MeloTTS reads French, Japanese, Chinese and Korean, and Whisper times the words for the captions.

Can I call it from Lovable, bolt, Supabase or n8n?

Yes. It's one HTTPS request with a JSON body, so it works from a Supabase Edge Function, a Cloudflare Worker, a Vercel function, a Lovable or bolt app, or an n8n HTTP Request node. Each key runs 3 jobs at once and up to 500 a day.

Ready to build?

Make your first four shorts free

Sign up and create an API key in a minute. Your first $1 of renders is on us, then it's $0.25 a short.

Moonlit lake with a lit cabin under the mountains