curl --request POST \
--url https://api.argil.ai/v1/videos \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"moments": [
{
"avatarId": "<string>",
"transcript": "<string>",
"audioUrl": "<string>",
"voiceId": "<string>",
"voiceModel": "<string>",
"gestureSlug": "<string>",
"zoom": {
"keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [
0.42,
0,
0.58,
1
]
}
]
},
"broll": {
"type": "AVATAR_ACTION",
"prompt": "<string>",
"motionPrompt": "<string>",
"productImageAssetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"zoom": {
"keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [
0.42,
0,
0.58,
1
]
}
]
}
}
}
],
"enableAutoBrolls": true,
"extras": {}
}
'import requests
url = "https://api.argil.ai/v1/videos"
payload = {
"name": "<string>",
"moments": [
{
"avatarId": "<string>",
"transcript": "<string>",
"audioUrl": "<string>",
"voiceId": "<string>",
"voiceModel": "<string>",
"gestureSlug": "<string>",
"zoom": { "keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [0.42, 0, 0.58, 1]
}
] },
"broll": {
"type": "AVATAR_ACTION",
"prompt": "<string>",
"motionPrompt": "<string>",
"productImageAssetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"zoom": { "keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [0.42, 0, 0.58, 1]
}
] }
}
}
],
"enableAutoBrolls": True,
"extras": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
moments: [
{
avatarId: '<string>',
transcript: '<string>',
audioUrl: '<string>',
voiceId: '<string>',
voiceModel: '<string>',
gestureSlug: '<string>',
zoom: {
keyframes: [{time: 0, scale: 1}, {time: 1, scale: 1.5, easing: [0.42, 0, 0.58, 1]}]
},
broll: {
type: 'AVATAR_ACTION',
prompt: '<string>',
motionPrompt: '<string>',
productImageAssetId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
zoom: {
keyframes: [{time: 0, scale: 1}, {time: 1, scale: 1.5, easing: [0.42, 0, 0.58, 1]}]
}
}
}
],
enableAutoBrolls: true,
extras: {}
})
};
fetch('https://api.argil.ai/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.argil.ai/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([
'name' => '<string>',
'moments' => [
[
'avatarId' => '<string>',
'transcript' => '<string>',
'audioUrl' => '<string>',
'voiceId' => '<string>',
'voiceModel' => '<string>',
'gestureSlug' => '<string>',
'zoom' => [
'keyframes' => [
[
'time' => 0,
'scale' => 1
],
[
'time' => 1,
'scale' => 1.5,
'easing' => [
0.42,
0,
0.58,
1
]
]
]
],
'broll' => [
'type' => 'AVATAR_ACTION',
'prompt' => '<string>',
'motionPrompt' => '<string>',
'productImageAssetId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'zoom' => [
'keyframes' => [
[
'time' => 0,
'scale' => 1
],
[
'time' => 1,
'scale' => 1.5,
'easing' => [
0.42,
0,
0.58,
1
]
]
]
]
]
]
],
'enableAutoBrolls' => true,
'extras' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.argil.ai/v1/videos"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"moments\": [\n {\n \"avatarId\": \"<string>\",\n \"transcript\": \"<string>\",\n \"audioUrl\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceModel\": \"<string>\",\n \"gestureSlug\": \"<string>\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n },\n \"broll\": {\n \"type\": \"AVATAR_ACTION\",\n \"prompt\": \"<string>\",\n \"motionPrompt\": \"<string>\",\n \"productImageAssetId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n }\n }\n }\n ],\n \"enableAutoBrolls\": true,\n \"extras\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.argil.ai/v1/videos")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"moments\": [\n {\n \"avatarId\": \"<string>\",\n \"transcript\": \"<string>\",\n \"audioUrl\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceModel\": \"<string>\",\n \"gestureSlug\": \"<string>\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n },\n \"broll\": {\n \"type\": \"AVATAR_ACTION\",\n \"prompt\": \"<string>\",\n \"motionPrompt\": \"<string>\",\n \"productImageAssetId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n }\n }\n }\n ],\n \"enableAutoBrolls\": true,\n \"extras\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.argil.ai/v1/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"moments\": [\n {\n \"avatarId\": \"<string>\",\n \"transcript\": \"<string>\",\n \"audioUrl\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceModel\": \"<string>\",\n \"gestureSlug\": \"<string>\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n },\n \"broll\": {\n \"type\": \"AVATAR_ACTION\",\n \"prompt\": \"<string>\",\n \"motionPrompt\": \"<string>\",\n \"productImageAssetId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n }\n }\n }\n ],\n \"enableAutoBrolls\": true,\n \"extras\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"duration": 123,
"moments": [
{
"transcript": "<string>",
"avatarId": "<string>",
"voiceId": "<string>",
"audioUrl": "<string>",
"videoUrl": "<string>",
"gestureSlug": "<string>",
"zoom": {},
"broll": {
"zoom": {}
}
}
],
"videoUrl": "<string>",
"videoUrlSubtitled": "<string>",
"previewUrl": "<string>",
"subtitles": {
"enable": true
},
"extras": {}
}{
"code": 123,
"message": "<string>"
}Create a new Video
Creates a new Video with the specified details
curl --request POST \
--url https://api.argil.ai/v1/videos \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"moments": [
{
"avatarId": "<string>",
"transcript": "<string>",
"audioUrl": "<string>",
"voiceId": "<string>",
"voiceModel": "<string>",
"gestureSlug": "<string>",
"zoom": {
"keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [
0.42,
0,
0.58,
1
]
}
]
},
"broll": {
"type": "AVATAR_ACTION",
"prompt": "<string>",
"motionPrompt": "<string>",
"productImageAssetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"zoom": {
"keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [
0.42,
0,
0.58,
1
]
}
]
}
}
}
],
"enableAutoBrolls": true,
"extras": {}
}
'import requests
url = "https://api.argil.ai/v1/videos"
payload = {
"name": "<string>",
"moments": [
{
"avatarId": "<string>",
"transcript": "<string>",
"audioUrl": "<string>",
"voiceId": "<string>",
"voiceModel": "<string>",
"gestureSlug": "<string>",
"zoom": { "keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [0.42, 0, 0.58, 1]
}
] },
"broll": {
"type": "AVATAR_ACTION",
"prompt": "<string>",
"motionPrompt": "<string>",
"productImageAssetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"zoom": { "keyframes": [
{
"time": 0,
"scale": 1
},
{
"time": 1,
"scale": 1.5,
"easing": [0.42, 0, 0.58, 1]
}
] }
}
}
],
"enableAutoBrolls": True,
"extras": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
moments: [
{
avatarId: '<string>',
transcript: '<string>',
audioUrl: '<string>',
voiceId: '<string>',
voiceModel: '<string>',
gestureSlug: '<string>',
zoom: {
keyframes: [{time: 0, scale: 1}, {time: 1, scale: 1.5, easing: [0.42, 0, 0.58, 1]}]
},
broll: {
type: 'AVATAR_ACTION',
prompt: '<string>',
motionPrompt: '<string>',
productImageAssetId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
zoom: {
keyframes: [{time: 0, scale: 1}, {time: 1, scale: 1.5, easing: [0.42, 0, 0.58, 1]}]
}
}
}
],
enableAutoBrolls: true,
extras: {}
})
};
fetch('https://api.argil.ai/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.argil.ai/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([
'name' => '<string>',
'moments' => [
[
'avatarId' => '<string>',
'transcript' => '<string>',
'audioUrl' => '<string>',
'voiceId' => '<string>',
'voiceModel' => '<string>',
'gestureSlug' => '<string>',
'zoom' => [
'keyframes' => [
[
'time' => 0,
'scale' => 1
],
[
'time' => 1,
'scale' => 1.5,
'easing' => [
0.42,
0,
0.58,
1
]
]
]
],
'broll' => [
'type' => 'AVATAR_ACTION',
'prompt' => '<string>',
'motionPrompt' => '<string>',
'productImageAssetId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'zoom' => [
'keyframes' => [
[
'time' => 0,
'scale' => 1
],
[
'time' => 1,
'scale' => 1.5,
'easing' => [
0.42,
0,
0.58,
1
]
]
]
]
]
]
],
'enableAutoBrolls' => true,
'extras' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.argil.ai/v1/videos"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"moments\": [\n {\n \"avatarId\": \"<string>\",\n \"transcript\": \"<string>\",\n \"audioUrl\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceModel\": \"<string>\",\n \"gestureSlug\": \"<string>\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n },\n \"broll\": {\n \"type\": \"AVATAR_ACTION\",\n \"prompt\": \"<string>\",\n \"motionPrompt\": \"<string>\",\n \"productImageAssetId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n }\n }\n }\n ],\n \"enableAutoBrolls\": true,\n \"extras\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.argil.ai/v1/videos")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"moments\": [\n {\n \"avatarId\": \"<string>\",\n \"transcript\": \"<string>\",\n \"audioUrl\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceModel\": \"<string>\",\n \"gestureSlug\": \"<string>\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n },\n \"broll\": {\n \"type\": \"AVATAR_ACTION\",\n \"prompt\": \"<string>\",\n \"motionPrompt\": \"<string>\",\n \"productImageAssetId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n }\n }\n }\n ],\n \"enableAutoBrolls\": true,\n \"extras\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.argil.ai/v1/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"moments\": [\n {\n \"avatarId\": \"<string>\",\n \"transcript\": \"<string>\",\n \"audioUrl\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceModel\": \"<string>\",\n \"gestureSlug\": \"<string>\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n },\n \"broll\": {\n \"type\": \"AVATAR_ACTION\",\n \"prompt\": \"<string>\",\n \"motionPrompt\": \"<string>\",\n \"productImageAssetId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"zoom\": {\n \"keyframes\": [\n {\n \"time\": 0,\n \"scale\": 1\n },\n {\n \"time\": 1,\n \"scale\": 1.5,\n \"easing\": [\n 0.42,\n 0,\n 0.58,\n 1\n ]\n }\n ]\n }\n }\n }\n ],\n \"enableAutoBrolls\": true,\n \"extras\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"duration": 123,
"moments": [
{
"transcript": "<string>",
"avatarId": "<string>",
"voiceId": "<string>",
"audioUrl": "<string>",
"videoUrl": "<string>",
"gestureSlug": "<string>",
"zoom": {},
"broll": {
"zoom": {}
}
}
],
"videoUrl": "<string>",
"videoUrlSubtitled": "<string>",
"previewUrl": "<string>",
"subtitles": {
"enable": true
},
"extras": {}
}{
"code": 123,
"message": "<string>"
}Authorizations
API key to be included in the x-api-key header
Body
An array of Moment items, each representing a portion of the complete video.
Show child attributes
Show child attributes
Subtitles settings for the video
Show child attributes
Show child attributes
Select desired output aspectRatio: 16:9 or 9:16. Optional, default depends on used avatar.
16:9, 9:16 [DEPRECATED] Enable automatic B-roll generation and placement. When enabled, the system will analyze your content and automatically add relevant B-rolls to appropriate moments.
Configuration for automatic B-roll generation and placement.
Show child attributes
Show child attributes
Optional dictionary of custom key-value pairs to extend the video metadata. Maximum of 5 key-value pairs of 256 characters allowed
Show child attributes
Show child attributes
Optional configuration for background music
Show child attributes
Show child attributes
Model to use for the video generation.
ARGIL_V1, ARGIL_ATOM Response
Successfully created Video
Can be either IDLE, GENERATING_AUDIO, GENERATING_VIDEO, DONE or FAILED.
Total video duration in seconds. null when audio hasn't been generated yet.
An array of Moment items, each representing a portion of the complete video.
Show child attributes
Show child attributes
The url of the final avatar rendering video, containing all the moments merged.
The url of the final avatar rendering video with subtitles. Only available if subtitles are enabled.
Url to the embedable preview of the video. Can be watched from web browsers or integrated in other websites before launching the generation. For embedable mode, add ?embed=true to the url.
The aspect ratio of the video output: 16:9 or 9:16.
16:9, 9:16 Subtitles settings for the video
Show child attributes
Show child attributes
A dictionary of custom key-value pairs to extend the video metadata. Maximum of 5 key-value pairs of 256 characters allowed.
Show child attributes
Show child attributes
Was this page helpful?
