How AI real estate photo editing works

Last updated 2026-10-25 · Venu Gopal Reddy Muvva, Surge Software

1. Upload

Drop JPEG/PNG files on a listing, or paste Dropbox / Google Drive share links. Brackets are grouped by file name (kitchen_1.jpg, kitchen_2.jpg, kitchen_3.jpg → one photo) or by a fixed count per set (3 or 5).

2. Choose edits per photo

Defaults: HDR merge, window pull, perspective, white balance; sky replacement for exterior shots. Add twilight, object removal boxes, or a learned style preset. Virtual staging is a preview for now (simple CPU furniture); photoreal staging is coming soon.

3. QC score and review

Each output gets a 0–100 score from seven checks (exposure, blown highlights, crushed shadows, colour cast, vertical tilt, softness, noise) plus MLS resolution. Below your threshold (default 80) we re-edit automatically up to three times; if it is still low, it goes to the human QC queue with an SLA timer (default 6 hours).

4. Compliance and delivery

Staged, twilight and object-removed photos get a disclosure label on the MLS copy; the unlabeled original is kept in a separate folder. MLS copies are never branded. Agents get a branded delivery page with ZIP downloads, a property website, video and floor plan.

5. Billing, team and white-label

ListingPhotoStudio is free. The few things that cost us money (human QC reviews, Claude fallback copy) are charged at exactly that cost from prepaid credit; new studios start with $5. Credit never expires and there is no plan to cancel. Settings → Team creates invite links. Settings → White-label sets your logo, colour, a custom portal domain and hides the "Powered by ListingPhotoStudio" footer. Agents can request a free revision on any delivered photo; it goes to the QC queue on your SLA.

REST API

Create a key in Settings → API keys and send it as Authorization: Bearer lsk_…. POST /api/v1/listings creates a listing; POST /api/v1/listings/{id}/photos uploads brackets (multipart, process=1 starts editing); GET /api/v1/listings/{id} and GET /api/v1/photos/{id} return status, QC score, issues and download URLs. Processing is free and never blocked by credit.

# create a listing
curl -X POST https://listingphotostudio.com/api/v1/listings   -H "Authorization: Bearer $KEY" -H "Content-Type: application/json"   -d '{"address":"12 Oak St","city":"Austin","beds":3,"baths":2}'

# upload brackets (one photo per file-name group) and start processing
curl -X POST https://listingphotostudio.com/api/v1/listings/$LISTING/photos   -H "Authorization: Bearer $KEY"   -F files=@living_1.jpg -F files=@living_2.jpg -F files=@living_3.jpg -F process=1

# poll a listing, or one photo
curl https://listingphotostudio.com/api/v1/listings/$LISTING -H "Authorization: Bearer $KEY"
curl https://listingphotostudio.com/api/v1/photos/$PHOTO -H "Authorization: Bearer $KEY"