Video To Video
curl --request POST \
--url https://api.domoai.com/v1/video/video2video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "anime style, vibrant colors",
"model": "anime-v5.5",
"video": {
"bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..."
},
"callback_url": "https://example.com/callback",
"seconds": 5
}
'import requests
url = "https://api.domoai.com/v1/video/video2video"
payload = {
"prompt": "anime style, vibrant colors",
"model": "anime-v5.5",
"video": { "bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..." },
"callback_url": "https://example.com/callback",
"seconds": 5
}
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({
prompt: 'anime style, vibrant colors',
model: 'anime-v5.5',
video: {bytes_base64_encoded: 'AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...'},
callback_url: 'https://example.com/callback',
seconds: 5
})
};
fetch('https://api.domoai.com/v1/video/video2video', 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.domoai.com/v1/video/video2video",
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([
'prompt' => 'anime style, vibrant colors',
'model' => 'anime-v5.5',
'video' => [
'bytes_base64_encoded' => 'AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...'
],
'callback_url' => 'https://example.com/callback',
'seconds' => 5
]),
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.domoai.com/v1/video/video2video"
payload := strings.NewReader("{\n \"prompt\": \"anime style, vibrant colors\",\n \"model\": \"anime-v5.5\",\n \"video\": {\n \"bytes_base64_encoded\": \"AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...\"\n },\n \"callback_url\": \"https://example.com/callback\",\n \"seconds\": 5\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.domoai.com/v1/video/video2video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"anime style, vibrant colors\",\n \"model\": \"anime-v5.5\",\n \"video\": {\n \"bytes_base64_encoded\": \"AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...\"\n },\n \"callback_url\": \"https://example.com/callback\",\n \"seconds\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.domoai.com/v1/video/video2video")
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 \"prompt\": \"anime style, vibrant colors\",\n \"model\": \"anime-v5.5\",\n \"video\": {\n \"bytes_base64_encoded\": \"AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...\"\n },\n \"callback_url\": \"https://example.com/callback\",\n \"seconds\": 5\n}"
response = http.request(request)
puts response.read_body{
"data": {
"task_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"code": 0
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}AI Video
Create Video to Video Task
POST
/
v1
/
video
/
video2video
Video To Video
curl --request POST \
--url https://api.domoai.com/v1/video/video2video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "anime style, vibrant colors",
"model": "anime-v5.5",
"video": {
"bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..."
},
"callback_url": "https://example.com/callback",
"seconds": 5
}
'import requests
url = "https://api.domoai.com/v1/video/video2video"
payload = {
"prompt": "anime style, vibrant colors",
"model": "anime-v5.5",
"video": { "bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..." },
"callback_url": "https://example.com/callback",
"seconds": 5
}
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({
prompt: 'anime style, vibrant colors',
model: 'anime-v5.5',
video: {bytes_base64_encoded: 'AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...'},
callback_url: 'https://example.com/callback',
seconds: 5
})
};
fetch('https://api.domoai.com/v1/video/video2video', 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.domoai.com/v1/video/video2video",
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([
'prompt' => 'anime style, vibrant colors',
'model' => 'anime-v5.5',
'video' => [
'bytes_base64_encoded' => 'AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...'
],
'callback_url' => 'https://example.com/callback',
'seconds' => 5
]),
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.domoai.com/v1/video/video2video"
payload := strings.NewReader("{\n \"prompt\": \"anime style, vibrant colors\",\n \"model\": \"anime-v5.5\",\n \"video\": {\n \"bytes_base64_encoded\": \"AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...\"\n },\n \"callback_url\": \"https://example.com/callback\",\n \"seconds\": 5\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.domoai.com/v1/video/video2video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"anime style, vibrant colors\",\n \"model\": \"anime-v5.5\",\n \"video\": {\n \"bytes_base64_encoded\": \"AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...\"\n },\n \"callback_url\": \"https://example.com/callback\",\n \"seconds\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.domoai.com/v1/video/video2video")
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 \"prompt\": \"anime style, vibrant colors\",\n \"model\": \"anime-v5.5\",\n \"video\": {\n \"bytes_base64_encoded\": \"AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD...\"\n },\n \"callback_url\": \"https://example.com/callback\",\n \"seconds\": 5\n}"
response = http.request(request)
puts response.read_body{
"data": {
"task_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"code": 0
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Read Video To Video Styles to see all available styles
Authorizations
API Key Bearer Token
Body
application/json
The model to use for video transformation.
Available options:
anime-v5.5, anime-v1.2, anime-v10, anime-v9.1, illustration-v9.1, illustration-v20, illustration-v8.1, illustration-v19 Example:
"anime-v5.5"
Input video to transform. Supports domoai_uri or base64 encoded bytes from upload API.
Show child attributes
Show child attributes
Examples:
{
"domoai_uri": "domoai://eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25faWQiOiIwNjhmZWViMy1hYmVkLTcyYTItODAwMC1hZDM1ZTg0ZGIxNDAiLCJ1cGxvYWRfYnVja2V0IjoiZW50LWFwaS10ZXN0LTEzMzYyODM0MDgiLCJ1cGxvYWRfa2V5IjoiZXBoZW1lcmFsLXVwbG9hZHMvMDY4ZmVlYjMtYWJlZC03MmEyLTgwMDAtYWQzNWU4NGRiMTQwLzI1YjhmOTgwLWM2MzEtNGQ1NC05Y2VhLTU0ZGFiYjhiMjYwNy9maWxlLm1wMyIsInR5cGUiOiJlcGhlbWVyYWwiLCJjb250ZW50X3R5cGUiOiJhdWRpby9tcGVnIiwiZmlsZV9zaXplIjoxMjU2MzIsImlhdCI6MTc2ODM4NzA3MCwiZXhwIjoxNzY4NDczNDcwLCJpc3MiOiJodHRwOi8vemhtLWFwaS5mcnAtZGV2LmRvbW8uY29vbC8ifQ.E60fIHPeDtEE0NmKaPGRYtyQJtaEQI9I0aNEwgtsLrg"
}
{
"bytes_base64_encoded": "AAAAHGZ0eXBtcDQyAAAAAWlzb21tcD..."
}
Output video duration in seconds.
Required range:
1 <= x <= 10Callback notification URL for task results. If configured, the server will actively send notifications when the task status changes. The message schema of the notification can be found in the Callback Protocol section.
Required string length:
1 - 2083Example:
"https://example.com/callback"
Text prompt describing the desired style transformation.
Maximum string length:
2000Output video aspect ratio. If not provided, the system will automatically detect from the input video.
Available options:
16:9, 9:16, 1:1, 4:3, 3:4 Example:
"16:9"
Callbacks
POST{$request.body.callback_url}task_status_callback
Body
application/json
Available options:
PENDING, QUEUING, PROCESSING, SUCCESS, FAILED, CANCELED Available options:
TEXT_TO_VIDEO, IMAGE_TO_VIDEO, VIDEO_TO_VIDEO, TEMPLATE_TO_VIDEO, TALKING_AVATAR Show child attributes
Show child attributes
Response
Successful Response
Was this page helpful?