curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/"
payload = {}
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({})
};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/', 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/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/",
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([
]),
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/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/"
payload := strings.NewReader("{}")
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/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/")
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 = "{}"
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>",
"project_real_estate": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "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"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"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>",
"project_real_estate": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Create a real estate shot video job
Create and queue a shot video job for the shot in the URL. The backend creates a missing image description and animation prompt, applies the saved crop, and starts image to video generation. A completed job saves its output as selected_video and rendered_video. Use the bulk create route when several shots need generation.
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/"
payload = {}
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({})
};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/', 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/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/",
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([
]),
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/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/"
payload := strings.NewReader("{}")
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/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shots/{shot_id}/video-jobs/")
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 = "{}"
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>",
"project_real_estate": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "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"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"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>",
"project_real_estate": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Token-based authentication with required prefix "Token"
Body
Create one parent shot video job from the scoped project and shot.
Response
Read one user-facing shot video workflow job.
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,6}(?:\.\d{0,4})?$Real-estate project whose shot video this job generates.
Real-estate shot whose video this job generates.
Was this page helpful?