curl --request POST \
--url https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"requested_resolution": "<string>",
"requested_video_duration": 2,
"model_config": "<unknown>",
"style_settings": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"start_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/"
payload = {
"prompt": "<string>",
"requested_resolution": "<string>",
"requested_video_duration": 2,
"model_config": "<unknown>",
"style_settings": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"start_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
requested_resolution: '<string>',
requested_video_duration: 2,
model_config: '<unknown>',
style_settings: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
start_frame: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
last_frame: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/', 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://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/",
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' => '<string>',
'requested_resolution' => '<string>',
'requested_video_duration' => 2,
'model_config' => '<unknown>',
'style_settings' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'start_frame' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'last_frame' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"requested_resolution\": \"<string>\",\n \"requested_video_duration\": 2,\n \"model_config\": \"<unknown>\",\n \"style_settings\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"last_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"requested_resolution\": \"<string>\",\n \"requested_video_duration\": 2,\n \"model_config\": \"<unknown>\",\n \"style_settings\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"last_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"requested_resolution\": \"<string>\",\n \"requested_video_duration\": 2,\n \"model_config\": \"<unknown>\",\n \"style_settings\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"last_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"status": "queued",
"description": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"processing_time_seconds": 123,
"cost_credits": "<string>",
"prompt": "<string>",
"model_name": "atlas_ultra_i2v",
"requested_resolution": "<string>",
"requested_video_duration": 2,
"model_config": "<unknown>",
"style_settings": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"start_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<unknown>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Create an image to video job
Create and queue one video job that uses one or more image frames.
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"requested_resolution": "<string>",
"requested_video_duration": 2,
"model_config": "<unknown>",
"style_settings": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"start_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/"
payload = {
"prompt": "<string>",
"requested_resolution": "<string>",
"requested_video_duration": 2,
"model_config": "<unknown>",
"style_settings": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"start_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
requested_resolution: '<string>',
requested_video_duration: 2,
model_config: '<unknown>',
style_settings: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
start_frame: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
last_frame: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/', 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://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/",
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' => '<string>',
'requested_resolution' => '<string>',
'requested_video_duration' => 2,
'model_config' => '<unknown>',
'style_settings' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'start_frame' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'last_frame' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"requested_resolution\": \"<string>\",\n \"requested_video_duration\": 2,\n \"model_config\": \"<unknown>\",\n \"style_settings\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"last_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"requested_resolution\": \"<string>\",\n \"requested_video_duration\": 2,\n \"model_config\": \"<unknown>\",\n \"style_settings\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"last_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"requested_resolution\": \"<string>\",\n \"requested_video_duration\": 2,\n \"model_config\": \"<unknown>\",\n \"style_settings\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"last_frame\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"status": "queued",
"description": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"processing_time_seconds": 123,
"cost_credits": "<string>",
"prompt": "<string>",
"model_name": "atlas_ultra_i2v",
"requested_resolution": "<string>",
"requested_video_duration": 2,
"model_config": "<unknown>",
"style_settings": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"start_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_frame": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<unknown>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Token-based authentication with required prefix "Token"
Path Parameters
Body
Serializer for creating image-to-video jobs.
Prompt text to generate from.
80000atlas_ultra_i2v- atlas_ultra_i2vatlas_ultra_nsfw_i2v- atlas_ultra_nsfw_i2vgemini_omni_flash_1_1_i2v- gemini_omni_flash_1_1_i2vgemini_omni_flash_i2v- gemini_omni_flash_i2vgrok_imagine_video_1_5_i2v- grok_imagine_video_1_5_i2vgrok_imagine_video_i2v- grok_imagine_video_i2vhappy_horse_1_0_i2v- happy_horse_1_0_i2vhexal_standard_i2v- hexal_standard_i2vhexal_standard_nsfw_i2v- hexal_standard_nsfw_i2vhexal_ultra_i2v- hexal_ultra_i2vhexal_ultra_nsfw_i2v- hexal_ultra_nsfw_i2vhexal_fast_i2v- hexal_fast_i2vkling_2_6_pro_i2v- kling_2_6_pro_i2vkling_3_0_turbo_standard_i2v- kling_3_0_turbo_standard_i2vkling_3_0_turbo_pro_i2v- kling_3_0_turbo_pro_i2vkling_3_0_i2v- kling_3_0_i2vkling_3_0_pro_i2v- kling_3_0_pro_i2vminimax_h3_i2v- minimax_h3_i2vseedance_2_5_i2v- seedance_2_5_i2vseedance_2_0_i2v- seedance_2_0_i2vseedance_2_0_fast_i2v- seedance_2_0_fast_i2vsora_2_i2v- sora_2_i2vsora_2_pro_i2v- sora_2_pro_i2vveo_3_1_fal_i2v- veo_3_1_fal_i2vveo_3_1_fal_first_last_frame_i2v- veo_3_1_fal_first_last_frame_i2vveo_3_1_fast_generate_preview_v2- veo_3_1_fast_generate_preview_v2veo_3_1_fast_fal_first_last_frame_i2v- veo_3_1_fast_fal_first_last_frame_i2vveo_3_1_generate_preview- veo_3_1_generate_previewveo_3_1_fast_generate_preview- veo_3_1_fast_generate_previewwan_2_7_i2v- wan_2_7_i2v
atlas_ultra_i2v, atlas_ultra_nsfw_i2v, gemini_omni_flash_1_1_i2v, gemini_omni_flash_i2v, grok_imagine_video_1_5_i2v, grok_imagine_video_i2v, happy_horse_1_0_i2v, hexal_standard_i2v, hexal_standard_nsfw_i2v, hexal_ultra_i2v, hexal_ultra_nsfw_i2v, hexal_fast_i2v, kling_2_6_pro_i2v, kling_3_0_turbo_standard_i2v, kling_3_0_turbo_pro_i2v, kling_3_0_i2v, kling_3_0_pro_i2v, minimax_h3_i2v, seedance_2_5_i2v, seedance_2_0_i2v, seedance_2_0_fast_i2v, sora_2_i2v, sora_2_pro_i2v, veo_3_1_fal_i2v, veo_3_1_fal_first_last_frame_i2v, veo_3_1_fast_generate_preview_v2, veo_3_1_fast_fal_first_last_frame_i2v, veo_3_1_generate_preview, veo_3_1_fast_generate_preview, wan_2_7_i2v Requested video resolution (e.g. 480p).
20Requested video duration in seconds.
x >= 1Model-specific configuration parameters (temperature, style, quality, etc.).
Style presets applied to this job (camera, lighting, generation, etc.)
Optional image to use as the starting frame of the video.
Optional image to use as the ending frame of the video.
Response
Serializer for creating image-to-video jobs.
Datetime when the record was created.
Error details if job failed.
Current job status.
queued- Queuedprocessing- Processingexpired- Expiredcancelled- Cancelledcompleted- Completedfailed- Failed
queued, processing, expired, cancelled, completed, failed Human-readable job description.
When job processing started.
When the job processing successfully finished.
Calculate job processing time in seconds. If the job is still processing, calculate time since started. If the job was cancelled, deleted, calculate time until that point. if the job is completed, calculate time until finished.
Job cost in 🪙 Credits.
^-?\d{0,8}(?:\.\d{0,2})?$Prompt text to generate from.
80000atlas_ultra_i2v- atlas_ultra_i2vatlas_ultra_nsfw_i2v- atlas_ultra_nsfw_i2vgemini_omni_flash_1_1_i2v- gemini_omni_flash_1_1_i2vgemini_omni_flash_i2v- gemini_omni_flash_i2vgrok_imagine_video_1_5_i2v- grok_imagine_video_1_5_i2vgrok_imagine_video_i2v- grok_imagine_video_i2vhappy_horse_1_0_i2v- happy_horse_1_0_i2vhexal_standard_i2v- hexal_standard_i2vhexal_standard_nsfw_i2v- hexal_standard_nsfw_i2vhexal_ultra_i2v- hexal_ultra_i2vhexal_ultra_nsfw_i2v- hexal_ultra_nsfw_i2vhexal_fast_i2v- hexal_fast_i2vkling_2_6_pro_i2v- kling_2_6_pro_i2vkling_3_0_turbo_standard_i2v- kling_3_0_turbo_standard_i2vkling_3_0_turbo_pro_i2v- kling_3_0_turbo_pro_i2vkling_3_0_i2v- kling_3_0_i2vkling_3_0_pro_i2v- kling_3_0_pro_i2vminimax_h3_i2v- minimax_h3_i2vseedance_2_5_i2v- seedance_2_5_i2vseedance_2_0_i2v- seedance_2_0_i2vseedance_2_0_fast_i2v- seedance_2_0_fast_i2vsora_2_i2v- sora_2_i2vsora_2_pro_i2v- sora_2_pro_i2vveo_3_1_fal_i2v- veo_3_1_fal_i2vveo_3_1_fal_first_last_frame_i2v- veo_3_1_fal_first_last_frame_i2vveo_3_1_fast_generate_preview_v2- veo_3_1_fast_generate_preview_v2veo_3_1_fast_fal_first_last_frame_i2v- veo_3_1_fast_fal_first_last_frame_i2vveo_3_1_generate_preview- veo_3_1_generate_previewveo_3_1_fast_generate_preview- veo_3_1_fast_generate_previewwan_2_7_i2v- wan_2_7_i2v
atlas_ultra_i2v, atlas_ultra_nsfw_i2v, gemini_omni_flash_1_1_i2v, gemini_omni_flash_i2v, grok_imagine_video_1_5_i2v, grok_imagine_video_i2v, happy_horse_1_0_i2v, hexal_standard_i2v, hexal_standard_nsfw_i2v, hexal_ultra_i2v, hexal_ultra_nsfw_i2v, hexal_fast_i2v, kling_2_6_pro_i2v, kling_3_0_turbo_standard_i2v, kling_3_0_turbo_pro_i2v, kling_3_0_i2v, kling_3_0_pro_i2v, minimax_h3_i2v, seedance_2_5_i2v, seedance_2_0_i2v, seedance_2_0_fast_i2v, sora_2_i2v, sora_2_pro_i2v, veo_3_1_fal_i2v, veo_3_1_fal_first_last_frame_i2v, veo_3_1_fast_generate_preview_v2, veo_3_1_fast_fal_first_last_frame_i2v, veo_3_1_generate_preview, veo_3_1_fast_generate_preview, wan_2_7_i2v Requested video resolution (e.g. 480p).
20Requested video duration in seconds.
x >= 1Model-specific configuration parameters (temperature, style, quality, etc.).
Style presets applied to this job (camera, lighting, generation, etc.)
Optional image to use as the starting frame of the video.
Optional image to use as the ending frame of the video.
Was this page helpful?