> ## Documentation Index
> Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Real Estate Listing Videos

> Generate AI video tours of property listings at scale. The HeyGen API turns listing data, photos, and agent scripts into branded real estate videos in minutes.

## 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

<Steps>
  <Step title="Structure your listing data">
    ```python theme={null}
    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",
        ],
    }
    ```
  </Step>

  <Step title="Build the tour prompt">
    ```python theme={null}
    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)
    ```
  </Step>

  <Step title="Submit with property photos">
    ```python theme={null}
    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](/docs/video-agent).
  </Step>

  <Step title="Batch generate for your portfolio">
    Generate videos for all your active listings in one run.

    ```python theme={null}
    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
    ```
  </Step>
</Steps>

## Video Styles by Property Type

| Property type        | Duration | Style                     | Focus                                  |
| -------------------- | -------- | ------------------------- | -------------------------------------- |
| **Starter home**     | 30s      | Friendly, energetic       | Value, neighborhood, schools           |
| **Luxury**           | 60–90s   | Elegant, cinematic        | Design details, materials, views       |
| **Investment**       | 30s      | Numbers-driven            | ROI, rental income, location           |
| **Commercial**       | 45s      | Professional              | Square footage, traffic, zoning        |
| **New construction** | 45s      | Exciting, forward-looking | Customization options, builder quality |

## Cost Comparison

| Approach                    | Cost per video  | Time        | Scalability |
| --------------------------- | --------------- | ----------- | ----------- |
| Professional videographer   | \$1,000+        | Days–weeks  | Low         |
| DIY with phone + editing    | \$0 (your time) | 2–4 hours   | Very low    |
| **Video Agent from photos** | **\~\$2–5**     | **Minutes** | **High**    |

## 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](/cookbook/video-agent/multilingual-content)
* **Agent branding:** Use the same avatar and style across all listings for consistent personal brand

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Product Demos" icon="desktop" href="/cookbook/video-agent/product-demos">
    Same screenshot-to-video pattern, applied to software.
  </Card>

  <Card title="E-commerce Product Videos" icon="cart-shopping" href="/cookbook/video-agent/ecommerce-product-videos">
    Same catalog-to-video pattern, applied to products.
  </Card>
</CardGroup>
