Create a new video project by providing a video URL. This endpoint will download the video, transcribe the audio, and apply the specified template with AI-generated captions and effects.
This endpoint requires authentication and has a rate limit of 500 requests per
hour.
Name of an AI edit template to apply. AI edit templates automatically apply
AI-powered scene splitting, B-roll, music, and styling to your video. Available templates: "kelly" (minimal, design), "karl"
(effective, modern), "ella" (dynamic, bold).When aiEditTemplate is provided, the only other fields you can pass
alongside it are title, language, videoUrl, webhookUrl, and
dictionary. All other fields will be ignored or rejected.
ID of a saved preset to apply to the project. A preset is a snapshot of your
project settings — including captions style, hook title, music, effects, and
more. When provided, all preset settings are automatically applied after
transcription completes. To get your preset ID, go to the Presets page in the
app, open the dropdown menu on any preset card, and click “Copy ID”.Cannot be combined with templateName, userThemeId, hookTitle, music,
items, magicZooms, magicBrolls, magicBrollsPercentage,
removeSilencePace, or removeBadTakes — the preset already controls these
settings.
Template to apply for styling. Use the templates
endpoint to get available options. Defaults to
“Sara” if not specified. Cannot be used together with userThemeId.
ID of a custom user theme to apply for styling. Must be a valid UUID of a
theme that belongs to you or your team. Cannot be used together with
templateName. You can find the id of your custom theme by opening a project,
selecting the theme, pressing the pen icon to edit it. You’ll see the id of
the theme under theme’s name.
Adds an animated opening caption (hook) to the video. Set to true to let AI
generate using the default style or pass an object to customize the
appearance:
text (optional): Custom hook, 1-100 characters
template (optional): Hook title template name. Defaults to "tiktok".
Use the hook title templates
endpoint to retrieve valid options.
top (optional): Vertical position (0-80). Defaults to 50.
size (optional): Font size (0-80). Defaults to 30.
Optional array of items to insert into the video. Each item must include
a type field to specify whether it’s user media from your library or
AI-generated content.
Layout mode for the inserted media. Available values depend on the media type:Video media:"cover", "contain", "rounded", "square", "split-50-50", "split-35-65", "split-50-50-bordered", "split-35-65-bordered", "pip-top-right", "pip-bottom-right"Image media:"cover", "contain", "rounded", "square"
Layout mode for the AI B-roll. Allowed values: "cover", "contain", "rounded", "square", "split-50-50", "split-35-65", "split-50-50-bordered", "split-35-65-bordered", "pip-top-right", "pip-bottom-right"
Important: Each item must have a type field. Items cannot overlap with
each other in time. Requests that include invalid durations, overlapping
ranges, or prompts outside the allowed length will be rejected.
Automatically remove silence from the video at the specified pace. Optional.
Allowed values: natural, fast, extra-fast. - extra-fast: 0.1-0.2
seconds of silence removal - fast: 0.2-0.6 seconds of silence removal -
natural: 0.6+ seconds of silence removal
UUID of an audio file from your media library. Must reference a user media
item with type AUDIO. Use the List User Media
endpoint to find available audio files.
{ "error": "VALIDATION_ERROR", "message": "presetId cannot be combined with templateName, userThemeId, magicZooms, magicBrolls, magicBrollsPercentage, removeBadTakes, removeSilencePace, items, hookTitle, or music. The preset controls these settings."}