Skip to main content
POST
/
v1
/
real-estate
/
living-property
curl -X POST https://api.vibepeak.ai/v1/real-estate/living-property \
  -H "Authorization: Bearer vpk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "images": [
      { "url": "https://example.com/property/living-room.jpg", "room_type": "living_room" },
      { "url": "https://example.com/property/kitchen.jpg", "room_type": "kitchen" },
      { "url": "https://example.com/property/bedroom.jpg", "room_type": "bedroom" }
    ],
    "voice": {
      "voice_id": "EXAVITQu4vr4xnSDxMaL",
      "language": "en"
    },
    "modification_mode": "no_modify",
    "script": "Welcome to this stunning modern home. The spacious living room features floor-to-ceiling windows and contemporary design...",
    "webhook_url": "https://yourserver.com/webhooks/vibepeak"
  }'
{
  "task_id": "task_abc123xyz",
  "status": "queued",
  "message": "Real estate video generation request accepted",
  "created_at": "2026-01-19T12:00:00Z",
  "credits_charged": 10,
  "request_id": "req_xyz123",
  "_links": {
    "self": "/v1/tasks/task_abc123xyz",
    "poll_interval_seconds": 30
  }
}

Example Output


Creates a new living property video from real estate images. This endpoint uses AI to transform static property photos into dynamic videos with optional virtual staging, AI-generated narration, and background music. The video generation is asynchronous - you’ll receive a task ID to poll for status or configure a webhook to be notified when complete.

Key Features

  • Virtual Staging: Add people, furniture, or redecorate rooms using AI
  • AI Narration: Provide your own script for professional text-to-speech narration
  • Background Music: Optional ambient music that complements your property video

Request Body

images
object[]
required
Array of image objects for the video. Must contain 1 to 9 images.Each image object contains:
  • url (required): Publicly accessible HTTP(S) URL of the property image
  • room_type (optional): Type of room for better AI processing
All image URLs must be unique. Duplicate URLs are not allowed.
voice
object
required
Voice configuration for text-to-speech narration.
modification_mode
string
required
How to process the property images using AI.
ValueDescription
no_modifyKeep rooms as-is, add realistic people for a lived-in feel
change_decorationModernize old or outdated furniture and decor
furnishAdd virtual furniture to empty rooms
The change_decoration and furnish modes use AI virtual staging to transform your images. Processing may take longer for these modes.
script
string
required
Narration script for text-to-speech (50-500 characters).
No numbers or special symbols allowed. The script must contain only letters, spaces, and basic punctuation (. , ! ? ; : ' " -). Numbers must be written as words (e.g., “three” instead of “3”) and symbols like @, #, $, %, &, (, ) are not permitted. This ensures optimal text-to-speech audio quality.
Write compelling property descriptions that highlight key features. The script should flow naturally when spoken aloud.
background_music
boolean
default:"true"
Enable AI-generated background music.When true, adds ambient music that complements the property video. The music is automatically mixed at an appropriate volume to not overpower the narration.
webhook_url
string
HTTPS URL to receive webhook notification when the task completes.See Webhooks for payload format and verification details.
Webhook URLs must use HTTPS and cannot point to private/internal networks (SSRF protection).

Response

Returns a 202 Accepted response with task details.
task_id
string
required
Unique identifier for the task. Use this to poll for status via Get Task.
status
string
required
Initial task status. Always queued for new tasks.
message
string
required
Human-readable confirmation message.
created_at
string
required
Task creation timestamp (ISO 8601 format).
credits_charged
integer
required
Number of credits charged for this request (10 credits).
request_id
string
required
Unique request ID for support reference.
HATEOAS links for navigation.
  • self: URL to poll for task status
  • poll_interval_seconds: Recommended polling interval (30 seconds)

Response Headers

HeaderDescription
LocationURL to poll for task status (/v1/tasks/{taskId})
Retry-AfterRecommended polling interval in seconds (30)
curl -X POST https://api.vibepeak.ai/v1/real-estate/living-property \
  -H "Authorization: Bearer vpk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "images": [
      { "url": "https://example.com/property/living-room.jpg", "room_type": "living_room" },
      { "url": "https://example.com/property/kitchen.jpg", "room_type": "kitchen" },
      { "url": "https://example.com/property/bedroom.jpg", "room_type": "bedroom" }
    ],
    "voice": {
      "voice_id": "EXAVITQu4vr4xnSDxMaL",
      "language": "en"
    },
    "modification_mode": "no_modify",
    "script": "Welcome to this stunning modern home. The spacious living room features floor-to-ceiling windows and contemporary design...",
    "webhook_url": "https://yourserver.com/webhooks/vibepeak"
  }'
{
  "task_id": "task_abc123xyz",
  "status": "queued",
  "message": "Real estate video generation request accepted",
  "created_at": "2026-01-19T12:00:00Z",
  "credits_charged": 10,
  "request_id": "req_xyz123",
  "_links": {
    "self": "/v1/tasks/task_abc123xyz",
    "poll_interval_seconds": 30
  }
}

Error Codes

CodeStatusDescription
VALIDATION_ERROR400Invalid request parameters
INVALID_IMAGE_URL400One or more image URLs are inaccessible or invalid
SCRIPT_INVALID_CHARACTERS400Script contains numbers or special symbols not supported by TTS
VOICE_NOT_FOUND404The specified voice ID does not exist
VOICE_ACCESS_DENIED403The specified voice is not accessible to your account
INVALID_API_KEY401Invalid or missing API key
PLAN_REQUIRED403Plan doesn’t include API access
INSUFFICIENT_CREDITS402Not enough credits to process the request
CONCURRENCY_LIMIT_EXCEEDED429Concurrent task limit reached
SERVICE_UNAVAILABLE503Video generation service temporarily unavailable
See Error Handling for more details.

Credits

This endpoint charges 10 credits per request upon successful task creation. If the task fails during processing, credits are not refunded.

Processing Time

Video generation typically takes 3-5 minutes depending on:
  • Number of images
  • Selected modification mode (change_decoration and furnish take longer)
  • Current system load
Use the Retry-After header (30 seconds) as a guide for polling frequency.

Next Steps

After creating a task:
  1. Poll for status: Use Get Task to check progress
  2. Wait for webhook: If configured, receive notification when complete
  3. Download video: Access the video URL from the completed task result