curl --request POST \
--url https://api.lumisreach.com/api/v1/videos/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template": "talking_avatar",
"format": "vertical",
"target_duration_seconds": 30,
"avatar_layout": "center",
"background_mode": "static",
"preset": "<string>",
"source_url": "<string>",
"source_text": "<string>",
"source_image_urls": [
"<string>"
],
"source_video_urls": [
"<string>"
],
"script": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replica_id": "<string>",
"voice_id": "<string>",
"interview_cast": [
{
"replica_id": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"b_roll": true,
"video_model": "<string>",
"slide_count": 6,
"image_model": "<string>",
"on_screen_caption": "<string>",
"footage_narrated": true,
"meme_clip_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"demo_focus": "<string>"
}
'import requests
url = "https://api.lumisreach.com/api/v1/videos/quote"
payload = {
"template": "talking_avatar",
"format": "vertical",
"target_duration_seconds": 30,
"avatar_layout": "center",
"background_mode": "static",
"preset": "<string>",
"source_url": "<string>",
"source_text": "<string>",
"source_image_urls": ["<string>"],
"source_video_urls": ["<string>"],
"script": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replica_id": "<string>",
"voice_id": "<string>",
"interview_cast": [
{
"replica_id": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"b_roll": True,
"video_model": "<string>",
"slide_count": 6,
"image_model": "<string>",
"on_screen_caption": "<string>",
"footage_narrated": True,
"meme_clip_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"demo_focus": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
template: 'talking_avatar',
format: 'vertical',
target_duration_seconds: 30,
avatar_layout: 'center',
background_mode: 'static',
preset: '<string>',
source_url: '<string>',
source_text: '<string>',
source_image_urls: ['<string>'],
source_video_urls: ['<string>'],
script: '<string>',
avatar_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
replica_id: '<string>',
voice_id: '<string>',
interview_cast: [{replica_id: '<string>', avatar_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'}],
b_roll: true,
video_model: '<string>',
slide_count: 6,
image_model: '<string>',
on_screen_caption: '<string>',
footage_narrated: true,
meme_clip_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
demo_focus: '<string>'
})
};
fetch('https://api.lumisreach.com/api/v1/videos/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lumisreach.com/api/v1/videos/quote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'template' => 'talking_avatar',
'format' => 'vertical',
'target_duration_seconds' => 30,
'avatar_layout' => 'center',
'background_mode' => 'static',
'preset' => '<string>',
'source_url' => '<string>',
'source_text' => '<string>',
'source_image_urls' => [
'<string>'
],
'source_video_urls' => [
'<string>'
],
'script' => '<string>',
'avatar_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'replica_id' => '<string>',
'voice_id' => '<string>',
'interview_cast' => [
[
'replica_id' => '<string>',
'avatar_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'b_roll' => true,
'video_model' => '<string>',
'slide_count' => 6,
'image_model' => '<string>',
'on_screen_caption' => '<string>',
'footage_narrated' => true,
'meme_clip_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'demo_focus' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lumisreach.com/api/v1/videos/quote"
payload := strings.NewReader("{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"preset\": \"<string>\",\n \"source_url\": \"<string>\",\n \"source_text\": \"<string>\",\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"source_video_urls\": [\n \"<string>\"\n ],\n \"script\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"replica_id\": \"<string>\",\n \"voice_id\": \"<string>\",\n \"interview_cast\": [\n {\n \"replica_id\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"b_roll\": true,\n \"video_model\": \"<string>\",\n \"slide_count\": 6,\n \"image_model\": \"<string>\",\n \"on_screen_caption\": \"<string>\",\n \"footage_narrated\": true,\n \"meme_clip_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"demo_focus\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lumisreach.com/api/v1/videos/quote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"preset\": \"<string>\",\n \"source_url\": \"<string>\",\n \"source_text\": \"<string>\",\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"source_video_urls\": [\n \"<string>\"\n ],\n \"script\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"replica_id\": \"<string>\",\n \"voice_id\": \"<string>\",\n \"interview_cast\": [\n {\n \"replica_id\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"b_roll\": true,\n \"video_model\": \"<string>\",\n \"slide_count\": 6,\n \"image_model\": \"<string>\",\n \"on_screen_caption\": \"<string>\",\n \"footage_narrated\": true,\n \"meme_clip_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"demo_focus\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumisreach.com/api/v1/videos/quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"preset\": \"<string>\",\n \"source_url\": \"<string>\",\n \"source_text\": \"<string>\",\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"source_video_urls\": [\n \"<string>\"\n ],\n \"script\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"replica_id\": \"<string>\",\n \"voice_id\": \"<string>\",\n \"interview_cast\": [\n {\n \"replica_id\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"b_roll\": true,\n \"video_model\": \"<string>\",\n \"slide_count\": 6,\n \"image_model\": \"<string>\",\n \"on_screen_caption\": \"<string>\",\n \"footage_narrated\": true,\n \"meme_clip_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"demo_focus\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"price_cents": 0,
"price_usd": "<string>",
"estimated": true,
"seconds": 123,
"line_items": [
{
"label": "<string>",
"cents": 0
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}Quote a video
The price of a video with these settings (the same body as POST /v1/videos), without making it. Videos are priced at the cost of the providers that make them (presenter renders, generated shots and pictures, narration, rendering) plus a small markup, and charged once, when released to render; retries are free. With your own script the quote is exact. Without one it is an estimate from target_duration_seconds (estimated: true), and the charge at approval is for what was actually written. Free.
curl --request POST \
--url https://api.lumisreach.com/api/v1/videos/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template": "talking_avatar",
"format": "vertical",
"target_duration_seconds": 30,
"avatar_layout": "center",
"background_mode": "static",
"preset": "<string>",
"source_url": "<string>",
"source_text": "<string>",
"source_image_urls": [
"<string>"
],
"source_video_urls": [
"<string>"
],
"script": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replica_id": "<string>",
"voice_id": "<string>",
"interview_cast": [
{
"replica_id": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"b_roll": true,
"video_model": "<string>",
"slide_count": 6,
"image_model": "<string>",
"on_screen_caption": "<string>",
"footage_narrated": true,
"meme_clip_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"demo_focus": "<string>"
}
'import requests
url = "https://api.lumisreach.com/api/v1/videos/quote"
payload = {
"template": "talking_avatar",
"format": "vertical",
"target_duration_seconds": 30,
"avatar_layout": "center",
"background_mode": "static",
"preset": "<string>",
"source_url": "<string>",
"source_text": "<string>",
"source_image_urls": ["<string>"],
"source_video_urls": ["<string>"],
"script": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replica_id": "<string>",
"voice_id": "<string>",
"interview_cast": [
{
"replica_id": "<string>",
"avatar_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"b_roll": True,
"video_model": "<string>",
"slide_count": 6,
"image_model": "<string>",
"on_screen_caption": "<string>",
"footage_narrated": True,
"meme_clip_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"demo_focus": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
template: 'talking_avatar',
format: 'vertical',
target_duration_seconds: 30,
avatar_layout: 'center',
background_mode: 'static',
preset: '<string>',
source_url: '<string>',
source_text: '<string>',
source_image_urls: ['<string>'],
source_video_urls: ['<string>'],
script: '<string>',
avatar_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
replica_id: '<string>',
voice_id: '<string>',
interview_cast: [{replica_id: '<string>', avatar_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'}],
b_roll: true,
video_model: '<string>',
slide_count: 6,
image_model: '<string>',
on_screen_caption: '<string>',
footage_narrated: true,
meme_clip_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
demo_focus: '<string>'
})
};
fetch('https://api.lumisreach.com/api/v1/videos/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lumisreach.com/api/v1/videos/quote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'template' => 'talking_avatar',
'format' => 'vertical',
'target_duration_seconds' => 30,
'avatar_layout' => 'center',
'background_mode' => 'static',
'preset' => '<string>',
'source_url' => '<string>',
'source_text' => '<string>',
'source_image_urls' => [
'<string>'
],
'source_video_urls' => [
'<string>'
],
'script' => '<string>',
'avatar_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'replica_id' => '<string>',
'voice_id' => '<string>',
'interview_cast' => [
[
'replica_id' => '<string>',
'avatar_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'b_roll' => true,
'video_model' => '<string>',
'slide_count' => 6,
'image_model' => '<string>',
'on_screen_caption' => '<string>',
'footage_narrated' => true,
'meme_clip_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'demo_focus' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lumisreach.com/api/v1/videos/quote"
payload := strings.NewReader("{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"preset\": \"<string>\",\n \"source_url\": \"<string>\",\n \"source_text\": \"<string>\",\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"source_video_urls\": [\n \"<string>\"\n ],\n \"script\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"replica_id\": \"<string>\",\n \"voice_id\": \"<string>\",\n \"interview_cast\": [\n {\n \"replica_id\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"b_roll\": true,\n \"video_model\": \"<string>\",\n \"slide_count\": 6,\n \"image_model\": \"<string>\",\n \"on_screen_caption\": \"<string>\",\n \"footage_narrated\": true,\n \"meme_clip_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"demo_focus\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lumisreach.com/api/v1/videos/quote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"preset\": \"<string>\",\n \"source_url\": \"<string>\",\n \"source_text\": \"<string>\",\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"source_video_urls\": [\n \"<string>\"\n ],\n \"script\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"replica_id\": \"<string>\",\n \"voice_id\": \"<string>\",\n \"interview_cast\": [\n {\n \"replica_id\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"b_roll\": true,\n \"video_model\": \"<string>\",\n \"slide_count\": 6,\n \"image_model\": \"<string>\",\n \"on_screen_caption\": \"<string>\",\n \"footage_narrated\": true,\n \"meme_clip_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"demo_focus\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumisreach.com/api/v1/videos/quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"preset\": \"<string>\",\n \"source_url\": \"<string>\",\n \"source_text\": \"<string>\",\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"source_video_urls\": [\n \"<string>\"\n ],\n \"script\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"replica_id\": \"<string>\",\n \"voice_id\": \"<string>\",\n \"interview_cast\": [\n {\n \"replica_id\": \"<string>\",\n \"avatar_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"b_roll\": true,\n \"video_model\": \"<string>\",\n \"slide_count\": 6,\n \"image_model\": \"<string>\",\n \"on_screen_caption\": \"<string>\",\n \"footage_narrated\": true,\n \"meme_clip_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"demo_focus\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"price_cents": 0,
"price_usd": "<string>",
"estimated": true,
"seconds": 123,
"line_items": [
{
"label": "<string>",
"cents": 0
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
A UUID. When present, deduplicates repeat submissions. See /api-reference/idempotency.
Body
Which recipe makes the video: talking_avatar (a presenter over your site), remotion (motion graphics with a narrator), freeform_ai (one generated clip per scene), meme_hook (a viral clip into your presenter), interview (2 to 4 avatars in a split screen), phone_mockup (your video, site or photos on a phone in a hand), slideshow (captioned still slides) or real_footage (a real stock clip with a caption).
talking_avatar, remotion, freeform_ai, meme_hook, interview, phone_mockup, slideshow, real_footage vertical (9:16) or horizontal (16:9)
vertical, horizontal Roughly how long a written script runs. Ignored when you send script. Each template supports its own subset.
10, 15, 20, 30, 45, 60, 120, 180, 300 Where the presenter sits. audio_only is for an automated demo only.
center, bubble_bottom_left, bubble_bottom_right, audio_only What the presenter stands in front of: static (a still of the site), scrolling (scrolls the site or several images), footage (your uploaded video), automated_demo (an agent clicks through your product), original (the presenter's own set) or image (a photo).
static, scrolling, footage, automated_demo, original, image A style of that template, e.g. imessage for remotion. Omit for the template's default.
The website the video is about
A description of the business, product or offer, in your words
1 - 5000Images already uploaded to LumisReach, in the order the video shows them
10Videos already uploaded to LumisReach, in order
5Your own script, spoken word for word. Only for templates that read a script (talking_avatar, meme_hook, phone_mockup, real_footage). The video skips script review and is charged when it is created.
1 - 60000Who renders the presenter. Defaults to heygen for an interview and tavus otherwise (Tavus without replica_id or avatar_id uses the account's default presenter).
heygen, tavus, elevenlabs One of your saved avatars (required for ElevenLabs)
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$A pre-made presenter: a Tavus face or a HeyGen look
1 - 100HeyGen only. Omit for the most advanced engine the look supports.
avatar_iii, avatar_iv, avatar_v An ElevenLabs avatar's voice, or the narrator of a narrated template
1 - 100interview only: who is in each window, in order. A null window is cast for you.
4Show child attributes
Show child attributes
image background: a built-in photo's slug, or upload:<index> for one of your images
modern-office, classical-hall, library, city-skyline, city-street, mountains, park, beach, cafe, loft talking_avatar only: cut away to stock clips while the presenter talks
Burned-in subtitles. Default none.
none, classic, boxed, bold_words Null keeps the style's own place
top, middle, bottom small, medium, large freeform_ai only: <model>@<tier>, e.g. seedance-2.5@720p. Omit for the default.
slideshow only
3 <= x <= 10slideshow only: where the pictures come from. Default ai.
uploaded, website, ai slideshow with AI pictures: the image model. Omit for the default.
real_footage only: the clip, by slug
young-woman-braids-portrait, stylish-senior-woman-hat, man-coffee-fedora, woman-curly-hair-turns, taxi-driver-by-cab, bald-man-smiling, asian-woman-laughing, nurse-in-corridor, woman-hijab-smiling, man-dimple-smile, grandmother-on-sofa, man-coat-field, older-man-plants, young-man-glasses-curls, construction-worker-hard-hat, shop-owner-packing-box, barista-iced-coffee, man-making-pancakes, senior-woman-reading, man-driving-car, florist-arranging-bouquet, woman-cooking-spices, woman-laptop-phone-breakfast, woman-morning-coffee, older-man-tea, grandma-baking-with-granddaughter, man-typing-laptop, barista-pouring-milk, builder-hammering-wall, woman-treadmill-gym real_footage only: the caption over the clip. Omit to have one written.
150real_footage only: whether a narrator reads the script. Default true.
meme_hook: a clip from your library...
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$...or a built-in clip, by slug
dramatic-chipmunk, sneezing-panda, keyboard-cat, vibing-cat, screaming-goat, coffin-dance, epic-sax-guy, rick-roll, office-rage, surprised-kitty phone_mockup only: what plays on the phone. Omit to pick video, then website, then photos.
video, website, photos Site demos: the features to show, in your words
1000Site demos: sign in first to show the product behind the login
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes