41 toolsCreate videos
Frontier text- and image-to-video, faceless Topic Shorts, talking-head and UGC-style ads, and playable Last Frame films.
- Video Lab
- Last Frame
- Topic Shorts
- Talking Shorts
- Ad Studio
See the tools
- list_video_lab_modelsList Video Lab models, modes, and defaults. Same catalog as /video-lab.
- quote_video_labQuote a Video Lab setup. Does not generate or charge. Paid generate needs this quote. FLUX 3 Edit clip uses mode=edit_video plus a source MP4 (sourceAssetIds, sourceClipId, or sourceVideoUrl). Duration and aspect follow the source; output is 720p. Keeps the source clip’s audio. Clips must be MP4, under 15 seconds and 50 MB.
- generate_video_labpaidStart a paid Video Lab generation. Uses this month’s generation allowance. Poll get_video_lab_generation until it finishes. FLUX 3 Edit clip uses mode=edit_video plus the same source clip used on the quote. Duration and aspect follow the source; output is 720p. Keeps the source clip’s audio.
- list_video_lab_generationsList this account’s Video Lab generations.
- get_video_lab_generationFetch one Video Lab generation by video id.
- reconcile_video_lab_generationRefresh a Video Lab job from the provider. Does not charge again.
- presign_generation_assetCreate an upload slot for a Video Lab, Image Lab, or Paint Lab source image (or a Video Lab MP4). Then complete_generation_asset.
- complete_generation_assetMark a source image or MP4 upload ready for Video Lab, Image Lab, or Paint Lab. Returns the asset id, width, and height.
- list_last_frame_gamesList Last Frame games (Adventure, Heist, Tape, and the rest).
- list_last_frame_worldsList Last Frame catalog worlds/maps.
- quote_last_frameQuote a Last Frame opening or next shot. Does not film.
- start_last_framepaidStart a Last Frame run and film the opening shot. Uses this month’s generation allowance.
- get_last_frame_runGet a Last Frame run, including the latest shot and choices.
- choose_last_framepaidPick a numbered Last Frame option. Films the next shot and uses this month’s generation allowance.
- type_last_framepaidType a custom Last Frame move. Films the next shot and uses this month’s generation allowance.
- timeout_last_frameApply the Last Frame choice timeout (same as the play HUD timer running out).
- end_last_frame_clipTell Last Frame the current shot finished playing so the next choice can appear.
- arm_last_frame_itemArm a Last Frame inventory item for the next move. itemIndex is 0-based.
- create_last_frame_worldCreate a custom Last Frame world from a description.
- list_hook_bankList Opening hooks script-opening templates (Problem, Curiosity, Trust, Niche). Catalog id hook_bank. The workspace picker is hidden; this catalog is for MCP seeding. Optional intent filter. This is not Hook captions (captionMode=hook / hook_kinetic), which stay hidden in the workspace.
- create_topic_short_storyPreview a Topic Short story with hook, setup, reveal, and payoff beats, narration, and English Pexels search terms. Narration is written to fill the selected length (about 2.6 words per second). A short supplied script is expanded; a too-long script is packed down to the speaking-pace envelope. A script that already fills the length is kept word for word. Keep topic nouns in the queries (Messi, soccer, football). Prefer on-topic action over unrelated lifestyle B-roll. Put the strongest hook visual first. Generate fail-opens with broader topic-near sports footage if a beat misses on Pexels, then unused clips, then a neutral scenery catalog, then cached or synthesized last-resort clips if the provider is down — never the same clip on every shot when unused footage exists. Does not render. Choose any storyFormat (mini_documentary, myth_check, story_twist, how_it_works, ranking, quiz, scary_story, history_pov, reddit_story, what_if); edit the returned plan before quoting and generating. language writes the narration in en, es, pt, de, fr or hi. sourced (or sourceUrl / sourceUrls / sourceText) researches the topic and plans only claims it can cite. seriesEpisodeId plans an approved series episode. Optional hookTemplateId seeds the topic from Opening hooks (script opening, not Hook captions).
- quote_topic_shortQuote a Topic Short. Does not render. Spoken narration is planned to fill the selected length; that does not change the quote (quoted on duration, not word count). captionStyle defaults to spotlight (same seven looks as Story: off, spotlight, impact, highlighter, editorial, boxed, kicker); transitionMode defaults to dynamic. Neither changes the quote. Legacy captionMode values are aliased onto captionStyle. Optional hookTemplateId seeds the topic from Opening hooks (script opening, not a caption look) and does not change the quote. The setup that does change the quote: length, visualStyle cinematic, aiHook (and the recurring characters they bring on story formats), a host (hostNarratorId) and sourced research; language, aspectRatio (9:16, 16:9, 1:1), storyFormat and a cloned voice (voiceCloneId) do not change the price. Cinematic, aiHook, host, sourced and voice clone are paid options, not available on the free short. seriesEpisodeId quotes an approved series episode with its series style.
- generate_topic_shortpaidGenerate a Topic Short from a reviewed storyPlan or automatically plan one from the topic and storyFormat. Spoken narration fills the selected length. A short reviewed plan is expanded so the voiceover is not a music-only tail. A too-long plan is packed down; generate never fails for narration length. captionStyle defaults to spotlight (off, spotlight, impact, highlighter, editorial, boxed, kicker — the Story caption looks, burned from the voiceover word timings); transitionMode defaults to dynamic. Uses this month’s generation allowance or complimentary quota. Poll get_topic_short. Stock matching fail-opens: a Pexels miss or outage still returns a finished short. Caption failure also fail-opens (captionBurn.verdict = fallback). Legacy captionMode values are aliased onto captionStyle. Optional hookTemplateId seeds the topic from Opening hooks (script opening, not a caption look) and does not change consume or refund. Takes the same setup as quote_topic_short (storyFormat, aspectRatio, visualStyle, aiHook, language, host, sources, voiceCloneId, seriesEpisodeId); pass the same values on both. Cinematic and AI hook shots that miss their 2-minute deadline fall back to judged stock, so the short still ships. A seriesEpisodeId short is linked to that episode.
- get_topic_shortFetch a Topic Short generation, including captionBurn persisted on the completed record. status moves through queued and in_progress, then composing while the final edit is put together, then completed or failed; keep polling through composing. setup echoes the options it was made with (format, frame size, language, visual style and render tier, host, sources, voice clone, series episode). A sourced short also returns sources: the citations shown on its Sources card. shots lists each shot with its judged alternates for swap_shot edits. On a completed short it also returns versions (the original plus each edit; current marks the one the library shows), editCapabilities (including musicOptions for edit_topic_short) and publication (which version a public page is pinned to). On a completed short it also returns postingPack (title, caption, hashtags), coverUrl when the cover is ready, and exports (each format and whether export_topic_short can make it).
- edit_topic_shortpaidEdit a finished Topic Short. Free kinds use no generation allowance: captions (captionStyle: off, spotlight, impact, highlighter, editorial, boxed, kicker), music (trackId from get_topic_short editCapabilities.musicOptions, or none) and swap_shot (beatIndex, shotIndex and an alternateId from get_topic_short shots). Paid kinds are quoted first with quote_topic_short_edit and run on that quoteId with the same fields: revoice (beatIndex plus the new narration for that line) and regenerate_shot (beatIndex and shotIndex of an AI shot); a shortfall returns HTTP 402 with numeric requiredCredits and availableCredits. nl takes an instruction ("make the hook punchier") and only interprets it: it returns a proposal of steps, each with a label and either a ready request (kind and params, with a quoteId and quote facts on paid steps) or the reason it cannot run. Apply each runnable step with its own edit_topic_short call, passing its params fields and quoteId. Each applied edit makes a new version; poll get_topic_short until it is completed. A public page stays on the version it was published from until you call publish_generation again. Restoring an earlier version is done on the clip page. Up to 20 free edits per short.
- quote_topic_short_editQuote one paid edit of a finished Topic Short before it runs. kind revoice re-records one line (beatIndex plus the new narration, in the short’s language; it must fit that beat) and kind regenerate_shot re-rolls one AI shot (beatIndex and shotIndex). Nothing is charged. Returns quoteId, numeric requiredCredits and availableCredits (null for unlimited accounts), affordable, expiresAt and facts (the job facts, for example Beat 3 · New voiceover · 4s line). Pass quoteId with the same fields to edit_topic_short within 10 minutes; a new edit on the short invalidates it. When affordable is false, edit_topic_short returns HTTP 402: use create_checkout_url. Free edits (captions, music, swap_shot) need no quote.
- export_topic_shortGet a posting export of a finished Topic Short, made from its stored voice, music and caption tracks at no cost. no_music is voice and captions without music (add a trending sound in the app); clean is voice and music without burned-in captions; srt and vtt return the subtitle file as text; cover is the opening frame as a still. Video exports and the cover may return rendering with retryAfterMs: call again until status is ready (url) or unavailable.
- save_topic_short_styleSave the setup of a finished Topic Short as a reusable style: its format, length, visual style, voice, captions, transitions, music mood and frame size, plus an optional intro and outro line. Up to 10 styles. Use a style with create_topic_short_series. Free.
- list_topic_short_stylesList your saved Topic Short styles and the series built on them. Free.
- create_topic_short_seriesStart a Topic Short series from a saved style and a niche (for example “deep sea creatures”). Returns the series; add or propose episodes with queue_topic_short_episodes. Free: each episode is quoted and generated like any short.
- queue_topic_short_episodesFill a Topic Short series episode queue. Add your own episodes, approve or skip proposed ones, and by default propose new episode angles that do not repeat earlier ones. Make an approved episode by passing its id as seriesEpisodeId to quote_topic_short and generate_topic_short. Does not render. Free.
- list_topic_short_voice_clonesList your cloned narration voices and whether this account can use them. Pass a ready clone id as voiceCloneId to quote_topic_short and generate_topic_short. Read-only: enrolling a clone needs a voice recording and consent, so it is done on the web in the Topic Shorts workspace. Voice clones need an active plan. A short narrated by a clone carries an AI-voice disclosure.
- research_talking_shortResearch a Talking Short from a product URL or a brief. Does not render or charge. Optional hookTemplateId seeds the brief from Opening hooks (script opening, not caption style).
- quote_talking_shortQuote a Talking Short. Does not render. captionMode defaults to current and does not change the quote. phrase is MCP-ungated. The Phrase chip is operator-email only in the workspace. hook remains accepted and burns Current karaoke. Optional hookTemplateId seeds the brief from Opening hooks and does not change the quote.
- generate_talking_shortpaidStart a paid Talking Short. Uses this month’s generation allowance. Poll get_talking_short until it finishes. captionMode defaults to current. phrase is MCP-ungated. The Phrase chip is operator-email only in the workspace. hook burns Current karaoke. Optional hookTemplateId seeds the brief from Opening hooks (script opening, not caption style) and does not change consume or refund.
- get_talking_shortFetch a Talking Short generation.
- list_talking_short_actorsList Talking Shorts catalog stills. Does not render.
- research_ad_studioResearch Ad Studio from a product URL or brief. Returns Problem, Curiosity, Trust, and Niche angles with a locked 5-beat script (Hook / Problem / Product / Result / Soft close). Does not render or charge.
- quote_ad_studioQuote an Ad Studio job. Does not render. Uses the Talking Shorts generation curve. Catalog creators only.
- generate_ad_studiopaidStart a paid Ad Studio clip. Uses this month’s generation allowance. Poll get_ad_studio until it finishes. Hard failures return that job’s allowance.
- get_ad_studioFetch an Ad Studio generation. Submit and poll; do not wait on generate_ad_studio for the full render.

