curl --request POST \
--url https://api.lumisreach.com/api/v1/videos \
--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",
"script_review": "auto",
"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>",
"max_price_cents": 4503599627370495,
"caption": "<string>",
"hashtags": [
"<string>"
]
}
'import requests
url = "https://api.lumisreach.com/api/v1/videos"
payload = {
"template": "talking_avatar",
"format": "vertical",
"target_duration_seconds": 30,
"avatar_layout": "center",
"background_mode": "static",
"script_review": "auto",
"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>",
"max_price_cents": 4503599627370495,
"caption": "<string>",
"hashtags": ["<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',
script_review: 'auto',
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>',
max_price_cents: 4503599627370495,
caption: '<string>',
hashtags: ['<string>']
})
};
fetch('https://api.lumisreach.com/api/v1/videos', 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",
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',
'script_review' => 'auto',
'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>',
'max_price_cents' => 4503599627370495,
'caption' => '<string>',
'hashtags' => [
'<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"
payload := strings.NewReader("{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"script_review\": \"auto\",\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 \"max_price_cents\": 4503599627370495,\n \"caption\": \"<string>\",\n \"hashtags\": [\n \"<string>\"\n ]\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")
.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 \"script_review\": \"auto\",\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 \"max_price_cents\": 4503599627370495,\n \"caption\": \"<string>\",\n \"hashtags\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumisreach.com/api/v1/videos")
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 \"script_review\": \"auto\",\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 \"max_price_cents\": 4503599627370495,\n \"caption\": \"<string>\",\n \"hashtags\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"status": "unsubmitted",
"template": "talking_avatar",
"preset": "<string>",
"format": "vertical",
"duration_seconds": 123,
"video_url": "<string>",
"thumbnail_url": "<string>",
"billed_cents": 0,
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"posts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": "tiktok",
"status": "scheduled",
"media_type": "video",
"permalink": "<string>",
"scheduled_for": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"error": "<string>"
}
],
"price_cents": 0,
"price_estimated": true,
"script_approved": true,
"user_script": true,
"script": "<string>",
"script_sections": [
{
"label": "<string>",
"text": "<string>"
}
],
"scenes": [
{
"id": "<string>",
"label": "<string>",
"duration_seconds": 123,
"voiceover": "<string>",
"caption": "<string>",
"prompt": "<string>"
}
],
"slides": [
{
"id": "<string>",
"role": "<string>",
"headline": "<string>",
"body": "<string>",
"position": "<string>",
"prompt": "<string>",
"image_url": "<string>"
}
],
"interview": {
"speakers": [
{
"id": "<string>",
"role": "<string>",
"face_name": "<string>"
}
],
"turns": [
{
"id": "<string>",
"speaker_id": "<string>",
"text": "<string>"
}
]
},
"caption": "<string>",
"hashtags": [
"<string>"
],
"post_caption": "<string>",
"music": {
"library": "lumisreach",
"track_id": "<string>",
"title": "<string>",
"volume": 0,
"status": "pending"
},
"source_url": "<string>",
"target_duration_seconds": 0,
"avatar_provider": "heygen",
"avatar_layout": "center",
"background_mode": "static",
"subtitle_style": "none",
"video_model": "<string>",
"dashboard_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>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}Create a video
Make a video with every setting the dashboard’s Configure step has: the template and style, format, length, sources, presenter, background, subtitles and more. Send script to have it spoken word for word (templates that read a script only): the video skips script review and is charged now. Without one, a script is written from your sources first, then approved automatically as soon as it is written (script_review: auto, the default) or left in script_review for POST /v1/videos/{id}/approve (manual). The video is charged once, when it is released to render, at the price POST /v1/videos/quote gives; set max_price_cents to cap it. Included video credits are used first, then the prepaid balance. Poll GET /v1/videos/{id} until status is ready, then download video_url or post it with POST /v1/videos/{id}/posts.
curl --request POST \
--url https://api.lumisreach.com/api/v1/videos \
--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",
"script_review": "auto",
"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>",
"max_price_cents": 4503599627370495,
"caption": "<string>",
"hashtags": [
"<string>"
]
}
'import requests
url = "https://api.lumisreach.com/api/v1/videos"
payload = {
"template": "talking_avatar",
"format": "vertical",
"target_duration_seconds": 30,
"avatar_layout": "center",
"background_mode": "static",
"script_review": "auto",
"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>",
"max_price_cents": 4503599627370495,
"caption": "<string>",
"hashtags": ["<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',
script_review: 'auto',
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>',
max_price_cents: 4503599627370495,
caption: '<string>',
hashtags: ['<string>']
})
};
fetch('https://api.lumisreach.com/api/v1/videos', 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",
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',
'script_review' => 'auto',
'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>',
'max_price_cents' => 4503599627370495,
'caption' => '<string>',
'hashtags' => [
'<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"
payload := strings.NewReader("{\n \"template\": \"talking_avatar\",\n \"format\": \"vertical\",\n \"target_duration_seconds\": 30,\n \"avatar_layout\": \"center\",\n \"background_mode\": \"static\",\n \"script_review\": \"auto\",\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 \"max_price_cents\": 4503599627370495,\n \"caption\": \"<string>\",\n \"hashtags\": [\n \"<string>\"\n ]\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")
.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 \"script_review\": \"auto\",\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 \"max_price_cents\": 4503599627370495,\n \"caption\": \"<string>\",\n \"hashtags\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumisreach.com/api/v1/videos")
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 \"script_review\": \"auto\",\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 \"max_price_cents\": 4503599627370495,\n \"caption\": \"<string>\",\n \"hashtags\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"status": "unsubmitted",
"template": "talking_avatar",
"preset": "<string>",
"format": "vertical",
"duration_seconds": 123,
"video_url": "<string>",
"thumbnail_url": "<string>",
"billed_cents": 0,
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"posts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": "tiktok",
"status": "scheduled",
"media_type": "video",
"permalink": "<string>",
"scheduled_for": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"error": "<string>"
}
],
"price_cents": 0,
"price_estimated": true,
"script_approved": true,
"user_script": true,
"script": "<string>",
"script_sections": [
{
"label": "<string>",
"text": "<string>"
}
],
"scenes": [
{
"id": "<string>",
"label": "<string>",
"duration_seconds": 123,
"voiceover": "<string>",
"caption": "<string>",
"prompt": "<string>"
}
],
"slides": [
{
"id": "<string>",
"role": "<string>",
"headline": "<string>",
"body": "<string>",
"position": "<string>",
"prompt": "<string>",
"image_url": "<string>"
}
],
"interview": {
"speakers": [
{
"id": "<string>",
"role": "<string>",
"face_name": "<string>"
}
],
"turns": [
{
"id": "<string>",
"speaker_id": "<string>",
"text": "<string>"
}
]
},
"caption": "<string>",
"hashtags": [
"<string>"
],
"post_caption": "<string>",
"music": {
"library": "lumisreach",
"track_id": "<string>",
"title": "<string>",
"volume": 0,
"status": "pending"
},
"source_url": "<string>",
"target_duration_seconds": 0,
"avatar_provider": "heygen",
"avatar_layout": "center",
"background_mode": "static",
"subtitle_style": "none",
"video_model": "<string>",
"dashboard_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>"
}
}{
"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 Without your own script, one is written first. auto approves it (and charges the video) as soon as it is written; manual stops in script_review until you call POST /v1/videos/{id}/approve. Ignored when you send script: your script needs no review.
auto, manual 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
A spending cap. With your own script the price is known now, and a video above the cap is rejected with 400 before anything is created. Otherwise the written script is priced when it is approved automatically; above the cap it is not approved and waits in script_review with the reason in error. With script_review: manual, pass the cap to the approve call instead.
0 <= x <= 9007199254740991The post caption. Omit to use the one written with the script.
4000Hashtags for the post, with or without #
30101Background music mixed under the finished video
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes