curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"brand_kit_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/"
payload = { "brand_kit_id": "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({brand_kit_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/', 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}/apply-brand-kit/",
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([
'brand_kit_id' => '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}/apply-brand-kit/"
payload := strings.NewReader("{\n \"brand_kit_id\": \"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/real-estate/projects/{project_id}/apply-brand-kit/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"brand_kit_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/")
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 \"brand_kit_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"background_music": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
},
"background_music_volume": 123,
"logo_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"thumbnail": "<string>",
"external_url": "<string>",
"width": 123,
"height": 123,
"file_size": 123,
"tags": [
"<string>"
],
"name_tag": "<string>"
},
"speaker_voice": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"language_code": "<string>",
"language": "<string>",
"accent": "<string>",
"gender": "<string>",
"use_case": "<string>",
"descriptive": "<string>",
"cloned_by_count": 123,
"description": "<string>",
"avatar_image_url": "<string>",
"audio_preview_url": "<string>",
"supported_languages": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"locale": "<string>",
"language": "<string>",
"accent": "<string>",
"preview_url": "<string>"
}
]
},
"is_voiceover_enabled": true,
"is_captions_enabled": true,
"ai_generated_text": "<string>",
"video_style": "just_listed",
"video_format": "9:16",
"model_code_name": "medium",
"requested_output_width": 123,
"requested_output_height": 123,
"requested_video_aspect_ratio": "<string>",
"duration_s": 123,
"requested_duration_s": 123,
"street_address": "<string>",
"suburb": "<string>",
"state": "<string>",
"country_name": "<string>",
"city_name": "<string>",
"num_bedrooms": 123,
"num_bathrooms": 123,
"num_car_parking_spots": 123,
"num_floors": 123,
"price_display": "<string>",
"land_size_value": 123,
"land_size_unit": "sqm",
"real_estate_type": "house",
"additional_information": "<string>",
"intro_template_key": "<string>",
"outro_template_key": "<string>",
"intro_template_overrides": {},
"outro_template_overrides": {},
"shot_count": 123,
"num_full_rendered_videos": 123,
"ready_for_generation": true,
"ready_for_render": true,
"voiceover": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"audio_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
},
"caption_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"file": "<string>"
},
"text_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"text": "<string>"
},
"metadata": "<unknown>"
}
}{
"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"
}Apply a real estate brand kit
Copy the selected title font and body font into both project templates. Also select the brand kit company logo as the project logo. The route keeps unrelated template values and selects default templates when needed. Later kit changes do not update the project until the kit is applied again.
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"brand_kit_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/"
payload = { "brand_kit_id": "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({brand_kit_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/', 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}/apply-brand-kit/",
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([
'brand_kit_id' => '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}/apply-brand-kit/"
payload := strings.NewReader("{\n \"brand_kit_id\": \"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/real-estate/projects/{project_id}/apply-brand-kit/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"brand_kit_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/apply-brand-kit/")
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 \"brand_kit_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"background_music": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
},
"background_music_volume": 123,
"logo_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"thumbnail": "<string>",
"external_url": "<string>",
"width": 123,
"height": 123,
"file_size": 123,
"tags": [
"<string>"
],
"name_tag": "<string>"
},
"speaker_voice": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"language_code": "<string>",
"language": "<string>",
"accent": "<string>",
"gender": "<string>",
"use_case": "<string>",
"descriptive": "<string>",
"cloned_by_count": 123,
"description": "<string>",
"avatar_image_url": "<string>",
"audio_preview_url": "<string>",
"supported_languages": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"locale": "<string>",
"language": "<string>",
"accent": "<string>",
"preview_url": "<string>"
}
]
},
"is_voiceover_enabled": true,
"is_captions_enabled": true,
"ai_generated_text": "<string>",
"video_style": "just_listed",
"video_format": "9:16",
"model_code_name": "medium",
"requested_output_width": 123,
"requested_output_height": 123,
"requested_video_aspect_ratio": "<string>",
"duration_s": 123,
"requested_duration_s": 123,
"street_address": "<string>",
"suburb": "<string>",
"state": "<string>",
"country_name": "<string>",
"city_name": "<string>",
"num_bedrooms": 123,
"num_bathrooms": 123,
"num_car_parking_spots": 123,
"num_floors": 123,
"price_display": "<string>",
"land_size_value": 123,
"land_size_unit": "sqm",
"real_estate_type": "house",
"additional_information": "<string>",
"intro_template_key": "<string>",
"outro_template_key": "<string>",
"intro_template_overrides": {},
"outro_template_overrides": {},
"shot_count": 123,
"num_full_rendered_videos": 123,
"ready_for_generation": true,
"ready_for_render": true,
"voiceover": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"audio_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
},
"caption_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"file": "<string>"
},
"text_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"text": "<string>"
},
"metadata": "<unknown>"
}
}{
"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"
}Authorizations
Token-based authentication with required prefix "Token"
Path Parameters
Body
Require the brand kit to apply to an owned real-estate project.
Response
Serializer for real estate project detail responses.
Project title
Project description
Datetime when the record was created.
Datetime when the record was last updated.
Serializer for AudioAsset with basic fields.
Show child attributes
Show child attributes
Background music volume from 0.0 to 1.0.
Serializer for ImageAsset with basic fields.
Show child attributes
Show child attributes
Serializer for SpeakerVoiceSettings (read-only for users).
Users can view and select from available voices. Voice management is restricted to admins via Django admin.
Show child attributes
Show child attributes
Whether this real-estate project uses project-level voiceover.
Whether this real-estate project renders captions on the video.
Optional text shown in the bottom-left corner of the final video.
Style of the real estate video.
just_listed- Just Listedjust_sold- Just Soldcoming_soon- Coming Soonfor_rent- For Rentprice_drop- Price Drop
just_listed, just_sold, coming_soon, for_rent, price_drop Video aspect ratio format.
9:16- 9:164:5- 4:51:1- 1:116:9- 16:9
9:16, 4:5, 1:1, 16:9 Public model code used for real-estate video generation.
medium- Mediumhigh- Highextra_high- Extra highultra- Ultra
medium, high, extra_high, ultra Aspect ratio computed from the requested output width and height.
Final timeline duration after shot speed and transition overlap.
Legacy read only alias for duration_s.
sqm- m²sqft- sqfthectares- haacres- ac
sqm, sqft, hectares, acres house- Housetownhome- Townhomeapartment- Apartmentcondo- Condovilla- Villaland- Landcommercial- Commercialother- Other
house, townhome, apartment, condo, villa, land, commercial, other Validated intro template values with image IDs expanded to image assets.
Show child attributes
Show child attributes
Validated outro template values with image IDs expanded to image assets.
Show child attributes
Show child attributes
Number of ordered shots in the project.
Number of saved final project renders.
Whether the project has the media required for a full video job.
Whether each shot has a selected video or first frame and no render job is active.
Saved voiceover text, audio, captions, and metadata for this project.
Show child attributes
Show child attributes
Was this page helpful?