Virtual Staging

Virtually stage empty rooms with realistic furniture and decor using AI. Transform vacant property photos into beautifully furnished spaces.

Overview

The virtual staging endpoint takes an empty room photo and a room type, then generates a photorealistic staged version with appropriate furniture and decor. The AI preserves the room's architecture, walls, windows, doors, flooring, lighting, and camera perspective while adding tasteful, properly scaled furnishings.

You can optionally provide a style prompt to guide the design aesthetic (e.g. "Scandinavian minimalist" or "classic traditional"). Two output versions are generated: a 4K final image for export and a 2K display version optimized for web use.

Quick Example

Submit an empty room photo to generate a staged version:

curl -X POST \
  -H "X-API-Key: dome_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/photos/empty-living-room.jpg",
    "room_type": "living room"
  }' \
  https://api.dometech.com.au/v1/virtual-staging/generate

Response (202):

{
  "data":  {
    "job_id":  "550e8400-e29b-41d4-a716-446655440000",
    "status":  "queued"
  },
  "meta":  {
    "request_id":  "req_abc123",
    "timestamp":  "2026-02-21T10:00:00.000Z",
    "mode":  "live"
  }
}

Step-by-Step

1. Prepare Your Image

Ensure your empty room photo is hosted at a publicly accessible HTTPS URL. For best results, use a well-lit photo of a completely empty or mostly empty room taken from a standard viewing angle.

2. Submit the Staging Request

Send a POST request to /v1/virtual-staging/generate with the image URL, room type, and optional style prompt.

curl -X POST \
  -H "X-API-Key: dome_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/photos/empty-bedroom.jpg",
    "room_type": "bedroom",
    "options": {
      "style_prompt": "Modern contemporary with warm neutral tones"
    }
  }' \
  https://api.dometech.com.au/v1/virtual-staging/generate

The API returns a 202 Accepted response with a job_id. The staging is processed asynchronously.

Tip: The room_type parameter determines which furniture and decor the AI selects. Common values include "living room", "bedroom", "kitchen", "dining room", "office", and "bathroom".

3. Poll for Completion

Poll the job status endpoint until the status changes to completed. Virtual staging typically takes 10 to 30 seconds.

curl -H "X-API-Key: dome_live_your_key_here" \
  https://api.dometech.com.au/v1/jobs/550e8400-e29b-41d4-a716-446655440000

4. Retrieve the Staged Images

When the job completes, the output field contains URLs for both the full-resolution and display versions.

{
  "data":  {
    "id":  "550e8400-e29b-41d4-a716-446655440000",
    "job_type":  "virtual_staging",
    "status":  "completed",
    "mode":  "live",
    "input":  {
      "image_url":  "https://example.com/photos/empty-bedroom.jpg",
      "room_type":  "bedroom"
    },
    "output":  {
      "staged_image_url":  "https://storage.example.com/staged.jpg",
      "staged_display_url":  "https://storage.example.com/staged_display.jpg",
      "generation_time_seconds":  15.2
    },
    "created_at":  "2026-02-21T10:00:00.000Z",
    "updated_at":  "2026-02-21T10:00:15.000Z",
    "completed_at":  "2026-02-21T10:00:15.000Z"
  },
  "meta":  {
    "request_id":  "req_abc123",
    "timestamp":  "2026-02-21T10:00:15.000Z",
    "mode":  "live"
  }
}

Options

ParameterTypeRequiredDescription
image_urlstring (URI)YesPublic URL of the empty room photo
room_typestringYesType of room (e.g. "living room", "bedroom", "kitchen")
options.style_promptstringNoAdditional styling instructions (e.g. "Scandinavian minimalist")
webhook_urlstring (URI)NoURL to receive progress and completion webhooks
callback_metadataobjectNoOpaque data returned in webhook payloads

See the API Reference for full parameter details and response schemas.

Output

When the job completes, the output object contains:

FieldTypeDescription
staged_image_urlstringURL of the staged image at 4K resolution (JPEG, ~90% quality)
staged_display_urlstringURL of the display version at 2K resolution (JPEG, 85% quality)
generation_time_secondsnumberTime taken to generate the staged image in seconds

Next Steps