Create a short / reel (async)
create_shortStart making vertical 9:16 short(s) from a video link or an upload. Returns project ids immediately — rendering takes ~2–10 min; then call wait_for_project or get_project until status is "complete" and share videoUrl. tool=story (8 credits each): AI story script + natural voiceover + best footage + animated captions + headline — talent-show auditions, animals, sports, satisfying, wholesome, food, kids. edit_mode="whole" keeps a short clip as it is (its own order and sound) and only adds the narration on top, same price. tool=transformation (14 credits each): haircut/makeover suspense story with a BEFORE/AFTER reveal: the result is shown (reveal_mode "show"), or blurred / hidden on request — blurred is the default with ending "comments". tool=clips (3 credits each): best moment with the ORIGINAL audio, captions, headline and music. Pass template_id to apply a niche template's defaults (tool is then optional). Credits are charged now and refunded automatically if the job fails. Use urls for a batch (up to the plan's batch limit).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public video link (YouTube, TikTok, Instagram, Facebook, X, Vimeo…) or a direct https link to a video file (.mp4, .mov, .webm, .m4v). | |
| hook | No | Start with an AI hook / cold open. | |
| name | No | Project name (default: the source title). | |
| tool | No | Which short to make (default: the template's tool, else story). | |
| urls | No | Several links → one short per link (batch). | |
| genre | No | Story genre for the script (story/transformation). | |
| music | No | "auto" (AI picks royalty-free music by mood), "none", or a Brand Kit music id (list_brand_assets). | |
| ending | No | How the video ends (default "none", no call to action): "below" = "Full video below", "comments" = "Full video in the comments", "follow" = "Follow for part 2" (worded in the video's language), "custom" = your own text in ending_text. Story / transformation: the last spoken line; clips: the end card. | |
| headline | No | Animated headline card on top (default true). | |
| language | No | Language of script, voiceover, captions and headline (default: the account's preference or en). | |
| voice_id | No | Narrator voice id (list_voices); story/transformation. | |
| edit_mode | No | Story only: "cut" (default) cuts the best moments into a new edit (hook, story, payoff); "whole" keeps the video as it is, in its own order with its own sound, and adds a timed narration on top — for short clips (20–60 s). A source up to 90 s is used whole; from a longer one, one continuous stretch of target_seconds. Music defaults to none for "whole". | |
| upload_id | No | Id of a file uploaded with POST /api/v1/uploads, or of an image given to import_image. | |
| ending_cta | No | Old form of ending: true = "below" (story) / "comments" (clips), false = "none". Use ending instead. | |
| ending_text | No | The words of ending "custom": one line, at most 60 characters. | |
| reveal_mode | No | Transformation: "show" the result, "blurred" = a two-second glimpse of the reveal with faces blurred and the AFTER hidden, "hidden" = stop before the reveal (cliffhanger). Default: "blurred" with ending "comments", "show" otherwise. | |
| template_id | No | Niche template (list_templates) — presets genre, length, captions, music mood, hook. | |
| trim_pauses | No | Clips: cut the long pauses (over 0.7 s of silence) out of the clip (default false). | |
| caption_style | No | Caption style id (list_caption_styles). | |
| headline_text | No | Custom headline text (otherwise the AI writes it). | |
| logo_asset_id | No | Logo burned into the video: a logo id from list_brand_assets, or null for no logo (default: the Brand Kit default logo, if one is set). | |
| logo_position | No | Corner of the logo (default: the Brand Kit setting, else top-right). | |
| target_seconds | No | Target length in seconds (15–60). | |
| idempotency_key | No | Optional unique key (e.g. a uuid) — repeating the same call with the same key within 24 h returns the first result instead of charging again. |