Create real estate shot video jobs in bulk
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-video-jobs/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"shot_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-video-jobs/"
payload = { "shot_ids": ["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({shot_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']})
};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-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}/shot-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([
'shot_ids' => [
'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/real-estate/projects/{project_id}/shot-video-jobs/"
payload := strings.NewReader("{\n \"shot_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\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/real-estate/projects/{project_id}/shot-video-jobs/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"shot_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-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 = "{\n \"shot_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jobs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error_message": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"cost_credits": "<string>"
}
],
"active_count": 123,
"failed_count": 123
}{
"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>"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"jobs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error_message": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"cost_credits": "<string>"
}
],
"active_count": 123,
"failed_count": 123
}Real Estate Jobs
Create real estate shot video jobs in bulk
Create one shot video job for each unique shot ID. This is the normal route for generating selected shots. For each shot, the backend creates a missing image description, creates a missing animation prompt from the description, camera movement, visual effect prompt, format, and duration, applies the saved crop, and starts image to video generation. A completed job saves its output as both selected_video and rendered_video. Use the project status route to poll all shots.
POST
/
api
/
v2
/
real-estate
/
projects
/
{project_id}
/
shot-video-jobs
/
Create real estate shot video jobs in bulk
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-video-jobs/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"shot_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-video-jobs/"
payload = { "shot_ids": ["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({shot_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']})
};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-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}/shot-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([
'shot_ids' => [
'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/real-estate/projects/{project_id}/shot-video-jobs/"
payload := strings.NewReader("{\n \"shot_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\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/real-estate/projects/{project_id}/shot-video-jobs/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"shot_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/shot-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 = "{\n \"shot_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jobs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error_message": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"cost_credits": "<string>"
}
],
"active_count": 123,
"failed_count": 123
}{
"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>"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"jobs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"real_estate_shot": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error_message": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"cost_credits": "<string>"
}
],
"active_count": 123,
"failed_count": 123
}Authorizations
tokenAuthjwtAuth
Token-based authentication with required prefix "Token"
Path Parameters
Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Validate a bounded, non-empty set of unique project shot IDs.
Unique IDs of project shots to generate.
Required array length:
1 - 60 elementsWas this page helpful?