Skip to main content
POST
Generate viral shorts from a long video

Authorizations

Authorization
string
header
required

API key from Developer dashboard (Bearer token).

Body

application/json
video_url
string

Direct media URL (provide this or source_url).

source_url
string

Platform link (YouTube/Vimeo/TikTok/Loom/...), downloaded server-side.

clip_count
integer
default:10

Clips to produce (3-20). Billed per requested clip.

language
string
default:auto

Spoken language: a code from GET /v1/languages, or "auto" to detect it. An unknown code is a 422.

Example:

"en"

caption_style
string

Caption style id for this job (default: your brand template's style). List them with GET /v1/shorts/caption-styles.

Example:

"word-pop"

caption_format
object

Text formatting on top of the caption style, for this job only. Each switch is optional; leave one out to keep the style's own look.

clip_length
enum<string>
default:auto

Target clip length: auto (20-90 s), 30 (12-30 s), 60 (30-60 s) or 90 (60-90 s). Clips always start and end on whole sentences.

Available options:
auto,
30,
60,
90
genre
enum<string>

What kind of video it is, so the AI knows what makes a good moment. Left out = detected.

Available options:
podcast,
lifestyle,
sports,
marketing,
entertainment,
news,
education
focus
string

What to look for, in plain words, e.g. 'the moments about pricing' or 'only when the guest is speaking'.

Maximum string length: 300
Example:

"the funniest moments"

timeframe
object

Only pick clips from this part of the video. Leave end_s out for 'to the end'. Must be at least as long as the shortest clip for clip_length.

magic_broll
boolean

Stock b-roll cutaways (clips of 6 s or longer, not in split screen): true = on, false = off even if the brand template has it on, omit = brand template.

apply_brand_template
boolean
default:true

false = clean clips with no captions, hook, logo or music (caption_style and caption_format cannot be used then).

format
enum<string>
default:9:16

Output format (aspect ratio) of every clip: 9:16 vertical (TikTok, Reels, Shorts), 4:5 portrait (Instagram feed), 1:1 square or 16:9 landscape (YouTube, LinkedIn). The speaker is followed and the captions, hook, logo and CTA are placed for that canvas. GET /v1/shorts/caption-styles lists them with their pixel size.

Available options:
9:16,
4:5,
1:1,
16:9
webhook_url
string<uri>

Public HTTPS URL to POST job.completed or job.failed to when this job finishes (same envelope, signature and retries as registered webhooks). It is signed with this job's own webhook_secret, returned once in the 202.

Maximum string length: 2048
Example:

"https://example.com/hooks/smartlyq"

Response

Accepted — poll GET /v1/shorts/{uid} for the ranked clips

success
enum<boolean>
Available options:
true
data
object
meta
object