Skip to main content

The Problem

Listings with video consistently get more inquiries than those without. But professional property tour videos cost thousands of dollars each — making them viable only for luxury properties. Most agents have great photos but no video.

How It Works

Property photos + listing data → Video Agent prompt → Narrated property tour → Post to listing sites
Attach your property photos as file inputs and describe the property in your prompt. Video Agent creates a narrated walkthrough with an avatar presenting the property highlights.

Build It

1

Structure your listing data

listing = {
    "address": "742 Evergreen Terrace, Springfield",
    "price": "$485,000",
    "bedrooms": 4,
    "bathrooms": 2.5,
    "sqft": 2200,
    "highlights": [
        "Renovated chef's kitchen with quartz countertops and stainless appliances",
        "Primary suite with walk-in closet and spa-like bathroom",
        "Landscaped backyard with covered patio and fire pit",
        "Walking distance to top-rated schools",
    ],
    "neighborhood": "Quiet, family-friendly street with mature trees",
    "photos": [
        "https://cdn.realty.com/photos/exterior.jpg",
        "https://cdn.realty.com/photos/kitchen.jpg",
        "https://cdn.realty.com/photos/primary-suite.jpg",
        "https://cdn.realty.com/photos/backyard.jpg",
    ],
}
2

Build the tour prompt

def build_listing_prompt(listing):
    highlights = "\n".join(f"- {h}" for h in listing["highlights"])

    return f"""Create a 45-second property tour video for a real estate listing.

Property: {listing['address']}
Price: {listing['price']} | {listing['bedrooms']} bed / {listing['bathrooms']} bath | {listing['sqft']} sq ft

Tour structure using the attached property photos:
- Opening (5s): Presenter stands in front of the home. "Welcome to {listing['address']}
  — let me show you why this {listing['bedrooms']}-bedroom home is something special."
- Kitchen & living (15s): Walk through the main living areas, highlighting:
  {highlights[0] if len(listing['highlights']) > 0 else ''}
- Primary suite (10s): Showcase the bedroom and bathroom
- Outdoor space (10s): Show the backyard and patio
- Closing (5s): "{listing['price']}. Schedule your private showing today."

Tone: Warm, professional, inviting — like a top-producing agent
who genuinely loves this home. Not salesy.
Neighborhood note: {listing['neighborhood']}
"""

prompt = build_listing_prompt(listing)
3

Submit with property photos

import requests

files = [{"type": "url", "url": url} for url in listing["photos"]]

resp = requests.post(
    "https://api.heygen.com/v3/video-agents",
    headers={
        "X-Api-Key": HEYGEN_API_KEY,
        "Content-Type": "application/json",
    },
    json={
        "prompt": prompt,
        "files": files,
    },
)
video_id = resp.json()["data"]["video_id"]
Then poll for completion — see Video Agent docs.
4

Batch generate for your portfolio

Generate videos for all your active listings in one run.
import time

listings = load_from_mls()  # Your listing data source

for listing in listings:
    prompt = build_listing_prompt(listing)
    files = [{"type": "url", "url": url} for url in listing["photos"]]

    resp = requests.post(
        "https://api.heygen.com/v3/video-agents",
        headers={
            "X-Api-Key": HEYGEN_API_KEY,
            "Content-Type": "application/json",
        },
        json={"prompt": prompt, "files": files},
    )
    listing["video_id"] = resp.json()["data"]["video_id"]
    time.sleep(5)  # Rate limit spacing

Video Styles by Property Type

Property typeDurationStyleFocus
Starter home30sFriendly, energeticValue, neighborhood, schools
Luxury60–90sElegant, cinematicDesign details, materials, views
Investment30sNumbers-drivenROI, rental income, location
Commercial45sProfessionalSquare footage, traffic, zoning
New construction45sExciting, forward-lookingCustomization options, builder quality

Cost Comparison

ApproachCost per videoTimeScalability
Professional videographer$1,000+Days–weeksLow
DIY with phone + editing$0 (your time)2–4 hoursVery low
Video Agent from photos~$2–5MinutesHigh

Variations

  • Neighborhood spotlight: Generate a separate video about the area — schools, dining, parks, commute times
  • Open house invite: Short 15-second teaser: “Open house this Saturday at [address]. Here’s a sneak peek.”
  • Multi-language: Translate for international buyers using Video Translation
  • Agent branding: Use the same avatar and style across all listings for consistent personal brand

Next Steps

Product Demos

Same screenshot-to-video pattern, applied to software.

E-commerce Product Videos

Same catalog-to-video pattern, applied to products.